vring_transport_features() whitelists known transport feature bits and clears the rest via __virtio_clear_bit(). VIRTIO_F_RING_RESET is missing from the whitelist, so it is unconditionally cleared during feature negotiation. Drivers that depend on ring reset capability silently lose the feature.
Add VIRTIO_F_RING_RESET to the switch statement, matching the other transport-level features. Signed-off-by: Andrew Stellman <[email protected]> --- drivers/virtio/virtio_ring.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index fbca7ce..2cb643f 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -3524,6 +3524,8 @@ void vring_transport_features(struct virtio_device *vdev) break; case VIRTIO_F_IN_ORDER: break; + case VIRTIO_F_RING_RESET: + break; default: /* We don't understand this bit. */ __virtio_clear_bit(vdev, i); -- 2.34.1
