From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53964) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YsuuD-0007Ta-It for qemu-devel@nongnu.org; Thu, 14 May 2015 11:18:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ysuu4-0004a4-Ft for qemu-devel@nongnu.org; Thu, 14 May 2015 11:18:37 -0400 Received: from mail-wi0-x22e.google.com ([2a00:1450:400c:c05::22e]:38825) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ysuu4-0004ZT-5r for qemu-devel@nongnu.org; Thu, 14 May 2015 11:18:28 -0400 Received: by wicnf17 with SMTP id nf17so98605461wic.1 for ; Thu, 14 May 2015 08:18:27 -0700 (PDT) Message-ID: <5554BCC0.9070405@gmail.com> Date: Thu, 14 May 2015 18:18:24 +0300 From: Marcel Apfelbaum MIME-Version: 1.0 References: <1431614498-32007-1-git-send-email-stefano.stabellini@eu.citrix.com> In-Reply-To: <1431614498-32007-1-git-send-email-stefano.stabellini@eu.citrix.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] Add a property to disable the floppy controller Reply-To: marcel@redhat.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefano Stabellini , qemu-devel@nongnu.org Cc: pbonzini@redhat.com, xen-devel@lists.xensource.com, mst@redhat.com On 05/14/2015 05:41 PM, Stefano Stabellini wrote: > Do not change default settings for any machines at the moment: this > patch does not introduce any changes in behavior unless the user asks > for no-fdc=on. Hi, Agreeing with Paolo on this, maybe we can have an 'fdc' property (enabled by default) and set fdc=off when we don't want it? > > Signed-off-by: Stefano Stabellini > --- > hw/i386/pc.c | 27 ++++++++++++++++++++++++--- > include/hw/i386/pc.h | 2 ++ > vl.c | 4 ++++ > 3 files changed, 30 insertions(+), 3 deletions(-) > > diff --git a/hw/i386/pc.c b/hw/i386/pc.c > index f31d55e..501609b 100644 > --- a/hw/i386/pc.c > +++ b/hw/i386/pc.c > @@ -1450,10 +1450,14 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi, > cpu_exit_irq = qemu_allocate_irqs(cpu_request_exit, NULL, 1); > DMA_init(0, cpu_exit_irq); > > - for(i = 0; i < MAX_FD; i++) { > - fd[i] = drive_get(IF_FLOPPY, 0, i); > + *floppy = NULL; > + if (!object_property_get_bool(qdev_get_machine(), > + PC_MACHINE_NO_FDC, &error_abort)) { > + for (i = 0; i < MAX_FD; i++) { > + fd[i] = drive_get(IF_FLOPPY, 0, i); > + } > + *floppy = fdctrl_init_isa(isa_bus, fd); > } > - *floppy = fdctrl_init_isa(isa_bus, fd); > } > > void pc_nic_init(ISABus *isa_bus, PCIBus *pci_bus) > @@ -1797,6 +1801,20 @@ static bool pc_machine_get_aligned_dimm(Object *obj, Error **errp) > return pcms->enforce_aligned_dimm; > } > > +static bool pc_machine_get_no_fdc(Object *obj, Error **errp) > +{ > + PCMachineState *pcms = PC_MACHINE(obj); > + > + return pcms->no_fdc; > +} > + > +static void pc_machine_set_no_fdc(Object *obj, bool value, Error **errp) > +{ > + PCMachineState *pcms = PC_MACHINE(obj); > + > + pcms->no_fdc = value; > +} > + > static void pc_machine_initfn(Object *obj) > { > PCMachineState *pcms = PC_MACHINE(obj); > @@ -1820,6 +1838,9 @@ static void pc_machine_initfn(Object *obj) > object_property_add_bool(obj, PC_MACHINE_ENFORCE_ALIGNED_DIMM, > pc_machine_get_aligned_dimm, > NULL, NULL); > + object_property_add_bool(obj, PC_MACHINE_NO_FDC, > + pc_machine_get_no_fdc, pc_machine_set_no_fdc, > + NULL); > } > > static void pc_machine_class_init(ObjectClass *oc, void *data) > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h > index 69d9cf8..93b2442 100644 > --- a/include/hw/i386/pc.h > +++ b/include/hw/i386/pc.h > @@ -41,6 +41,7 @@ struct PCMachineState { > uint64_t max_ram_below_4g; > OnOffAuto vmport; > bool enforce_aligned_dimm; > + bool no_fdc; > }; > > #define PC_MACHINE_ACPI_DEVICE_PROP "acpi-device" > @@ -48,6 +49,7 @@ struct PCMachineState { > #define PC_MACHINE_MAX_RAM_BELOW_4G "max-ram-below-4g" > #define PC_MACHINE_VMPORT "vmport" > #define PC_MACHINE_ENFORCE_ALIGNED_DIMM "enforce-aligned-dimm" > +#define PC_MACHINE_NO_FDC "no-fdc" > > /** > * PCMachineClass: > diff --git a/vl.c b/vl.c > index 91411c1..81d80ae 100644 > --- a/vl.c > +++ b/vl.c > @@ -387,6 +387,10 @@ static QemuOptsList qemu_machine_opts = { > .name = "iommu", > .type = QEMU_OPT_BOOL, > .help = "Set on/off to enable/disable Intel IOMMU (VT-d)", > + },{ > + .name = PC_MACHINE_NO_FDC, > + .type = QEMU_OPT_BOOL, > + .help = "do not emulate a floppy controller", The machine properties are "dynamic" now, this list should be empty, including the "iommu" above. Am I missing something ? By the way, there is a problem with this, we have to add the new properties to util/qemu-config.c. Thanks, Marcel > }, > { /* End of list */ } > }, >