mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
virtio-gpu: Handle virtio_gpu_virgl_init() failure
virtio_gpu_virgl_init() may fail, leading to a further Qemu crash because Qemu assumes it never fails. Check virtio_gpu_virgl_init() return code and don't execute virtio commands on error. Failed virtio_gpu_virgl_init() will result in a timed out virtio commands for a guest OS. Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com> Message-Id: <20241024210311.118220-5-dmitry.osipenko@collabora.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
This commit is contained in:
parent
a0a8f47fd0
commit
7e688d1bf5
2 changed files with 31 additions and 10 deletions
|
@ -222,11 +222,18 @@ struct VirtIOGPUClass {
|
|||
Error **errp);
|
||||
};
|
||||
|
||||
/* VirtIOGPUGL renderer states */
|
||||
typedef enum {
|
||||
RS_START, /* starting state */
|
||||
RS_INIT_FAILED, /* failed initialisation */
|
||||
RS_INITED, /* initialised and working */
|
||||
RS_RESET, /* inited and reset pending, moves to start after reset */
|
||||
} RenderState;
|
||||
|
||||
struct VirtIOGPUGL {
|
||||
struct VirtIOGPU parent_obj;
|
||||
|
||||
bool renderer_inited;
|
||||
bool renderer_reset;
|
||||
RenderState renderer_state;
|
||||
|
||||
QEMUTimer *fence_poll;
|
||||
QEMUTimer *print_stats;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue