From c905ea66d41b9418a73cbaf860b7ea6661313f59 Mon Sep 17 00:00:00 2001 From: xshu Date: Sun, 11 Jul 2021 19:57:02 -0700 Subject: [PATCH] Clear ringbuffer after dumping to file Clear the in-memory ringbuffer after writing to file. Bug: 193007899 Test: Manually verified ringbuffers are cleared with command "adb shell lshal debug android.hardware.wifi@1.5::IWifi" Change-Id: Icfa08634e948d7155e231458edd394a4d699fbaa --- wifi/1.5/default/ringbuffer.cpp | 5 +++++ wifi/1.5/default/ringbuffer.h | 1 + wifi/1.5/default/wifi_chip.cpp | 5 +++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/wifi/1.5/default/ringbuffer.cpp b/wifi/1.5/default/ringbuffer.cpp index 26971ff25b..f554111e61 100644 --- a/wifi/1.5/default/ringbuffer.cpp +++ b/wifi/1.5/default/ringbuffer.cpp @@ -47,6 +47,11 @@ const std::list>& Ringbuffer::getData() const { return data_; } +void Ringbuffer::clear() { + data_.clear(); + size_ = 0; +} + } // namespace implementation } // namespace V1_5 } // namespace wifi diff --git a/wifi/1.5/default/ringbuffer.h b/wifi/1.5/default/ringbuffer.h index d8b87f2171..03fb37a6a2 100644 --- a/wifi/1.5/default/ringbuffer.h +++ b/wifi/1.5/default/ringbuffer.h @@ -37,6 +37,7 @@ class Ringbuffer { // within |maxSize_|. void append(const std::vector& input); const std::list>& getData() const; + void clear(); private: std::list> data_; diff --git a/wifi/1.5/default/wifi_chip.cpp b/wifi/1.5/default/wifi_chip.cpp index 961f9da4c2..024747af43 100644 --- a/wifi/1.5/default/wifi_chip.cpp +++ b/wifi/1.5/default/wifi_chip.cpp @@ -1940,8 +1940,8 @@ bool WifiChip::writeRingbufferFilesInternal() { // write ringbuffers to file { std::unique_lock lk(lock_t); - for (const auto& item : ringbuffer_map_) { - const Ringbuffer& cur_buffer = item.second; + for (auto& item : ringbuffer_map_) { + Ringbuffer& cur_buffer = item.second; if (cur_buffer.getData().empty()) { continue; } @@ -1959,6 +1959,7 @@ bool WifiChip::writeRingbufferFilesInternal() { PLOG(ERROR) << "Error writing to file"; } } + cur_buffer.clear(); } // unique_lock unlocked here }