qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]