[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] fdc: fix media change detection for windows
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH] fdc: fix media change detection for windows |
Date: |
Tue, 05 Jun 2012 16:02:20 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1 |
Am 05.06.2012 15:48, schrieb Pavel Hrdina:
> The windows uses 'READ' command at the start of instalation. We have to
> also check the 'media_change' bit in the 'fd_seek'.
>
> Signed-off-by: Pavel Hrdina <address@hidden>
Can you explain the scenario in more detail? What is Windows trying and
why should it fail? What is happening today?
> ---
> hw/fdc.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/hw/fdc.c b/hw/fdc.c
> index 30d34e3..70b0c00 100644
> --- a/hw/fdc.c
> +++ b/hw/fdc.c
> @@ -128,7 +128,8 @@ static int fd_seek(FDrive *drv, uint8_t head, uint8_t
> track, uint8_t sect,
> int ret;
>
> 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,
Context: Next thing in the code is an error return.
This looks wrong to me. drv->media_changed is also true when a new
floppy has been inserted, but there was no step pulse yet. Is there any
reason why an fd_seek() should fail when a floppy is present?
Last, but not least: Any floppy fixes should come with qtest cases.
Kevin