qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Bug 1902262] [NEW] vmstate_load_state return error into virtio_load function
@ 2020-10-30 15:47 Jingtao
  2021-05-09 14:24 ` [Bug 1902262] " Thomas Huth
  2021-07-09  4:17 ` Launchpad Bug Tracker
  0 siblings, 2 replies; 3+ messages in thread
From: Jingtao @ 2020-10-30 15:47 UTC (permalink / raw)
  To: qemu-devel

Public bug reported:

Qemu version 4.2.1

In the function of virtio_load, the vmstate_load_state will return error
in the following case.

The virtio is legacy mode(disable-modern=on,disable-legacy=off),
virtio_device is in reset state.

In the the function of "vmstate_load_state", it will load all subsection. For the vmstate_virtio_extra_state subsection. 
It will execute:
vmstate_load_state   -->
          ret = field->info->get(f, curr_elem, size, field);    line 143  vmstate.c.
           -->virtio_pci_load_extra_state
                        -->  vmstate_load_state
                                 -->qemu_peek_byte
But if the f->buf_index is same with buf_size, qemu_peek_byte function will set "-EIO" error. 
the field->info->get will return 0, then it will get the error "ret = qemu_file_get_error(f);". then the vmstate_load_state will return error.

It output is "Failed to load virtio/extra_state:extra_state"

** Affects: qemu
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1902262

Title:
  vmstate_load_state return error into virtio_load function

Status in QEMU:
  New

Bug description:
  Qemu version 4.2.1

  In the function of virtio_load, the vmstate_load_state will return
  error in the following case.

  The virtio is legacy mode(disable-modern=on,disable-legacy=off),
  virtio_device is in reset state.

  In the the function of "vmstate_load_state", it will load all subsection. For the vmstate_virtio_extra_state subsection. 
  It will execute:
  vmstate_load_state   -->
            ret = field->info->get(f, curr_elem, size, field);    line 143  vmstate.c.
             -->virtio_pci_load_extra_state
                          -->  vmstate_load_state
                                   -->qemu_peek_byte
  But if the f->buf_index is same with buf_size, qemu_peek_byte function will set "-EIO" error. 
  the field->info->get will return 0, then it will get the error "ret = qemu_file_get_error(f);". then the vmstate_load_state will return error.

  It output is "Failed to load virtio/extra_state:extra_state"

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1902262/+subscriptions


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-07-09  4:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-30 15:47 [Bug 1902262] [NEW] vmstate_load_state return error into virtio_load function Jingtao
2021-05-09 14:24 ` [Bug 1902262] " Thomas Huth
2021-07-09  4:17 ` Launchpad Bug Tracker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).