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: Changpeng Liu <changpeng.liu@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14342 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: GangCao <gang.cao@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Dong Yi <yidong0635@126.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
This commit is contained in:
parent
75cc6fd62f
commit
9b74b4a3de
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user