From: "Andreas Färber" <andreas.faerber@web.de>
To: "Hervé Poussineau" <hpoussin@reactos.org>
Cc: Peter Crosthwaite <peter.crosthwaite@xilinx.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
Hu Tao <hutao@cn.fujitsu.com>,
qemu-devel@nongnu.org, qemu-ppc@nongnu.org,
Anthony Liguori <anthony@codemonkey.ws>,
Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 2/2] i82378: cleanup implementation
Date: Wed, 31 Jul 2013 19:06:24 +0200 [thread overview]
Message-ID: <51F94410.20905@web.de> (raw)
In-Reply-To: <51F81CC6.8090104@reactos.org>
Am 30.07.2013 22:06, schrieb Hervé Poussineau:
> Andreas Färber a écrit :
>> Am 23.07.2013 23:16, schrieb Hervé Poussineau:
>>> }
>>>
>>> -static void i82378_init(DeviceState *dev, I82378State *s)
>>> +static void i82378_realize(DeviceState *dev, Error **errp)
>>> {
>>> - ISABus *isabus = ISA_BUS(qdev_get_child_bus(dev, "isa.0"));
>>> - ISADevice *pit;
>>> + PCIDevice *pci = PCI_DEVICE(dev);
>>> + I82378State *s = I82378(dev);
>>> + DeviceClass *dc;
>>> + uint8_t *pci_conf;
>>> + ISABus *isabus;
>>> ISADevice *isa;
>>> qemu_irq *out0_irq;
>>>
>>> + dc =
>>> DEVICE_CLASS(object_class_get_parent(object_get_class(OBJECT(dev))));
>>
>> This is going into uncharted territories. ;) I consider it wrong to use
>> object_get_class() - we should use object_class_by_name() to allow for
>> derived types and I'll put it into a macro that I'll try to align with
>> Peter C.'s and my QOM work.
>
> OK
While this gave me an inspiration for my virtio refactoring (it is
possible to convert device by device by calling the parent's
DeviceClass::realize as done here, as long as the *Class::init is called
conditionally through the DeviceClass::init implementation), I am
concerned about a single device deviating from initialization order here
(hw/pci/pci.c:pci_qdev_init() does things after calling PCIDevice::init,
namely ROM handling and bus hotplug) and will revert this to an
old-style qdev initfn for 1.6 bugfix.
[...]
>>> + dc->no_user = 1;
>>
>> Why do you do this? For one, according to Anthony it should no longer be
>> used, and for another, Paolo's endianness-test (make check) is using
>> -device i82378 for various other ppc and sh4 machines IIUC. make check
>> still succeeds for ppc with this patch though, so that might be due to
>> -device ignoring DeviceClass::no_user?
>
> I probably copied it from another chipset device, maybe i440fx.
> I don't really mind removing it.
Good.
> Yes, I double-checked that make check still works for all architectures.
>
>> Hoping to get this in shape for -rc1.
>
> Sure. Should I send a v2, as it seems you already queued it?
Since -rc1 is due tomorrow, I'll put together a pull myself tonight.
Andreas
next prev parent reply other threads:[~2013-07-31 17:06 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-23 21:16 [Qemu-devel] [PATCH 0/2] prep/i82378: simplify and enhance i82378 chipset implementation Hervé Poussineau
2013-07-23 21:16 ` [Qemu-devel] [PATCH 1/2] prep_pci: set isa_mem_base in the PCI host bridge Hervé Poussineau
2013-07-23 22:33 ` Andreas Färber
2013-07-24 5:37 ` Hervé Poussineau
2013-07-23 21:16 ` [Qemu-devel] [PATCH 2/2] i82378: cleanup implementation Hervé Poussineau
2013-07-29 21:53 ` Andreas Färber
2013-07-30 20:06 ` Hervé Poussineau
2013-07-31 17:06 ` Andreas Färber [this message]
2013-07-31 17:23 ` Andreas Färber
2013-07-31 18:58 ` Hervé Poussineau
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=51F94410.20905@web.de \
--to=andreas.faerber@web.de \
--cc=anthony@codemonkey.ws \
--cc=hpoussin@reactos.org \
--cc=hutao@cn.fujitsu.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.crosthwaite@xilinx.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).