qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2] fdc: fix media change detection for windows
@ 2012-06-05 15:46 Pavel Hrdina
  2012-06-05 15:50 ` Pavel Hrdina
  0 siblings, 1 reply; 7+ messages in thread
From: Pavel Hrdina @ 2012-06-05 15:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, mtosatti, armbru, Pavel Hrdina

The Windows uses 'READ' command at the start of an instalation
without checking the 'dir' register. We have to abort the transfer
with an abnormal termination if there is no media in the drive.

We have to also check the 'media_change' bit in the 'fd_seek'. This
internal seek clears the 'media_change' bit, too, if there is
a media inserted.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
 hw/fdc.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/hw/fdc.c b/hw/fdc.c
index 30d34e3..2d6dd30 100644
--- a/hw/fdc.c
+++ b/hw/fdc.c
@@ -127,8 +127,13 @@ static int fd_seek(FDrive *drv, uint8_t head, uint8_t track, uint8_t sect,
     uint32_t sector;
     int ret;
 
+    if (drv->bs != NULL && bdrv_is_inserted(drv->bs)) {
+        drv->media_changed = 0;
+    }
+
     if (track > drv->max_track ||
-        (head != 0 && (drv->flags & FDISK_DBL_SIDES) == 0)) {
+        (head != 0 && (drv->flags & FDISK_DBL_SIDES) == 0) ||
+        drv->media_changed) {
         FLOPPY_DPRINTF("try to read %d %02x %02x (max=%d %d %02x %02x)\n",
                        head, track, sect, 1,
                        (drv->flags & FDISK_DBL_SIDES) == 0 ? 0 : 1,
-- 
1.7.7.6

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-06-06 13:59 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-05 15:46 [Qemu-devel] [PATCH v2] fdc: fix media change detection for windows Pavel Hrdina
2012-06-05 15:50 ` Pavel Hrdina
2012-06-05 15:56   ` Kevin Wolf
2012-06-05 16:34     ` Pavel Hrdina
2012-06-06 10:35       ` Kevin Wolf
2012-06-06 13:43         ` Pavel Hrdina
2012-06-06 13:58           ` Kevin Wolf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).