Snap for 4632767 from ab5b51838c94afc60f9979cdde2117930ef90ea9 to pi-release
Change-Id: Id24c270347d877f68c6c1f468a98615580562a13
diff --git a/modules/audio_remote_submix/audio_hw.cpp b/modules/audio_remote_submix/audio_hw.cpp
index d78e723..e826ac3 100644
--- a/modules/audio_remote_submix/audio_hw.cpp
+++ b/modules/audio_remote_submix/audio_hw.cpp
@@ -821,6 +821,11 @@
written_frames = 0;
return 0;
+ } else if (written_frames == -EIO) {
+ // receiving -EIO means that the underlying FIFO has shut itself down
+ // due to reader/writer indices corruption. This state is irreversible,
+ // so shut down the monopipe. It will be destroyed on the next call to 'write.'
+ sink->shutdown(true);
} else {
// write() returned UNDERRUN or WOULD_BLOCK, retry
ALOGE("out_write() write to pipe returned unexpected %zd", written_frames);