On Mon, Jul 19, 2021 at 12:40:33PM +0200, Paolo Bonzini wrote: > Alias targets have a different name than the alias property itself > (e.g. a machine's pflash0 might be an alias of a property named 'drive'). > When the target's getter or setter invokes the visitor, it will use > a different name than what the caller expects, and the visitor will > not be able to find it (or will consume erroneously). > > The solution is for alias getters and setters to wrap the incoming > visitor, and forward the sole field that the target is expecting while > renaming it appropriately. > > This bug has been there forever, but it was exposed after -M parsing > switched from QemuOptions and StringInputVisitor to keyval and > QObjectInputVisitor. Before, the visitor ignored the name. Now, it > checks "drive" against what was passed on the command line and finds > that no such property exists. > > Fixes: #484 > Reported-by: Alex Williamson <alex.william...@redhat.com> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > qom/object.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-)
Deceptively simple; all the work was in the previous patch writing up the forwarding visitor. I still wonder if Kevin's QAPI aliases will do this more gracefully, but if we're trying to justify this as a bug fix worthy of 6.1, this is certainly a smaller approach than Kevin's. Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org