diff options
| author | Li Chen <me@linux.beauty> | 2026-06-30 17:23:37 +0800 |
|---|---|---|
| committer | Michael S. Tsirkin <mst@redhat.com> | 2026-08-19 06:38:46 -0400 |
| commit | 74d7d137f4bb18cb4957d97667bdf988ee9ff918 (patch) | |
| tree | 3795f0e9b887fec7299d67781ede978194811dff /scripts/Makefile.thinlto | |
| parent | 36e33955aee0020f9fb9fa4d65f0b8a152c78752 (diff) | |
| download | linux-stable-74d7d137f4bb18cb4957d97667bdf988ee9ff918.tar.gz linux-stable-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/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
