From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47502) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YT9qa-0002Zo-Mv for qemu-devel@nongnu.org; Wed, 04 Mar 2015 09:00:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YT9qU-0007zu-31 for qemu-devel@nongnu.org; Wed, 04 Mar 2015 09:00:24 -0500 Received: from mx1.redhat.com ([209.132.183.28]:33649) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YT9qT-0007zS-Re for qemu-devel@nongnu.org; Wed, 04 Mar 2015 09:00:18 -0500 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t24E0Hoh020819 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Wed, 4 Mar 2015 09:00:17 -0500 Date: Wed, 4 Mar 2015 15:00:14 +0100 From: Kevin Wolf Message-ID: <20150304140014.GP3465@noname.str.redhat.com> References: <1423501897-30410-1-git-send-email-mreitz@redhat.com> <1423501897-30410-4-git-send-email-mreitz@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1423501897-30410-4-git-send-email-mreitz@redhat.com> 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: Max Reitz Cc: John Snow , qemu-devel@nongnu.org, Stefan Hajnoczi , Markus Armbruster 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. Kevin