These changes are the raw update to qemu-2.6.
[kvmfornfv.git] / qemu / hw / dma / etraxfs_dma.c
index 3599513..d5650eb 100644 (file)
@@ -21,8 +21,7 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include <stdio.h>
-#include <sys/time.h>
+#include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "exec/address-spaces.h"
 #include "qemu-common.h"
@@ -441,13 +440,16 @@ static int channel_out_run(struct fs_dma_ctrl *ctrl, int c)
                D(printf("channel %d pushes %x %u bytes eop=%u\n", c,
                         saved_data_buf, len, out_eop));
 
-               if (ctrl->channels[c].client->client.push)
-                       ctrl->channels[c].client->client.push(
-                               ctrl->channels[c].client->client.opaque,
-                               buf, len, out_eop);
-               else
+               if (ctrl->channels[c].client->client.push) {
+                        if (len > 0) {
+                               ctrl->channels[c].client->client.push(
+                                       ctrl->channels[c].client->client.opaque,
+                                       buf, len, out_eop);
+                       }
+               } else {
                        printf("WARNING: DMA ch%d dataloss,"
                               " no attached client.\n", c);
+               }
 
                saved_data_buf += len;