.. | .. |
---|
678 | 678 | struct dhd_pub *dhd = dhd_get_pub(dev); |
---|
679 | 679 | struct iw_freq *fwrq = &wrqu->freq; |
---|
680 | 680 | int error; |
---|
| 681 | + u32 val; |
---|
681 | 682 | chanspec_t chanspec = 0; |
---|
682 | 683 | int ctl_chan; |
---|
683 | 684 | |
---|
684 | 685 | WL_TRACE(("%s: SIOCGIWFREQ\n", dev->name)); |
---|
685 | 686 | |
---|
686 | 687 | DHD_CHECK(dhd, dev); |
---|
687 | | - if ((error = dev_wlc_intvar_get(dev, "chanspec", (s32 *)&chanspec))) |
---|
| 688 | + if ((error = dev_wlc_intvar_get(dev, "chanspec", &val))) |
---|
688 | 689 | return error; |
---|
| 690 | + chanspec = val; |
---|
689 | 691 | chanspec = wl_ext_chspec_driver_to_host(dhd, chanspec); |
---|
690 | 692 | ctl_chan = wf_chspec_ctlchan(chanspec); |
---|
691 | 693 | |
---|
.. | .. |
---|
1379 | 1381 | struct dhd_pub *dhd = dhd_get_pub(dev); |
---|
1380 | 1382 | wlc_ssid_t ssid; |
---|
1381 | 1383 | #ifdef WL_ESCAN |
---|
1382 | | - wl_scan_info_t scan_info; |
---|
| 1384 | + wl_scan_info_t *scan_info = NULL; |
---|
| 1385 | + int err; |
---|
1383 | 1386 | #else |
---|
1384 | 1387 | wl_wext_info_t *wext_info = NULL; |
---|
1385 | 1388 | iscan_info_t *iscan; |
---|
.. | .. |
---|
1403 | 1406 | } |
---|
1404 | 1407 | } |
---|
1405 | 1408 | #endif |
---|
1406 | | - memset(&scan_info, 0, sizeof(wl_scan_info_t)); |
---|
1407 | | - scan_info.bcast_ssid = TRUE; |
---|
1408 | | - memcpy(scan_info.ssid.SSID, ssid.SSID, ssid.SSID_len); |
---|
1409 | | - scan_info.ssid.SSID_len = ssid.SSID_len; |
---|
1410 | | - return wl_escan_set_scan(dev, &scan_info); |
---|
| 1409 | + scan_info = kmalloc(sizeof(wl_scan_info_t), GFP_KERNEL); |
---|
| 1410 | + if (scan_info == NULL) { |
---|
| 1411 | + WL_ERROR(("kzalloc failed\n")); |
---|
| 1412 | + return -ENOMEM; |
---|
| 1413 | + } |
---|
| 1414 | + memset(scan_info, 0, sizeof(wl_scan_info_t)); |
---|
| 1415 | + scan_info->bcast_ssid = TRUE; |
---|
| 1416 | + memcpy(scan_info->ssid.SSID, ssid.SSID, ssid.SSID_len); |
---|
| 1417 | + scan_info->ssid.SSID_len = ssid.SSID_len; |
---|
| 1418 | + err = wl_escan_set_scan(dev, scan_info); |
---|
| 1419 | + kfree(scan_info); |
---|
| 1420 | + return err; |
---|
1411 | 1421 | #else |
---|
1412 | 1422 | wext_info = dhd->wext_info; |
---|
1413 | 1423 | iscan = &wext_info->iscan; |
---|