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);