Index: /trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp	(revision 54810)
+++ /trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp	(revision 54811)
@@ -836,5 +836,6 @@
     snd_pcm_sframes_t cRead;
 
-    while (cbToRead)
+    while (   cbToRead
+           && RT_SUCCESS(rc))
     {
         cToRead = RT_MIN(AUDIOMIXBUF_B2S(&pHstStrmIn->MixBuf, cbToRead),
@@ -854,4 +855,10 @@
 
                 case -EAGAIN:
+                    /*
+                     * Don't set error here because EAGAIN means there are no ffurther rames
+                     * available at the moment, try later. As we might have read some frames
+                     * already the need to be processed.
+                     */
+                    cbToRead = 0;
                     break;
 
