From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59944) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yj1CV-000702-5l for qemu-devel@nongnu.org; Fri, 17 Apr 2015 04:00:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yj1CR-0001Vj-BM for qemu-devel@nongnu.org; Fri, 17 Apr 2015 04:00:35 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48079) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yj1CR-0001VN-2r for qemu-devel@nongnu.org; Fri, 17 Apr 2015 04:00:31 -0400 From: Fam Zheng Date: Fri, 17 Apr 2015 15:59:24 +0800 Message-Id: <1429257573-7359-10-git-send-email-famz@redhat.com> In-Reply-To: <1429257573-7359-1-git-send-email-famz@redhat.com> References: <1429257573-7359-1-git-send-email-famz@redhat.com> Subject: [Qemu-devel] [PATCH 09/18] virtio: Return error from virtio_del_queue List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , "Michael S. Tsirkin" , "Aneesh Kumar K.V" , Stefan Hajnoczi , Amit Shah , Paolo Bonzini Signed-off-by: Fam Zheng --- hw/net/virtio-net.c | 2 +- hw/virtio/virtio.c | 5 +++-- include/hw/virtio/virtio.h | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 74205b4..c727277 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -1310,7 +1310,7 @@ static void virtio_net_set_multiqueue(VirtIONet *n, int multiqueue) n->multiqueue = multiqueue; for (i = 2; i <= n->max_queues * 2 + 1; i++) { - virtio_del_queue(vdev, i); + virtio_del_queue(vdev, i, &error_abort); } for (i = 1; i < max; i++) { diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index b473f9d..6dfa181 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -888,10 +888,11 @@ VirtQueue *virtio_add_queue(VirtIODevice *vdev, int queue_size, return &vdev->vq[i]; } -void virtio_del_queue(VirtIODevice *vdev, int n) +void virtio_del_queue(VirtIODevice *vdev, int n, Error **errp) { if (n < 0 || n >= VIRTIO_PCI_QUEUE_MAX) { - abort(); + error_setg(errp, "Invalid queue number: %d", n); + return; } vdev->vq[n].vring.num = 0; diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index b31465f..52e2b1c 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -132,7 +132,7 @@ VirtQueue *virtio_add_queue(VirtIODevice *vdev, int queue_size, VirtQueue *), Error **errp); -void virtio_del_queue(VirtIODevice *vdev, int n); +void virtio_del_queue(VirtIODevice *vdev, int n, Error **errp); void virtqueue_push(VirtQueue *vq, const VirtQueueElement *elem, unsigned int len); -- 1.9.3