Am 22.05.2012 12:59, schrieb Pavel Hrdina:
> We have to set up 'media_changed' after guest start so floppy driver
> could detect that there is no media in drive. For this purpose we call
> 'fdctrl_change_cb' instead of 'fd_revalidate' in 'fdctrl_connect_drives'.
> 'fd_revalidate' is called inside 'fdctrl_change_cb'.
> 
> In 'fdctrl_handle_seek' we always set current track because we don't care
> if there is media inserted or not.
> 
> Signed-off-by: Pavel Hrdina <phrd...@redhat.com>

Can you please add a qtest case that shows the problems that you're
fixing in this series?

> diff --git a/hw/fdc.c b/hw/fdc.c
> index cb4cd25..337b35a 100644
> --- a/hw/fdc.c
> +++ b/hw/fdc.c
> @@ -1617,11 +1617,7 @@ static void fdctrl_handle_seek(FDCtrl *fdctrl, int 
> direction)
>      /* The seek command just sends step pulses to the drive and doesn't care 
> if
>       * there is a medium inserted of if it's banging the head against the 
> drive.
>       */
> -    if (fdctrl->fifo[2] > cur_drv->max_track) {
> -        cur_drv->track = cur_drv->max_track;
> -    } else {
> -        cur_drv->track = fdctrl->fifo[2];
> -    }
> +    cur_drv->track = fdctrl->fifo[2];

Why is it okay to have cur_drv->track point outside the floppy? Won't it
mess up future calculations? Not all other places check it again
cur_drv->max_track.

Kevin

Reply via email to