Stefan Hajnoczi <stefa...@gmail.com> writes: > On Sat, Aug 16, 2014 at 12:23:52AM +0800, Amos Kong wrote: >> This reverts commit 57d3e1b3f52d07d215ed96df946ee01f8d9f9526. >> >> The commit introduced a regression bug, the initialization order of >> virtio-rng >> backend was changed. >> >> # x86_64-softmmu/qemu-system-x86_64 -monitor stdio -vnc :0 \ >> -chardev socket,host=localhost,port=1024,id=chr0 \ >> -object rng-egd,chardev=chr0,id=rng0 >> >> qemu-system-x86_64: -object rng-egd,chardev=chr0,id=rng0: Device 'chr0' not >> found >> >> Chardev 'chr0' isn't initialized when we try to open rng backend, > > More detail: > The problem is that vl.c:main() calls object_create() on -object before > -chardev options are processed. Moving the object_create() call after > chardev is arbitrary and does not work if a chardev depends on an > -object. > > It would have been nice to process command-line options in left-to-right > order instead of grouping them by option type. I doubt we can change > this now since it would break the command-line.
In my private opinion, our command line could really use a thorough breaking. [...]