« Previous | Next » 

Revision 386a5a1e

ID386a5a1e0057e220f79c48fe3689e3dfb17f1b09

Added by Amit Shah over 10 years ago

char: remove watch callback on chardev detach from frontend

If a frontend device releases the chardev (via unplug), the chr handlers
are set to NULL via qdev's exit callbacks invoking
qemu_chr_add_handlers(). If the chardev had a pending operation, a
callback will be invoked, which will try to access data in the
just-released frontend, causing a segfault.

Ensure the callbacks are disabled when frontends release chardevs.

This was seen when a virtio-serial port was unplugged when heavy
guest->host IO was in progress (causing a callback to be registered).
In the window in which the throttling was active, unplugging ports
caused a qemu segfault.

https://bugzilla.redhat.com/show_bug.cgi?id=985205

CC: <>
Reported-by: Sibiao Luo <>
Reviewed-by: Gerd Hoffmann <>
Signed-off-by: Amit Shah <>

Files

  • added
  • modified
  • copied
  • renamed
  • deleted

View differences