virtio_input: Improve freeze handling
authorYing Gao <ying01.gao@samsung.com>
Tue, 12 Aug 2025 09:51:18 +0000 (17:51 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 26 Aug 2025 07:38:19 +0000 (03:38 -0400)
commit528d92bfc0937a6a1ec837dbbcb3612a8545cd37
tree03ca3899c35952a21464772d2d54188ad4644a3e
parent24fc631539cc78225f5c61f99c7666fcff48024d
virtio_input: Improve freeze handling

When executing suspend to ram, if lacking the operations
to reset device and free unused buffers before deleting
a vq, resource leaks and inconsistent device status will
appear.

According to chapter "3.3.1 Driver Requirements: Device Cleanup:"
of virtio-specification:
  Driver MUST ensure a virtqueue isn’t live
  (by device reset) before removing exposed
  buffers.

Therefore, modify the virtinput_freeze function to reset the
device and delete the unused buffers before deleting the
virtqueue, just like virtinput_remove does.

Co-developed-by: Ying Xu <ying123.xu@samsung.com>
Signed-off-by: Ying Xu <ying123.xu@samsung.com>
Co-developed-by: Junnan Wu <junnan01.wu@samsung.com>
Signed-off-by: Junnan Wu <junnan01.wu@samsung.com>
Signed-off-by: Ying Gao <ying01.gao@samsung.com>
Message-Id: <20250812095118.3622717-1-ying01.gao@samsung.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/virtio/virtio_input.c