From: "Andreas Färber" <afaerber@suse.de>
To: Hu Tao <hutao@cn.fujitsu.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH for-1.6 2/2] pvpanic: make pvpanic known to user
Date: Fri, 02 Aug 2013 14:20:24 +0200 [thread overview]
Message-ID: <51FBA408.4080409@suse.de> (raw)
In-Reply-To: <1375427079-16822-2-git-send-email-hutao@cn.fujitsu.com>
Am 02.08.2013 09:04, schrieb Hu Tao:
> Thus user can create pvpanic by -device.
>
> Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
> ---
> hw/misc/pvpanic.c | 23 ++++++++---------------
> include/hw/i386/pc.h | 3 ---
> 2 files changed, 8 insertions(+), 18 deletions(-)
>
> diff --git a/hw/misc/pvpanic.c b/hw/misc/pvpanic.c
> index 7bb49a5..6e4c53e 100644
> --- a/hw/misc/pvpanic.c
> +++ b/hw/misc/pvpanic.c
> @@ -93,14 +93,6 @@ static void pvpanic_isa_initfn(Object *obj)
> memory_region_init_io(&s->io, OBJECT(s), &pvpanic_ops, s, "pvpanic", 1);
> }
>
> -static void pvpanic_isa_realizefn(DeviceState *dev, Error **errp)
> -{
> - ISADevice *d = ISA_DEVICE(dev);
> - PVPanicState *s = ISA_PVPANIC_DEVICE(dev);
> -
> - isa_register_ioport(d, &s->io, s->ioport);
> -}
> -
> static void pvpanic_fw_cfg(ISADevice *dev, FWCfgState *fw_cfg)
> {
> PVPanicState *s = ISA_PVPANIC_DEVICE(dev);
> @@ -111,15 +103,16 @@ static void pvpanic_fw_cfg(ISADevice *dev, FWCfgState *fw_cfg)
> sizeof(*pvpanic_port));
> }
>
> -void pvpanic_init(ISABus *bus)
> +static void pvpanic_isa_realizefn(DeviceState *dev, Error **errp)
> {
> - ISADevice *dev;
> + ISADevice *d = ISA_DEVICE(dev);
> + PVPanicState *s = ISA_PVPANIC_DEVICE(dev);
> FWCfgState *fw_cfg = fw_cfg_find();
> - if (!fw_cfg) {
> - return;
> +
> + isa_register_ioport(d, &s->io, s->ioport);
> + if (fw_cfg) {
> + pvpanic_fw_cfg(d, fw_cfg);
> }
> - dev = isa_create_simple (bus, TYPE_ISA_PVPANIC_DEVICE);
> - pvpanic_fw_cfg(dev, fw_cfg);
> }
Doing this in-place above might've been a bit easier to read. ;)
The only thing fw_cfg does at realize time is registering its I/O ports,
the /machine/fw_cfg path is set up in fw_cfg_init() helper function
before, so there are no potential realize ordering problems here.
>
> static Property pvpanic_isa_properties[] = {
> @@ -132,8 +125,8 @@ static void pvpanic_isa_class_init(ObjectClass *klass, void *data)
> DeviceClass *dc = DEVICE_CLASS(klass);
>
> dc->realize = pvpanic_isa_realizefn;
> - dc->no_user = 1;
> dc->props = pvpanic_isa_properties;
> + dc->bus_type = TYPE_ISA_BUS;
This is already done in hw/isa/isa-bus.c:isa_device_class_init(), please
drop if we go with this.
Regards,
Andreas
> }
>
> static TypeInfo pvpanic_isa_info = {
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 3a0c4e3..e54751c 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -202,9 +202,6 @@ static inline bool isa_ne2000_init(ISABus *bus, int base, int irq, NICInfo *nd)
> /* pc_sysfw.c */
> void pc_system_firmware_init(MemoryRegion *rom_memory);
>
> -/* pvpanic.c */
> -void pvpanic_init(ISABus *bus);
> -
> /* e820 types */
> #define E820_RAM 1
> #define E820_RESERVED 2
>
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
prev parent reply other threads:[~2013-08-02 12:20 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-01 13:08 [Qemu-devel] pvpanic device should not be automatically included as an internal device Marcel Apfelbaum
2013-08-01 13:32 ` Michael S. Tsirkin
2013-08-01 16:39 ` Marcel Apfelbaum
2013-08-01 14:18 ` Gerd Hoffmann
2013-08-01 16:26 ` Eric Blake
2013-08-01 16:31 ` Michael S. Tsirkin
2013-08-01 16:41 ` Marcel Apfelbaum
2013-08-01 22:23 ` Paolo Bonzini
2013-08-01 22:42 ` Eric Blake
2013-08-02 8:31 ` Paolo Bonzini
2013-08-02 9:24 ` Daniel P. Berrange
2013-08-02 7:04 ` [Qemu-devel] [PATCH for-1.6 1/2] don't create pvpanic device by default Hu Tao
2013-08-02 8:27 ` Paolo Bonzini
2013-08-11 10:33 ` Michael S. Tsirkin
2013-08-11 14:45 ` Andreas Färber
2013-08-11 15:12 ` Michael S. Tsirkin
2013-08-11 15:16 ` Marcel Apfelbaum
2013-08-02 7:04 ` [Qemu-devel] [PATCH for-1.6 2/2] pvpanic: make pvpanic known to user Hu Tao
2013-08-02 12:20 ` Andreas Färber [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51FBA408.4080409@suse.de \
--to=afaerber@suse.de \
--cc=hutao@cn.fujitsu.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.