Are we sure that qdev_realize is never called with user-provided input? If it's a programming error, the call chain will end up passing &error_abort anyway, won't it?
Paolo Il dom 5 lug 2020, 12:05 Philippe Mathieu-Daudé <f4...@amsat.org> ha scritto: > On 7/5/20 7:46 AM, Paolo Bonzini wrote: > > On 20/06/20 17:38, Philippe Mathieu-Daudé wrote: > >> - } else { > >> - assert(!DEVICE_GET_CLASS(dev)->bus_type); > >> + } else if (DEVICE_GET_CLASS(dev)->bus_type) { > >> + error_report("%s: Unexpected bus '%s' for device '%s'", > >> + __func__, DEVICE_GET_CLASS(dev)->bus_type, > >> + object_get_typename(OBJECT(dev))); > >> + abort(); > >> } > >> > > > > Since there is an errp, should we use it and be even kinder? > > This is a programming error, not an user triggerable condition, > so I'm not sure. IOW this must not happen, but if it does, then > the error message helps the developer to notice the problem without > having to use gdb. > >