From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50211) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YT9xC-0007v5-VC for qemu-devel@nongnu.org; Wed, 04 Mar 2015 09:07:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YT9xA-00035R-3F for qemu-devel@nongnu.org; Wed, 04 Mar 2015 09:07:14 -0500 Received: from mx1.redhat.com ([209.132.183.28]:26689) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YT9x9-00035J-Re for qemu-devel@nongnu.org; Wed, 04 Mar 2015 09:07:12 -0500 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t24E7BdD024690 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Wed, 4 Mar 2015 09:07:11 -0500 Message-ID: <54F7118D.3000900@redhat.com> Date: Wed, 04 Mar 2015 09:07:09 -0500 From: Max Reitz MIME-Version: 1.0 References: <1423501897-30410-1-git-send-email-mreitz@redhat.com> <1423501897-30410-4-git-send-email-mreitz@redhat.com> <20150304140014.GP3465@noname.str.redhat.com> In-Reply-To: <20150304140014.GP3465@noname.str.redhat.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 03/37] hw/block/fdc: Implement tray status List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: John Snow , qemu-devel@nongnu.org, Stefan Hajnoczi , Markus Armbruster On 2015-03-04 at 09:00, Kevin Wolf wrote: > Am 09.02.2015 um 18:11 hat Max Reitz geschrieben: >> The tray of an FDD is open iff there is no medium inserted (there are >> only two states for an FDD: "medium inserted" or "no medium inserted"). >> >> This results in the tray being reported as open if qemu has been started >> with the default floppy drive, which breaks some tests. Fix them. >> >> Signed-off-by: Max Reitz >> --- >> hw/block/fdc.c | 20 +++++++++++++--- >> tests/fdc-test.c | 4 +--- >> tests/qemu-iotests/067.out | 60 +++++++--------------------------------------- >> tests/qemu-iotests/071.out | 2 -- >> tests/qemu-iotests/081.out | 1 - >> tests/qemu-iotests/087.out | 6 ----- >> 6 files changed, 26 insertions(+), 67 deletions(-) >> >> diff --git a/hw/block/fdc.c b/hw/block/fdc.c >> index 2bf87c9..0c5a6b4 100644 >> --- a/hw/block/fdc.c >> +++ b/hw/block/fdc.c >> @@ -192,6 +192,8 @@ typedef struct FDrive { >> uint8_t ro; /* Is read-only */ >> uint8_t media_changed; /* Is media changed */ >> uint8_t media_rate; /* Data rate of medium */ >> + >> + bool media_inserted; /* Is there a medium in the tray */ >> } FDrive; >> >> static void fd_init(FDrive *drv) >> @@ -261,7 +263,7 @@ static int fd_seek(FDrive *drv, uint8_t head, uint8_t track, uint8_t sect, >> #endif >> drv->head = head; >> if (drv->track != track) { >> - if (drv->blk != NULL && blk_is_inserted(drv->blk)) { >> + if (drv->media_inserted) { > I suspect that with the removal of blk_is_inserted() in several places, > floppy passthrough (host_floppy block driver) is now even more broken > than before, potentially not noticing removal of a medium any more. > > While checking this, I noticed that since commit 21fcf360, > bdrv_media_changed() is completely unused. Media change has therefore > probably been broken since at least May 2012. > > Considering this, it might actually be reasonable enough to remove the > block driver. It's definitely better than having it there, but not > working any better than host_device. > > Of course, alternatively you would also be welcome to fix the device > model and reintroduce bdrv_media_changed() and blk_is_inserted() calls > where necessary. Urrggghhh... I guess it's my own fault for touching floppy code. I guess I'll rethink this patch while keeping in mind that bdrv_is_inserted() (as opposed to blk_is_inserted()) actually is necessary here because we won't notice if the host medium has been exchanged otherwise. Max