summaryrefslogtreecommitdiff
path: root/scripts/objdiff
diff options
context:
space:
mode:
authorLi Chen <me@linux.beauty>2026-06-30 17:23:37 +0800
committerMichael S. Tsirkin <mst@redhat.com>2026-08-19 06:38:46 -0400
commit74d7d137f4bb18cb4957d97667bdf988ee9ff918 (patch)
tree3795f0e9b887fec7299d67781ede978194811dff /scripts/objdiff
parent36e33955aee0020f9fb9fa4d65f0b8a152c78752 (diff)
downloadlinux-74d7d137f4bb18cb4957d97667bdf988ee9ff918.tar.gz
linux-74d7d137f4bb18cb4957d97667bdf988ee9ff918.zip
nvdimm: virtio_pmem: drain requests in freeze
virtio_pmem_freeze() currently deletes virtqueues and resets the device without waking threads waiting for a virtqueue descriptor or a host completion. Mark the request virtqueue broken before reset. This makes new submissions fail fast and lets -ENOSPC waiters leave the wait list. Reset the device before draining used and unused request tokens, then delete the virtqueues. This wakes waiters with -EIO. It also keeps the detach call on a quiesced device. Clear req_vq after del_vqs(). Make drain tolerate a NULL queue so remove after freeze does not dereference a stale virtqueue pointer. Also make virtio_pmem_flush() stop checking req_vq once the broken state is visible. A waiter woken by freeze/remove can resume after del_vqs() has cleared req_vq. Signed-off-by: Li Chen <me@linux.beauty> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Message-ID: <20260630092338.2094628-13-me@linux.beauty>
Diffstat (limited to 'scripts/objdiff')
0 files changed, 0 insertions, 0 deletions