On 2018年10月11日 22:22, Tiwei Bie wrote:
The notification can't be disabled in packed ring when application tries to disable notification, because the device event flags field is overwritten by an unexpected value. This patch fixes this issue. Fixes: b1cce26af1dc ("vhost: add notification for packed ring") Cc: [email protected] Signed-off-by: Tiwei Bie <[email protected]> Reviewed-by: Michael S. Tsirkin <[email protected]> --- v2: return directly after disabling the interrupt (Jason/MST) lib/librte_vhost/vhost.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c index e62f4c594..047ee535c 100644 --- a/lib/librte_vhost/vhost.c +++ b/lib/librte_vhost/vhost.c @@ -667,8 +667,10 @@ vhost_enable_notify_packed(struct virtio_net *dev, { uint16_t flags;- if (!enable)+ if (!enable) { vq->device_event->flags = VRING_EVENT_F_DISABLE; + return; + }flags = VRING_EVENT_F_ENABLE;if (dev->features & (1ULL << VIRTIO_RING_F_EVENT_IDX)) {
Acked-by: Jason Wang <[email protected]>

