diff options
author | Ben Fennema <fennema@google.com> | 2018-04-06 09:37:45 -0700 |
---|---|---|
committer | Ben Fennema <fennema@google.com> | 2018-04-06 09:52:02 -0700 |
commit | 55147a48e9aeb61e885897b80234921b763b2694 (patch) | |
tree | 251f20857cce122aafa448301e512ae0c8b105fa /qcwcn/wifi_hal | |
parent | e6476a16ebe0f818b80dcb627193f62528344640 (diff) | |
download | wlan-55147a48e9aeb61e885897b80234921b763b2694.tar.gz |
WiFi-Hal: Fix checks on logger capabilities of driver
Not all devices support logger, so don't treat the lack of logger
capability as a fatal error.
Add checking in wifi_logger_ring_buffers_deinit to not cleanup
logger when it was not initialized in the first place due to lack
of logger support.
Call wifi_logger_ring_buffers_deinit in the wifi_initialize
failure path.
Bug: 77649716
Test: Boot device without logger support and verify wifi works
Change-Id: I135ea60b19e347f62b37da76a476f68e8f441501
Signed-off-by: Ben Fennema <fennema@google.com>
Diffstat (limited to 'qcwcn/wifi_hal')
-rw-r--r-- | qcwcn/wifi_hal/wifi_hal.cpp | 7 | ||||
-rw-r--r-- | qcwcn/wifi_hal/wifilogger.cpp | 3 |
2 files changed, 6 insertions, 4 deletions
diff --git a/qcwcn/wifi_hal/wifi_hal.cpp b/qcwcn/wifi_hal/wifi_hal.cpp index 4ec60e7..f46a22c 100644 --- a/qcwcn/wifi_hal/wifi_hal.cpp +++ b/qcwcn/wifi_hal/wifi_hal.cpp @@ -626,7 +626,7 @@ wifi_error wifi_initialize(wifi_handle *handle) ret = wifi_get_logger_supported_feature_set(iface_handle, &info->supported_logger_feature_set); if (ret != WIFI_SUCCESS) - ALOGE("Failed to get supported logger featur set: %d", ret); + ALOGE("Failed to get supported logger feature set: %d", ret); ret = get_firmware_bus_max_size_supported(iface_handle); if (ret != WIFI_SUCCESS) { @@ -635,10 +635,8 @@ wifi_error wifi_initialize(wifi_handle *handle) } ret = wifi_logger_ring_buffers_init(info); - if (ret != WIFI_SUCCESS) { + if (ret != WIFI_SUCCESS) ALOGE("Wifi Logger Ring Initialization Failed"); - goto unload; - } ret = wifi_get_capabilities(iface_handle); if (ret != WIFI_SUCCESS) @@ -710,6 +708,7 @@ unload: } if (info->pkt_stats) free(info->pkt_stats); if (info->rx_aggr_pkts) free(info->rx_aggr_pkts); + wifi_logger_ring_buffers_deinit(info); cleanupGscanHandlers(info); cleanupRSSIMonitorHandler(info); free(info->event_cb); diff --git a/qcwcn/wifi_hal/wifilogger.cpp b/qcwcn/wifi_hal/wifilogger.cpp index 799b23e..11a6b6e 100644 --- a/qcwcn/wifi_hal/wifilogger.cpp +++ b/qcwcn/wifi_hal/wifilogger.cpp @@ -906,6 +906,9 @@ void wifi_logger_ring_buffers_deinit(hal_info *info) { int i; + if (!(info->supported_logger_feature_set & LOGGER_RING_BUFFER)) + return; + for (i = 0; i < NUM_RING_BUFS; i++) { rb_deinit(&info->rb_infos[i]); } |