From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
Markus Armbruster <armbru@redhat.com>,
qemu-devel@nongnu.org, William Tsai <williamtsai1111@gmail.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Eduardo Habkost <eduardo@habkost.net>
Subject: Re: [PATCH 0/1] qom: fix setting of qdev array properties
Date: Fri, 8 Sep 2023 10:27:36 +0100 [thread overview]
Message-ID: <ZPrpCBa9ZWMweHqT@redhat.com> (raw)
In-Reply-To: <ZProov27HNpHmz5j@redhat.com>
On Fri, Sep 08, 2023 at 11:25:54AM +0200, Kevin Wolf wrote:
> Am 07.09.2023 um 11:35 hat Peter Maydell geschrieben:
> > On Thu, 7 Sept 2023 at 10:33, Markus Armbruster <armbru@redhat.com> wrote:
> > >
> > > Kevin Wolf <kwolf@redhat.com> writes:
> > >
> > > > Am 04.09.2023 um 18:25 hat Daniel P. Berrangé geschrieben:
> > > >> By the time of the 8.2.0 release, it will have been 2 years and 6
> > > >> releases since we accidentally broke setting of array properties
> > > >> for user creatable devices:
> > > >>
> > > >> https://gitlab.com/qemu-project/qemu/-/issues/1090
> > > >
> > > > Oh, nice!
> > >
> > > Nice? *Awesome*!
> > >
> > > > Well, maybe that sounds a bit wrong, but the syntax that was broken was
> > > > problematic and more of a hack,
> > >
> > > A monstrosity, in my opinion. I tried to strangle it in the crib, but
> > > its guardians wouldn't let me. Can dig up references for the morbidly
> > > curious.
> >
> > I don't care about the syntax on the command line much (AFAIK that's
> > just the rocker device). But the actual feature is used more widely
> > within QEMU itself for devices created in C code, which is what it
> > was intended for. If you want to get rid of it you need to provide
> > an adequate replacement.
>
> I have a patch to use QList (i.e. JSON lists) that seems to work for the
> rocker case. Now I need to find and update all of those internal
> callers. Should grepping for '"len-' find all instances that need to be
> changed or are you aware of other ways to access the feature?
IMHO we can just leave the internal only code callers unchanged. I was
about to send this patch to prevent usage leaking into user creatable
devices:
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index 357b8761b5..2d295411ef 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -584,6 +584,12 @@ static void set_prop_arraylen(Object *obj, Visitor *v, const char *name,
void *eltptr;
const char *arrayname;
int i;
+ DeviceClass *devc = DEVICE_CLASS(object_get_class(obj));
+
+ if (devc->user_creatable) {
+ error_setg(errp, "array property not permitted for user creatable devices");
+ return;
+ }
if (*alenptr) {
error_setg(errp, "array size property %s may not be set more than once",
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2023-09-08 9:28 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-04 16:25 [PATCH 0/1] qom: fix setting of qdev array properties Daniel P. Berrangé
2023-09-04 16:25 ` [PATCH 1/1] qom: fix setting of " Daniel P. Berrangé
2023-09-05 8:58 ` [PATCH 0/1] qom: fix setting of qdev " Kevin Wolf
2023-09-05 9:35 ` Peter Maydell
2023-09-07 9:33 ` Markus Armbruster
2023-09-07 9:35 ` Peter Maydell
2023-09-07 10:06 ` Daniel P. Berrangé
2023-09-08 9:25 ` Kevin Wolf
2023-09-08 9:27 ` Daniel P. Berrangé [this message]
2023-09-08 12:16 ` Kevin Wolf
2023-09-08 12:19 ` Daniel P. Berrangé
2023-09-08 9:53 ` Peter Maydell
2023-09-08 12:22 ` Kevin Wolf
2023-09-08 12:52 ` Peter Maydell
2023-09-07 12:59 ` Kevin Wolf
2023-09-07 14:16 ` Markus Armbruster
2023-09-07 9:45 ` Markus Armbruster
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=ZPrpCBa9ZWMweHqT@redhat.com \
--to=berrange@redhat.com \
--cc=armbru@redhat.com \
--cc=eduardo@habkost.net \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=williamtsai1111@gmail.com \
/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).