From: Markus Armbruster <armbru@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Halil Pasic <pasic@linux.ibm.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
Cornelia Huck <cohuck@redhat.com>,
qemu-devel@nongnu.org
Subject: Re: Intended purpose of virtio-rng's QOM link "rng"?
Date: Tue, 21 Jul 2020 09:05:15 +0200 [thread overview]
Message-ID: <87mu3tbb6c.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <20200720112838-mutt-send-email-mst@kernel.org> (Michael S. Tsirkin's message of "Mon, 20 Jul 2020 11:56:32 -0400")
"Michael S. Tsirkin" <mst@redhat.com> writes:
> On Mon, Jul 20, 2020 at 05:07:08PM +0200, Markus Armbruster wrote:
>> What is the intended purpose of object_property_set_link() in
>>
>> static void virtio_rng_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
>> {
>> VirtIORngPCI *vrng = VIRTIO_RNG_PCI(vpci_dev);
>> DeviceState *vdev = DEVICE(&vrng->vdev);
>>
>> if (!qdev_realize(vdev, BUS(&vpci_dev->bus), errp)) {
>> return;
>> }
>>
>> object_property_set_link(OBJECT(vrng), "rng", OBJECT(vrng->vdev.conf.rng),
>> NULL);
>> }
>>
>> ?
>>
>> I'm asking because the function *always* fails. I believe it's been
>> failing for years.
>>
>> Similar code in the CCW buddy. Also virtio-crypto-pci and
>> virtio-crypto-ccw link "cryptodev".
>>
>> I tried moving it before qdev_realize(), where it doesn't fail. But
>> then *I* fail, namely at finding any effect in QOM.
>
> I suspect that's because there's already a link with that name
> created by virtio core. Is that right?
Looks like it, in virtio_rng_device_realize():
if (vrng->conf.rng == NULL) {
... make up @default_backend ...
object_property_set_link(OBJECT(dev), "rng", default_backend,
&error_abort);
}
The object_property_set_link actually sets vrng->vdev.conf.rng (but it
takes quite some digging to see that; MICAHI[*] at work).
For virtio-crypto, the link is vcrypto->vdev.conf.cryptodev.
virtio_crypto_pci_realize() first checks its already set:
if (vcrypto->vdev.conf.cryptodev == NULL) {
error_setg(errp, "'cryptodev' parameter expects a valid object");
return;
}
>> If it's really useless, I'll send a patch to drop it.
All four are useless; will send patches.
>> If it has a use, tell me more, so I can test my patch to move it.
Thanks!
[*] Make It Complicated And Hide It.
prev parent reply other threads:[~2020-07-21 7:06 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-20 15:07 Intended purpose of virtio-rng's QOM link "rng"? Markus Armbruster
2020-07-20 15:56 ` Michael S. Tsirkin
2020-07-21 7:05 ` Markus Armbruster [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=87mu3tbb6c.fsf@dusky.pond.sub.org \
--to=armbru@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=mst@redhat.com \
--cc=pasic@linux.ibm.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.