diff options
| author | Li Chen <me@linux.beauty> | 2026-06-30 17:23:37 +0800 |
|---|---|---|
| committer | Michael S. Tsirkin <mst@redhat.com> | 2026-08-03 23:08:18 -0400 |
| commit | 7150f59e1c90d676b46b8633c73e3a4a8778c733 (patch) | |
| tree | 09ca5055292f6f5abab681fdda5ad964b609cad7 /scripts/Makefile.thinlto | |
| parent | 34a57abfd949e8e25800270321a8ebc1d8eb397e (diff) | |
| download | linux-next-7150f59e1c90d676b46b8633c73e3a4a8778c733.tar.gz linux-next-7150f59e1c90d676b46b8633c73e3a4a8778c733.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
