alsa_sound: prevent lowlatency errors triggering WD reset
- HAL tries to recover from pcm write or read failure
by closing and reopening pcm driver.
- There is no check when pcm is reopened. If the
reopen fails it keeps trying multiple times in loop
- Fix the issue by checking error condition and
return on failure.
Bug: 7253359
Change-Id: Ia15153f5b43bb0f255a8b34b70025a6215484cee
Signed-off-by: Iliyan Malchev <malchev@google.com>
diff --git a/alsa_sound/AudioStreamInALSA.cpp b/alsa_sound/AudioStreamInALSA.cpp
index 031d477..3b66c24 100644
--- a/alsa_sound/AudioStreamInALSA.cpp
+++ b/alsa_sound/AudioStreamInALSA.cpp
@@ -435,6 +435,13 @@
}
else
mHandle->module->open(mHandle);
+
+ if(mHandle->handle == NULL) {
+ ALOGE("read:: PCM device re-open failed");
+ mParent->mLock.unlock();
+ return 0;
+ }
+
mParent->mLock.unlock();
continue;
}