<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">From 09847f8d2226f929ca29bfa2c193ada3543906ae Mon Sep 17 00:00:00 2001
From: Kevin Wolf &lt;kwolf@redhat.com&gt;
Date: Tue, 21 Jun 2011 13:59:24 -0300
Subject: [RHEL6 qemu-kvm PATCH 2/8] ide: Fix ide_drive_pio_state_needed()

RH-Author: Kevin Wolf &lt;kwolf@redhat.com&gt;
Message-id: &lt;1308664766-10499-3-git-send-email-kwolf@redhat.com&gt;
Patchwork-id: 27717
O-Subject: [RHEL-6.2 qemu-kvm PATCH 2/4] ide: Fix ide_drive_pio_state_needed()
Bugzilla: 698537
RH-Acked-by: Markus Armbruster &lt;armbru@redhat.com&gt;
RH-Acked-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
RH-Acked-by: Juan Quintela &lt;quintela@redhat.com&gt;

Bugzilla: 698537

When a failed PIO request caused the VM to stop, we still need to transfer the
PIO state even though DRQ=0 at this point.

Signed-off-by: Kevin Wolf &lt;kwolf@redhat.com&gt;
(cherry picked from commit fdc650d76d785ba56b1e87c260ce96d8e22c7cc8)
---
 hw/ide/core.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

Signed-off-by: Eduardo Habkost &lt;ehabkost@redhat.com&gt;
---
 hw/ide/core.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/hw/ide/core.c b/hw/ide/core.c
index b581880..7a7806d 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -2981,7 +2981,8 @@ static bool ide_drive_pio_state_needed(void *opaque)
 {
     IDEState *s = opaque;
 
-    return (s-&gt;status &amp; DRQ_STAT) != 0;
+    return ((s-&gt;status &amp; DRQ_STAT) != 0)
+        || (s-&gt;bus-&gt;error_status &amp; BM_STATUS_PIO_RETRY);
 }
 
 static bool ide_atapi_gesn_needed(void *opaque)
-- 
1.7.3.2

</pre></body></html>