On Tue, Apr 02, 2019 at 11:23:42PM +0700, Peter Maydell wrote: > On Tue, 2 Apr 2019 at 23:13, Markus Armbruster <arm...@redhat.com> wrote: > > > > Igor Mammedov <imamm...@redhat.com> writes: > > > maybe we can assert in qdev_get_machine() if machine hasn't been created > > > yet? > > > with this at least it will be hard to misuse function or catch invalid > > > users. > > > (but it still might miss some use cases/CLI options which are not tested) > > > > Good idea. When my code created "/machine" as a container, debugging > > the resulting crash took me a bit of time. The assertion you propose > > would've saved me some. > > One wrinkle to watch out for is code paths that are used in the > linux-user emulator, where there is no machine at all... For instance > cpu_common_realizefn() handles this case by explicitly checking > whether the thing it gets back from qdev_get_machine() is a > TYPE_MACHINE or not.
Is there a real use case for calling qdev_get_machine() in user mode? I'd prefer to make qdev_get_machine() unavailable in user mode, so we could detect these cases at compile time (and treat them as bugs). -- Eduardo