Commit 9b74b4a3 authored by Changpeng Liu's avatar Changpeng Liu Committed by Jim Harris
Browse files

lib/vhost: don't clear interrupt counter for error case



`rte_vhost_vring_call` may return error, then we can
try to call it in next poll.

Change-Id: I8f6a591837225079e004c6f57f2d7b01063f87a1
Signed-off-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14342


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarGangCao <gang.cao@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarDong Yi <yidong0635@126.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
parent 75cc6fd6
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -355,15 +355,14 @@ vhost_vq_used_signal(struct spdk_vhost_session *vsession,
		return 0;
	}

	virtqueue->req_cnt += virtqueue->used_req_cnt;
	virtqueue->used_req_cnt = 0;

	SPDK_DEBUGLOG(vhost_ring,
		      "Queue %td - USED RING: sending IRQ: last used %"PRIu16"\n",
		      virtqueue - vsession->virtqueue, virtqueue->last_used_idx);

	if (rte_vhost_vring_call(vsession->vid, virtqueue->vring_idx) == 0) {
		/* interrupt signalled */
		virtqueue->req_cnt += virtqueue->used_req_cnt;
		virtqueue->used_req_cnt = 0;
		return 1;
	} else {
		/* interrupt not signalled */