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/AudioStreamOutALSA.cpp b/alsa_sound/AudioStreamOutALSA.cpp
index d047cd4..2adb5d8 100644
--- a/alsa_sound/AudioStreamOutALSA.cpp
+++ b/alsa_sound/AudioStreamOutALSA.cpp
@@ -260,8 +260,12 @@
mHandle->rxHandle = NULL;
mHandle->module->startVoipCall(mHandle);
}
- else {
+ else
mHandle->module->open(mHandle);
+ if(mHandle->handle == NULL) {
+ ALOGE("write:: device re-open failed");
+ mParent->mLock.unlock();
+ return bytes;
}
}
mParent->mLock.unlock();