From fa20c0bb83b80abb3001dc1cc726cd4fd5055cd4 Mon Sep 17 00:00:00 2001 From: John Levon Date: Tue, 31 Aug 2021 15:25:54 +0100 Subject: [PATCH] vhost-blk: fix interrupt names Interrupts were all being registered with the name "fn". Directly pass in the name instead to fix this. Signed-off-by: John Levon Change-Id: I38e59d784298a61ca2130090ede500101389685c Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9346 Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins Reviewed-by: Xiaodong Liu Reviewed-by: Rui Chang Reviewed-by: Changpeng Liu Reviewed-by: Tomasz Zawadzki --- lib/vhost/vhost_blk.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/vhost/vhost_blk.c b/lib/vhost/vhost_blk.c index d1d1686f9..55fb82530 100644 --- a/lib/vhost/vhost_blk.c +++ b/lib/vhost/vhost_blk.c @@ -1037,7 +1037,7 @@ vhost_blk_session_unregister_interrupts(struct spdk_vhost_blk_session *bvsession static int vhost_blk_session_register_interrupts(struct spdk_vhost_blk_session *bvsession, - spdk_interrupt_fn fn) + spdk_interrupt_fn fn, const char *name) { struct spdk_vhost_session *vsession = &bvsession->vsession; struct spdk_vhost_virtqueue *vq = NULL; @@ -1049,7 +1049,7 @@ vhost_blk_session_register_interrupts(struct spdk_vhost_blk_session *bvsession, SPDK_DEBUGLOG(vhost_blk, "Register vq[%d]'s kickfd is %d\n", i, vq->vring.kickfd); - vq->intr = SPDK_INTERRUPT_REGISTER(vq->vring.kickfd, fn, vq); + vq->intr = spdk_interrupt_register(vq->vring.kickfd, fn, vq, name); if (vq->intr == NULL) { SPDK_ERRLOG("Fail to register req notifier handler.\n"); goto err; @@ -1140,7 +1140,8 @@ vhost_session_bdev_remove_cb(struct spdk_vhost_dev *vdev, spdk_poller_unregister(&bvsession->requestq_poller); if (vsession->virtqueue[0].intr) { vhost_blk_session_unregister_interrupts(bvsession); - rc = vhost_blk_session_register_interrupts(bvsession, no_bdev_vdev_vq_worker); + rc = vhost_blk_session_register_interrupts(bvsession, no_bdev_vdev_vq_worker, + "no_bdev_vdev_vq_worker"); if (rc) { SPDK_ERRLOG("%s: Interrupt register failed\n", vsession->name); return rc; @@ -1296,8 +1297,16 @@ vhost_blk_start_cb(struct spdk_vhost_dev *vdev, } if (spdk_interrupt_mode_is_enabled()) { - rc = vhost_blk_session_register_interrupts(bvsession, - bvdev->bdev ? vdev_vq_worker : no_bdev_vdev_vq_worker); + if (bvdev->bdev) { + rc = vhost_blk_session_register_interrupts(bvsession, + vdev_vq_worker, + "vdev_vq_worker"); + } else { + rc = vhost_blk_session_register_interrupts(bvsession, + no_bdev_vdev_vq_worker, + "no_bdev_vdev_vq_worker"); + } + if (rc) { SPDK_ERRLOG("%s: Interrupt register failed\n", vsession->name); goto out;