From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:50529) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SWpMC-0002xk-Je for qemu-devel@nongnu.org; Tue, 22 May 2012 09:42:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SWpM0-00083u-2l for qemu-devel@nongnu.org; Tue, 22 May 2012 09:42:36 -0400 Received: from mx1.redhat.com ([209.132.183.28]:54803) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SWpLz-00083L-QH for qemu-devel@nongnu.org; Tue, 22 May 2012 09:42:23 -0400 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q4MDgMQp012006 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 22 May 2012 09:42:22 -0400 Message-ID: <4FBB97BC.4020205@redhat.com> Date: Tue, 22 May 2012 15:42:20 +0200 From: Kevin Wolf MIME-Version: 1.0 References: <32c32f56ba695401f1357dff7935b9ace76c1ebf.1337683541.git.phrdina@redhat.com> <4FBB801B.4010401@redhat.com> <4FBB946E.4000601@redhat.com> In-Reply-To: <4FBB946E.4000601@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 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: Pavel Hrdina Cc: qemu-devel@nongnu.org Am 22.05.2012 15:28, schrieb Pavel Hrdina: > 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 ? Sorry, I should have been more specific. Yes, that's what I mean. >>> 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. You mean max_track = 0 isn't a good value to work with? How can a real drive position the head correctly when it doesn't have a media (and therefore doesn't know its geometry)? But if you have a good default value for max_track that we should use when no medium is present, go ahead. Kevin