From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58982) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SWp8R-0004qf-Tf for qemu-devel@nongnu.org; Tue, 22 May 2012 09:28:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SWp8L-0003cA-JN for qemu-devel@nongnu.org; Tue, 22 May 2012 09:28:23 -0400 Received: from mx1.redhat.com ([209.132.183.28]:36842) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SWp8L-0003c0-CO for qemu-devel@nongnu.org; Tue, 22 May 2012 09:28:17 -0400 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q4MDSFUS008689 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 22 May 2012 09:28:15 -0400 Message-ID: <4FBB946E.4000601@redhat.com> Date: Tue, 22 May 2012 15:28:14 +0200 From: Pavel Hrdina MIME-Version: 1.0 References: <32c32f56ba695401f1357dff7935b9ace76c1ebf.1337683541.git.phrdina@redhat.com> <4FBB801B.4010401@redhat.com> In-Reply-To: <4FBB801B.4010401@redhat.com> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/2] fdc: fix media detection List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: qemu-devel@nongnu.org On 05/22/2012 02:01 PM, Kevin Wolf wrote: > 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 > Can you please add a qtest case that shows the problems that you're > fixing in this series? I'm new to qemu. By "add a qtest case" you mean update tests/fdc-test.c ? >> 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 Well, you are right. Than we have to set 'max_track' even if there is no media. I tested this on bare-metal without media and where floppy driver ask to seek to specific track, it ends good and return specific track position as actual. I'll rewrite this behavior and send patch v2.