On Mon, 14 Aug 2017 12:45:16 +0100 Peter Maydell <peter.mayd...@linaro.org> wrote:
> On 14 August 2017 at 12:07, Michael Tokarev <m...@tls.msk.ru> wrote: > > From: Thomas Huth <th...@redhat.com> > > > > QEMU currently abort()s if the user tries to specify the mmio_interface > > device without parameters: > > > > x86_64-softmmu/qemu-system-x86_64 -nographic -device mmio_interface > > qemu-system-x86_64: /home/thuth/devel/qemu/util/error.c:57: error_setv: > > Assertion `*errp == ((void *)0)' failed. > > Aborted (core dumped) > > > > This happens because the realize function is trying to set the errp > > twice in this case. After setting an error, the realize function > > should immediately return instead. > > It seems like it should be an error to permit this to be > created from the command line at all -- the device is intended > only as an internal implementation detail of the memory system, > and it has a PROP_PTR property which can't be sensibly set > from the command line. > > This patch is a correct fix for an immediate problem, but we should disable > using this via -device somehow. Setting DeviceClass::user_creatable to false should prevent creating device with device_add interface. See: qdev_get_device_class() > > thanks > -- PMM >