]> www.infradead.org Git - users/willy/pagecache.git/commit
virtio_blk: Add support for transport error recovery
authorIsrael Rukshin <israelr@nvidia.com>
Wed, 27 Nov 2024 06:57:32 +0000 (08:57 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 27 Jan 2025 14:39:26 +0000 (09:39 -0500)
commit5820a3b08987951e3e4a89fca8ab6e1448f672e1
treee47784dbd57d00754be1bc4143cf420d0d9419d8
parenta0ec4fb63f5ce15732f8dadc63c931bdf9ff98b5
virtio_blk: Add support for transport error recovery

Add support for proper cleanup and re-initialization of virtio-blk devices
during transport reset error recovery flow.
This enhancement includes:
- Pre-reset handler (reset_prepare) to perform device-specific cleanup
- Post-reset handler (reset_done) to re-initialize the device

These changes allow the device to recover from various reset scenarios,
ensuring proper functionality after a reset event occurs.
Without this implementation, the device cannot properly recover from
resets, potentially leading to undefined behavior or device malfunction.

This feature has been tested using PCI transport with Function Level
Reset (FLR) as an example reset mechanism. The reset can be triggered
manually via sysfs (echo 1 > /sys/bus/pci/devices/$PCI_ADDR/reset).

Signed-off-by: Israel Rukshin <israelr@nvidia.com>
Reviewed-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Message-Id: <1732690652-3065-3-git-send-email-israelr@nvidia.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/block/virtio_blk.c