diff options
-rw-r--r-- | bcmdhd/firmware/bcm4358/fw_bcm4358.bin | bin | 595803 -> 638488 bytes | |||
-rw-r--r-- | bcmdhd/firmware/bcm4358/fw_bcm4358_ap.bin | bin | 504562 -> 554369 bytes | |||
-rw-r--r-- | bcmdhd/wifi_hal/gscan.cpp | 7 | ||||
-rw-r--r-- | bcmdhd/wifi_hal/wifi_hal.cpp | 7 |
4 files changed, 10 insertions, 4 deletions
diff --git a/bcmdhd/firmware/bcm4358/fw_bcm4358.bin b/bcmdhd/firmware/bcm4358/fw_bcm4358.bin Binary files differindex 56cb61f..41b02f3 100644 --- a/bcmdhd/firmware/bcm4358/fw_bcm4358.bin +++ b/bcmdhd/firmware/bcm4358/fw_bcm4358.bin diff --git a/bcmdhd/firmware/bcm4358/fw_bcm4358_ap.bin b/bcmdhd/firmware/bcm4358/fw_bcm4358_ap.bin Binary files differindex ab80660..bc836e6 100644 --- a/bcmdhd/firmware/bcm4358/fw_bcm4358_ap.bin +++ b/bcmdhd/firmware/bcm4358/fw_bcm4358_ap.bin diff --git a/bcmdhd/wifi_hal/gscan.cpp b/bcmdhd/wifi_hal/gscan.cpp index 8a21a0d..9f5669a 100644 --- a/bcmdhd/wifi_hal/gscan.cpp +++ b/bcmdhd/wifi_hal/gscan.cpp @@ -935,6 +935,10 @@ public: num = it2.get_u32(); ALOGV("retrieved num_results: %d", num); } else if (it2.get_type() == GSCAN_ATTRIBUTE_SCAN_RESULTS) { + if (mRetrieved >= mMax) { + ALOGW("Stored %d scans, ignoring excess results", mRetrieved); + break; + } num = it2.get_len() / sizeof(wifi_scan_result); num = min(MAX_RESULTS - mNextScanResult, num); num = min((int)MAX_AP_CACHE_PER_SCAN, num); @@ -956,9 +960,6 @@ public: &(mScanResults[mNextScanResult]), num * sizeof(wifi_scan_result)); mNextScanResult += num; mRetrieved++; - if (mRetrieved >= mMax && it.has_next()) { - ALOGW("Ignoring attributes after this scan"); - } } else { ALOGW("Ignoring invalid attribute type = %d, size = %d", it.get_type(), it.get_len()); diff --git a/bcmdhd/wifi_hal/wifi_hal.cpp b/bcmdhd/wifi_hal/wifi_hal.cpp index b27bac2..09738a3 100644 --- a/bcmdhd/wifi_hal/wifi_hal.cpp +++ b/bcmdhd/wifi_hal/wifi_hal.cpp @@ -1009,7 +1009,12 @@ static wifi_error wifi_start_rssi_monitoring(wifi_request_id id, wifi_interface_ wifi_handle handle = getWifiHandle(iface); SetRSSIMonitorCommand *cmd = new SetRSSIMonitorCommand(id, iface, max_rssi, min_rssi, eh); wifi_register_cmd(handle, id, cmd); - return (wifi_error)cmd->start(); + + wifi_error result = (wifi_error)cmd->start(); + if (result != WIFI_SUCCESS) { + wifi_unregister_cmd(handle, id); + } + return result; } |