Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: vt6656: dead code removal : wpactl.c/h

Relates to redundant viawget, a proprietary version of wpa supplicant.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Malcolm Priestley and committed by
Greg Kroah-Hartman
b3a6db9c 14d0fdb3

+1 -658
-1
drivers/staging/vt6656/device.h
··· 793 793 //WPA supplicant daemon 794 794 struct net_device *wpadev; 795 795 BOOL bWPADEVUp; 796 - struct sk_buff *skb; 797 796 //-- 798 797 799 798 BOOL bwextstep0;
+1 -13
drivers/staging/vt6656/main_usb.c
··· 1188 1188 1189 1189 if (device->dev) { 1190 1190 unregister_netdev(device->dev); 1191 - wpa_set_wpadev(device, 0); 1192 1191 free_netdev(device->dev); 1193 1192 } 1193 + 1194 1194 } 1195 1195 1196 1196 static int device_dma0_tx_80211(struct sk_buff *skb, struct net_device *dev) ··· 1577 1577 } 1578 1578 1579 1579 rc = vt6656_hostap_ioctl(pDevice, &wrq->u.data); 1580 - break; 1581 - 1582 - case IOCTL_CMD_WPA: 1583 - 1584 - if (!(pDevice->flags & DEVICE_FLAGS_OPENED)) { 1585 - rc = -EFAULT; 1586 - break; 1587 - } else { 1588 - rc = 0; 1589 - } 1590 - 1591 - rc = wpa_ioctl(pDevice, &wrq->u.data); 1592 1580 break; 1593 1581 1594 1582 case SIOCETHTOOL:
-636
drivers/staging/vt6656/wpactl.c
··· 44 44 45 45 /*--------------------- Static Definitions -------------------------*/ 46 46 47 - #define VIAWGET_WPA_MAX_BUF_SIZE 1024 48 - 49 - static const int frequency_list[] = { 50 - 2412, 2417, 2422, 2427, 2432, 2437, 2442, 51 - 2447, 2452, 2457, 2462, 2467, 2472, 2484 52 - }; 53 - 54 47 /*--------------------- Static Classes ----------------------------*/ 55 48 56 49 /*--------------------- Static Variables --------------------------*/ ··· 52 59 /*--------------------- Static Functions --------------------------*/ 53 60 54 61 /*--------------------- Export Variables --------------------------*/ 55 - static void wpadev_setup(struct net_device *dev) 56 - { 57 - dev->type = ARPHRD_IEEE80211; 58 - dev->hard_header_len = ETH_HLEN; 59 - dev->mtu = 2048; 60 - dev->addr_len = ETH_ALEN; 61 - dev->tx_queue_len = 1000; 62 62 63 - memset(dev->broadcast, 0xFF, ETH_ALEN); 64 - 65 - dev->flags = IFF_BROADCAST | IFF_MULTICAST; 66 - } 67 - 68 - /* 69 - * Description: 70 - * register netdev for wpa supplicant daemon 71 - * 72 - * Parameters: 73 - * In: 74 - * pDevice - 75 - * enable - 76 - * Out: 77 - * 78 - * Return Value: 79 - * 80 - */ 81 - static int wpa_init_wpadev(PSDevice pDevice) 82 - { 83 - PSDevice wpadev_priv; 84 - struct net_device *dev = pDevice->dev; 85 - int ret = 0; 86 - 87 - pDevice->wpadev = alloc_netdev(sizeof(PSDevice), "vntwpa", wpadev_setup); 88 - if (pDevice->wpadev == NULL) 89 - return -ENOMEM; 90 - 91 - wpadev_priv = netdev_priv(pDevice->wpadev); 92 - *wpadev_priv = *pDevice; 93 - memcpy(pDevice->wpadev->dev_addr, dev->dev_addr, ETH_ALEN); 94 - pDevice->wpadev->base_addr = dev->base_addr; 95 - pDevice->wpadev->irq = dev->irq; 96 - pDevice->wpadev->mem_start = dev->mem_start; 97 - pDevice->wpadev->mem_end = dev->mem_end; 98 - ret = register_netdev(pDevice->wpadev); 99 - if (ret) { 100 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%s: register_netdev(WPA) failed!\n", 101 - dev->name); 102 - free_netdev(pDevice->wpadev); 103 - return -1; 104 - } 105 - 106 - if (pDevice->skb == NULL) { 107 - pDevice->skb = dev_alloc_skb((int)pDevice->rx_buf_sz); 108 - if (pDevice->skb == NULL) 109 - return -ENOMEM; 110 - } 111 - 112 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%s: Registered netdev %s for WPA management\n", 113 - dev->name, pDevice->wpadev->name); 114 - 115 - return 0; 116 - } 117 - 118 - /* 119 - * Description: 120 - * unregister net_device (wpadev) 121 - * 122 - * Parameters: 123 - * In: 124 - * pDevice - 125 - * Out: 126 - * 127 - * Return Value: 128 - * 129 - */ 130 - static int wpa_release_wpadev(PSDevice pDevice) 131 - { 132 - if (pDevice->skb) { 133 - dev_kfree_skb(pDevice->skb); 134 - pDevice->skb = NULL; 135 - } 136 - 137 - if (pDevice->wpadev) { 138 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%s: Netdevice %s unregistered\n", 139 - pDevice->dev->name, pDevice->wpadev->name); 140 - unregister_netdev(pDevice->wpadev); 141 - free_netdev(pDevice->wpadev); 142 - pDevice->wpadev = NULL; 143 - } 144 - 145 - return 0; 146 - } 147 - 148 - /* 149 - * Description: 150 - * Set enable/disable dev for wpa supplicant daemon 151 - * 152 - * Parameters: 153 - * In: 154 - * pDevice - 155 - * val - 156 - * Out: 157 - * 158 - * Return Value: 159 - * 160 - */ 161 - int wpa_set_wpadev(PSDevice pDevice, int val) 162 - { 163 - if (val) 164 - return wpa_init_wpadev(pDevice); 165 - return wpa_release_wpadev(pDevice); 166 - } 167 63 168 64 /* 169 65 * Description: ··· 281 399 } 282 400 283 401 284 - /* 285 - * Description: 286 - * enable wpa auth & mode 287 - * 288 - * Parameters: 289 - * In: 290 - * pDevice - 291 - * param - 292 - * Out: 293 - * 294 - * Return Value: 295 - * 296 - */ 297 - static int wpa_set_wpa(PSDevice pDevice, struct viawget_wpa_param *param) 298 - { 299 - PSMgmtObject pMgmt = &pDevice->sMgmtObj; 300 - int ret = 0; 301 - 302 - pMgmt->eAuthenMode = WMAC_AUTH_OPEN; 303 - pMgmt->bShareKeyAlgorithm = FALSE; 304 - 305 - return ret; 306 - } 307 - 308 - /* 309 - * Description: 310 - * set disassociate 311 - * 312 - * Parameters: 313 - * In: 314 - * pDevice - 315 - * param - 316 - * Out: 317 - * 318 - * Return Value: 319 - * 320 - */ 321 - static int wpa_set_disassociate(PSDevice pDevice, struct viawget_wpa_param *param) 322 - { 323 - PSMgmtObject pMgmt = &pDevice->sMgmtObj; 324 - int ret = 0; 325 - 326 - spin_lock_irq(&pDevice->lock); 327 - if (pDevice->bLinkPass) { 328 - if (!memcmp(param->addr, pMgmt->abyCurrBSSID, 6)) 329 - bScheduleCommand((void *)pDevice, WLAN_CMD_DISASSOCIATE, NULL); 330 - } 331 - spin_unlock_irq(&pDevice->lock); 332 - 333 - return ret; 334 - } 335 - 336 - /* 337 - * Description: 338 - * enable scan process 339 - * 340 - * Parameters: 341 - * In: 342 - * pDevice - 343 - * param - 344 - * Out: 345 - * 346 - * Return Value: 347 - * 348 - */ 349 - static int wpa_set_scan(PSDevice pDevice, struct viawget_wpa_param *param) 350 - { 351 - int ret = 0; 352 - 353 - /**set ap_scan=1&&scan_ssid=1 under hidden ssid mode**/ 354 - PSMgmtObject pMgmt = &pDevice->sMgmtObj; 355 - PWLAN_IE_SSID pItemSSID; 356 - printk("wpa_set_scan-->desired [ssid=%s,ssid_len=%d]\n", 357 - param->u.scan_req.ssid,param->u.scan_req.ssid_len); 358 - // Set the SSID 359 - memset(pMgmt->abyDesireSSID, 0, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1); 360 - pItemSSID = (PWLAN_IE_SSID)pMgmt->abyDesireSSID; 361 - pItemSSID->byElementID = WLAN_EID_SSID; 362 - memcpy(pItemSSID->abySSID, param->u.scan_req.ssid, param->u.scan_req.ssid_len); 363 - pItemSSID->len = param->u.scan_req.ssid_len; 364 - 365 - spin_lock_irq(&pDevice->lock); 366 - BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass); 367 - bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, 368 - pMgmt->abyDesireSSID); 369 - spin_unlock_irq(&pDevice->lock); 370 - 371 - return ret; 372 - } 373 - 374 - /* 375 - * Description: 376 - * get bssid 377 - * 378 - * Parameters: 379 - * In: 380 - * pDevice - 381 - * param - 382 - * Out: 383 - * 384 - * Return Value: 385 - * 386 - */ 387 - static int wpa_get_bssid(PSDevice pDevice, struct viawget_wpa_param *param) 388 - { 389 - PSMgmtObject pMgmt = &pDevice->sMgmtObj; 390 - int ret = 0; 391 - memcpy(param->u.wpa_associate.bssid, pMgmt->abyCurrBSSID, 6); 392 - 393 - return ret; 394 - } 395 - 396 - /* 397 - * Description: 398 - * get bssid 399 - * 400 - * Parameters: 401 - * In: 402 - * pDevice - 403 - * param - 404 - * Out: 405 - * 406 - * Return Value: 407 - * 408 - */ 409 - static int wpa_get_ssid(PSDevice pDevice, struct viawget_wpa_param *param) 410 - { 411 - PSMgmtObject pMgmt = &pDevice->sMgmtObj; 412 - PWLAN_IE_SSID pItemSSID; 413 - int ret = 0; 414 - 415 - pItemSSID = (PWLAN_IE_SSID)pMgmt->abyCurrSSID; 416 - 417 - memcpy(param->u.wpa_associate.ssid, pItemSSID->abySSID, pItemSSID->len); 418 - param->u.wpa_associate.ssid_len = pItemSSID->len; 419 - 420 - return ret; 421 - } 422 - 423 - /* 424 - * Description: 425 - * get scan results 426 - * 427 - * Parameters: 428 - * In: 429 - * pDevice - 430 - * param - 431 - * Out: 432 - * 433 - * Return Value: 434 - * 435 - */ 436 - static int wpa_get_scan(PSDevice pDevice, struct viawget_wpa_param *param) 437 - { 438 - struct viawget_scan_result *scan_buf; 439 - PSMgmtObject pMgmt = &pDevice->sMgmtObj; 440 - PWLAN_IE_SSID pItemSSID; 441 - PKnownBSS pBSS; 442 - PBYTE pBuf; 443 - int ret = 0; 444 - u16 count = 0; 445 - u16 ii; 446 - u16 jj; 447 - long ldBm; //James //add 448 - 449 - //******mike:bubble sort by stronger RSSI*****// 450 - PBYTE ptempBSS; 451 - 452 - ptempBSS = kmalloc(sizeof(KnownBSS), GFP_ATOMIC); 453 - 454 - if (ptempBSS == NULL) { 455 - printk("bubble sort kmalloc memory fail@@@\n"); 456 - ret = -ENOMEM; 457 - return ret; 458 - } 459 - 460 - for (ii = 0; ii < MAX_BSS_NUM; ii++) { 461 - for (jj = 0; jj < MAX_BSS_NUM - ii - 1; jj++) { 462 - if ((pMgmt->sBSSList[jj].bActive != TRUE) 463 - || ((pMgmt->sBSSList[jj].uRSSI > pMgmt->sBSSList[jj + 1].uRSSI) 464 - && (pMgmt->sBSSList[jj + 1].bActive != FALSE))) { 465 - memcpy(ptempBSS,&pMgmt->sBSSList[jj], sizeof(KnownBSS)); 466 - memcpy(&pMgmt->sBSSList[jj], &pMgmt->sBSSList[jj + 1], 467 - sizeof(KnownBSS)); 468 - memcpy(&pMgmt->sBSSList[jj + 1], ptempBSS, sizeof(KnownBSS)); 469 - } 470 - } 471 - } 472 - kfree(ptempBSS); 473 - 474 - count = 0; 475 - pBSS = &(pMgmt->sBSSList[0]); 476 - for (ii = 0; ii < MAX_BSS_NUM; ii++) { 477 - pBSS = &(pMgmt->sBSSList[ii]); 478 - if (!pBSS->bActive) 479 - continue; 480 - count++; 481 - } 482 - 483 - pBuf = kcalloc(count, sizeof(struct viawget_scan_result), GFP_ATOMIC); 484 - 485 - if (pBuf == NULL) { 486 - ret = -ENOMEM; 487 - return ret; 488 - } 489 - scan_buf = (struct viawget_scan_result *)pBuf; 490 - pBSS = &(pMgmt->sBSSList[0]); 491 - for (ii = 0, jj = 0; ii < MAX_BSS_NUM; ii++) { 492 - pBSS = &(pMgmt->sBSSList[ii]); 493 - if (pBSS->bActive) { 494 - if (jj >= count) 495 - break; 496 - memcpy(scan_buf->bssid, pBSS->abyBSSID, WLAN_BSSID_LEN); 497 - pItemSSID = (PWLAN_IE_SSID)pBSS->abySSID; 498 - memcpy(scan_buf->ssid, pItemSSID->abySSID, pItemSSID->len); 499 - scan_buf->ssid_len = pItemSSID->len; 500 - scan_buf->freq = frequency_list[pBSS->uChannel-1]; 501 - scan_buf->caps = pBSS->wCapInfo; // DavidWang for sharemode 502 - 503 - RFvRSSITodBm(pDevice, (BYTE)(pBSS->uRSSI), &ldBm); 504 - if (-ldBm < 50) 505 - scan_buf->qual = 100; 506 - else if (-ldBm > 90) 507 - scan_buf->qual = 0; 508 - else 509 - scan_buf->qual=(40-(-ldBm-50))*100/40; 510 - 511 - //James 512 - //scan_buf->caps = pBSS->wCapInfo; 513 - //scan_buf->qual = 514 - scan_buf->noise = 0; 515 - scan_buf->level = ldBm; 516 - 517 - //scan_buf->maxrate = 518 - if (pBSS->wWPALen != 0) { 519 - scan_buf->wpa_ie_len = pBSS->wWPALen; 520 - memcpy(scan_buf->wpa_ie, pBSS->byWPAIE, pBSS->wWPALen); 521 - } 522 - if (pBSS->wRSNLen != 0) { 523 - scan_buf->rsn_ie_len = pBSS->wRSNLen; 524 - memcpy(scan_buf->rsn_ie, pBSS->byRSNIE, pBSS->wRSNLen); 525 - } 526 - scan_buf = (struct viawget_scan_result *)((PBYTE)scan_buf + sizeof(struct viawget_scan_result)); 527 - jj ++; 528 - } 529 - } 530 - 531 - if (jj < count) 532 - count = jj; 533 - 534 - if (copy_to_user(param->u.scan_results.buf, pBuf, sizeof(struct viawget_scan_result) * count)) 535 - ret = -EFAULT; 536 - 537 - param->u.scan_results.scan_count = count; 538 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " param->u.scan_results.scan_count = %d\n", count); 539 - 540 - kfree(pBuf); 541 - return ret; 542 - } 543 - 544 - /* 545 - * Description: 546 - * set associate with AP 547 - * 548 - * Parameters: 549 - * In: 550 - * pDevice - 551 - * param - 552 - * Out: 553 - * 554 - * Return Value: 555 - * 556 - */ 557 - static int wpa_set_associate(PSDevice pDevice, struct viawget_wpa_param *param) 558 - { 559 - PSMgmtObject pMgmt = &pDevice->sMgmtObj; 560 - PWLAN_IE_SSID pItemSSID; 561 - BYTE abyNullAddr[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 562 - BYTE abyWPAIE[64]; 563 - int ret = 0; 564 - BOOL bwepEnabled=FALSE; 565 - 566 - // set key type & algorithm 567 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pairwise_suite = %d\n", param->u.wpa_associate.pairwise_suite); 568 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "group_suite = %d\n", param->u.wpa_associate.group_suite); 569 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "key_mgmt_suite = %d\n", param->u.wpa_associate.key_mgmt_suite); 570 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "auth_alg = %d\n", param->u.wpa_associate.auth_alg); 571 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "mode = %d\n", param->u.wpa_associate.mode); 572 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "wpa_ie_len = %d\n", param->u.wpa_associate.wpa_ie_len); 573 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Roaming dBm = %d\n", param->u.wpa_associate.roam_dbm); // Davidwang 574 - 575 - if (param->u.wpa_associate.wpa_ie) { 576 - if (param->u.wpa_associate.wpa_ie_len > sizeof(abyWPAIE)) 577 - return -EINVAL; 578 - 579 - if (copy_from_user(&abyWPAIE[0], param->u.wpa_associate.wpa_ie, 580 - param->u.wpa_associate.wpa_ie_len)) 581 - return -EFAULT; 582 - } 583 - 584 - if (param->u.wpa_associate.mode == 1) 585 - pMgmt->eConfigMode = WMAC_CONFIG_IBSS_STA; 586 - else 587 - pMgmt->eConfigMode = WMAC_CONFIG_ESS_STA; 588 - 589 - // set bssid 590 - if (memcmp(param->u.wpa_associate.bssid, &abyNullAddr[0], 6) != 0) 591 - memcpy(pMgmt->abyDesireBSSID, param->u.wpa_associate.bssid, 6); 592 - // set ssid 593 - memset(pMgmt->abyDesireSSID, 0, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1); 594 - pItemSSID = (PWLAN_IE_SSID)pMgmt->abyDesireSSID; 595 - pItemSSID->byElementID = WLAN_EID_SSID; 596 - pItemSSID->len = param->u.wpa_associate.ssid_len; 597 - memcpy(pItemSSID->abySSID, param->u.wpa_associate.ssid, pItemSSID->len); 598 - 599 - if (param->u.wpa_associate.wpa_ie_len == 0) { 600 - if (param->u.wpa_associate.auth_alg & AUTH_ALG_SHARED_KEY) 601 - pMgmt->eAuthenMode = WMAC_AUTH_SHAREKEY; 602 - else 603 - pMgmt->eAuthenMode = WMAC_AUTH_OPEN; 604 - } else if (abyWPAIE[0] == RSN_INFO_ELEM) { 605 - if (param->u.wpa_associate.key_mgmt_suite == KEY_MGMT_PSK) 606 - pMgmt->eAuthenMode = WMAC_AUTH_WPA2PSK; 607 - else 608 - pMgmt->eAuthenMode = WMAC_AUTH_WPA2; 609 - } else { 610 - if (param->u.wpa_associate.key_mgmt_suite == KEY_MGMT_WPA_NONE) 611 - pMgmt->eAuthenMode = WMAC_AUTH_WPANONE; 612 - else if (param->u.wpa_associate.key_mgmt_suite == KEY_MGMT_PSK) 613 - pMgmt->eAuthenMode = WMAC_AUTH_WPAPSK; 614 - else 615 - pMgmt->eAuthenMode = WMAC_AUTH_WPA; 616 - } 617 - 618 - switch (param->u.wpa_associate.pairwise_suite) { 619 - case CIPHER_CCMP: 620 - pDevice->eEncryptionStatus = Ndis802_11Encryption3Enabled; 621 - break; 622 - case CIPHER_TKIP: 623 - pDevice->eEncryptionStatus = Ndis802_11Encryption2Enabled; 624 - break; 625 - case CIPHER_WEP40: 626 - case CIPHER_WEP104: 627 - pDevice->eEncryptionStatus = Ndis802_11Encryption1Enabled; 628 - bwepEnabled = TRUE; 629 - break; 630 - case CIPHER_NONE: 631 - if (param->u.wpa_associate.group_suite == CIPHER_CCMP) 632 - pDevice->eEncryptionStatus = Ndis802_11Encryption3Enabled; 633 - else 634 - pDevice->eEncryptionStatus = Ndis802_11Encryption2Enabled; 635 - break; 636 - default: 637 - pDevice->eEncryptionStatus = Ndis802_11EncryptionDisabled; 638 - } 639 - 640 - pMgmt->Roam_dbm = param->u.wpa_associate.roam_dbm; 641 - if (pMgmt->eAuthenMode == WMAC_AUTH_SHAREKEY) { // @wep-sharekey 642 - pDevice->eEncryptionStatus = Ndis802_11Encryption1Enabled; 643 - pMgmt->bShareKeyAlgorithm = TRUE; 644 - } else if (pMgmt->eAuthenMode == WMAC_AUTH_OPEN) { 645 - if(bwepEnabled==TRUE) { //@open-wep 646 - pDevice->eEncryptionStatus = Ndis802_11Encryption1Enabled; 647 - } else { 648 - // @only open 649 - pDevice->eEncryptionStatus = Ndis802_11EncryptionDisabled; 650 - } 651 - } 652 - // mike save old encryption status 653 - pDevice->eOldEncryptionStatus = pDevice->eEncryptionStatus; 654 - 655 - if (pDevice->eEncryptionStatus != Ndis802_11EncryptionDisabled) 656 - pDevice->bEncryptionEnable = TRUE; 657 - else 658 - pDevice->bEncryptionEnable = FALSE; 659 - 660 - if ((pMgmt->eAuthenMode == WMAC_AUTH_SHAREKEY) || 661 - ((pMgmt->eAuthenMode == WMAC_AUTH_OPEN) && (bwepEnabled==TRUE))) { 662 - // mike re-comment:open-wep && sharekey-wep needn't do initial key!! 663 - } else { 664 - KeyvInitTable(pDevice,&pDevice->sKey); 665 - } 666 - 667 - spin_lock_irq(&pDevice->lock); 668 - pDevice->bLinkPass = FALSE; 669 - ControlvMaskByte(pDevice, MESSAGE_REQUEST_MACREG, MAC_REG_PAPEDELAY, LEDSTS_STS, LEDSTS_SLOW); 670 - memset(pMgmt->abyCurrBSSID, 0, 6); 671 - pMgmt->eCurrState = WMAC_STATE_IDLE; 672 - netif_stop_queue(pDevice->dev); 673 - 674 - /******* search if ap_scan=2, which is associating request in hidden ssid mode ****/ 675 - { 676 - PKnownBSS pCurr = NULL; 677 - pCurr = BSSpSearchBSSList(pDevice, 678 - pMgmt->abyDesireBSSID, 679 - pMgmt->abyDesireSSID, 680 - pDevice->eConfigPHYMode 681 - ); 682 - 683 - if (pCurr == NULL){ 684 - printk("wpa_set_associate---->hidden mode site survey before associate.......\n"); 685 - bScheduleCommand((void *)pDevice, 686 - WLAN_CMD_BSSID_SCAN, 687 - pMgmt->abyDesireSSID); 688 - } 689 - } 690 - /****************************************************************/ 691 - 692 - bScheduleCommand((void *)pDevice, WLAN_CMD_SSID, NULL); 693 - spin_unlock_irq(&pDevice->lock); 694 - 695 - return ret; 696 - } 697 - 698 - /* 699 - * Description: 700 - * wpa_ioctl main function supported for wpa supplicant 701 - * 702 - * Parameters: 703 - * In: 704 - * pDevice - 705 - * iw_point - 706 - * Out: 707 - * 708 - * Return Value: 709 - * 710 - */ 711 - int wpa_ioctl(PSDevice pDevice, struct iw_point *p) 712 - { 713 - struct viawget_wpa_param *param; 714 - int ret = 0; 715 - int wpa_ioctl = 0; 716 - 717 - if (p->length < sizeof(struct viawget_wpa_param) || 718 - p->length > VIAWGET_WPA_MAX_BUF_SIZE || !p->pointer) 719 - return -EINVAL; 720 - 721 - param = kmalloc((int)p->length, GFP_KERNEL); 722 - if (param == NULL) 723 - return -ENOMEM; 724 - 725 - if (copy_from_user(param, p->pointer, p->length)) { 726 - ret = -EFAULT; 727 - goto out; 728 - } 729 - 730 - switch (param->cmd) { 731 - case VIAWGET_SET_WPA: 732 - ret = wpa_set_wpa(pDevice, param); 733 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "VIAWGET_SET_WPA \n"); 734 - break; 735 - 736 - case VIAWGET_SET_KEY: 737 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "VIAWGET_SET_KEY \n"); 738 - spin_lock_irq(&pDevice->lock); 739 - ret = wpa_set_keys(pDevice, param, FALSE); 740 - spin_unlock_irq(&pDevice->lock); 741 - break; 742 - 743 - case VIAWGET_SET_SCAN: 744 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "VIAWGET_SET_SCAN \n"); 745 - ret = wpa_set_scan(pDevice, param); 746 - break; 747 - 748 - case VIAWGET_GET_SCAN: 749 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "VIAWGET_GET_SCAN\n"); 750 - ret = wpa_get_scan(pDevice, param); 751 - wpa_ioctl = 1; 752 - break; 753 - 754 - case VIAWGET_GET_SSID: 755 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "VIAWGET_GET_SSID \n"); 756 - ret = wpa_get_ssid(pDevice, param); 757 - wpa_ioctl = 1; 758 - break; 759 - 760 - case VIAWGET_GET_BSSID: 761 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "VIAWGET_GET_BSSID \n"); 762 - ret = wpa_get_bssid(pDevice, param); 763 - wpa_ioctl = 1; 764 - break; 765 - 766 - case VIAWGET_SET_ASSOCIATE: 767 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "VIAWGET_SET_ASSOCIATE \n"); 768 - ret = wpa_set_associate(pDevice, param); 769 - break; 770 - 771 - case VIAWGET_SET_DISASSOCIATE: 772 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "VIAWGET_SET_DISASSOCIATE \n"); 773 - ret = wpa_set_disassociate(pDevice, param); 774 - break; 775 - 776 - case VIAWGET_SET_DROP_UNENCRYPT: 777 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "VIAWGET_SET_DROP_UNENCRYPT \n"); 778 - break; 779 - 780 - case VIAWGET_SET_DEAUTHENTICATE: 781 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "VIAWGET_SET_DEAUTHENTICATE \n"); 782 - break; 783 - 784 - default: 785 - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "wpa_ioctl: unknown cmd=%d\n", 786 - param->cmd); 787 - kfree(param); 788 - return -EOPNOTSUPP; 789 - } 790 - 791 - if ((ret == 0) && wpa_ioctl) { 792 - if (copy_to_user(p->pointer, param, p->length)) { 793 - ret = -EFAULT; 794 - goto out; 795 - } 796 - } 797 - 798 - out: 799 - kfree(param); 800 - return ret; 801 - }
-8
drivers/staging/vt6656/wpactl.h
··· 38 38 //WPA related 39 39 40 40 typedef enum { WPA_ALG_NONE, WPA_ALG_WEP, WPA_ALG_TKIP, WPA_ALG_CCMP } wpa_alg; 41 - typedef enum { CIPHER_NONE, CIPHER_WEP40, CIPHER_TKIP, CIPHER_CCMP, 42 - CIPHER_WEP104 } wpa_cipher; 43 - typedef enum { KEY_MGMT_802_1X, KEY_MGMT_PSK, KEY_MGMT_NONE, 44 - KEY_MGMT_802_1X_NO_WPA, KEY_MGMT_WPA_NONE, KEY_MGMT_CCKM } wpa_key_mgmt;//20080717-02,<Modify> by James Li 45 41 46 42 #define AUTH_ALG_OPEN_SYSTEM 0x01 47 43 #define AUTH_ALG_SHARED_KEY 0x02 48 44 #define AUTH_ALG_LEAP 0x04 49 45 50 - #define GENERIC_INFO_ELEM 0xdd 51 - #define RSN_INFO_ELEM 0x30 52 46 53 47 typedef unsigned long long NDIS_802_11_KEY_RSC; 54 48 ··· 52 58 53 59 /*--------------------- Export Functions --------------------------*/ 54 60 55 - int wpa_set_wpadev(PSDevice pDevice, int val); 56 - int wpa_ioctl(PSDevice pDevice, struct iw_point *p); 57 61 int wpa_set_keys(PSDevice pDevice, void *ctx, BOOL fcpfkernel); 58 62 59 63 #endif /* __WPACL_H__ */