From nobody Sat Nov 15 23:38:18 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1745237924; cv=none; d=zohomail.com; s=zohoarc; b=fyH/YbwwkUvPUXt+idoU5Asaj3OUtE8B7Fge731QOn+1L60n+ihgKiUlSN3pxGcCDpLLpv2XvHapEghENhW8PPr2nbSyGsFPmT0v62YN4hAfKcMJT5nsmy79sq5CHyhyyFoWtjqjpwtyxFTcKad35bnWCzhPOZX/LPPygEXlXFs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745237924; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=h5SWbPOSj3NpGG3m/zqqFXdgXnCCZaeQWYiosjCG7JM=; b=luT9W/rThUIs5JJAUhqnRhKJMxB3wiq6wsRqdnhaYz7JibNnLnVj2Aqu6wm56luYnw24Yg2nYqmTKIktoapNtShCJJLmoYpwwaqAtCdabj3ZLD9oM3g75BP9a/HPlepTBTWV8orYBwqY8UEbs/PSgzcx9NiCkjWrk9qdwuS/yMY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745237924412750.7929846046676; Mon, 21 Apr 2025 05:18:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6q6P-0003IH-HM; Mon, 21 Apr 2025 08:18:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u6q5e-00038y-DF for qemu-devel@nongnu.org; Mon, 21 Apr 2025 08:17:34 -0400 Received: from mail-pg1-x52e.google.com ([2607:f8b0:4864:20::52e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u6q5a-0002Rv-RZ for qemu-devel@nongnu.org; Mon, 21 Apr 2025 08:17:33 -0400 Received: by mail-pg1-x52e.google.com with SMTP id 41be03b00d2f7-ae727e87c26so2562695a12.0 for ; Mon, 21 Apr 2025 05:17:30 -0700 (PDT) Received: from localhost ([2400:4050:b783:b00:9e36:5f4c:928c:4ec2]) by smtp.gmail.com with UTF8SMTPSA id 98e67ed59e1d1-3087dee87f8sm6426722a91.4.2025.04.21.05.17.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Apr 2025 05:17:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1745237849; x=1745842649; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=h5SWbPOSj3NpGG3m/zqqFXdgXnCCZaeQWYiosjCG7JM=; b=PX7aZmAdYoECqU4zFbUFNVzR0QRrVXaOJZlt9Vk57Q0GgFAIPV69HVRir6UxB3M4zq pEMX0BkkQo5mIJKLVlmX/O+wYxaAcj2bRV8as6DX7j3g4Q8Mb1FExqnuSC4T0fn2T1+J Ez216uUoz6vYrwAk0JEg1UkBHIoeAoaL/6LBYQC8JYqsK/1kI20/DT/z52rSfru0eH5j 3Xpq1a8yoLa5dSWk6mhj58Cq8jsEQxQp7YPfDx+DTs9dYwOkLZuwXF06/+OyPt1WDsY1 sqCBpQ+7EFwfZqCODX0fYnjzJaqxvEIZ/ltFWog3ZbkEi2hOlIZPAmBBXDXhUyGfaE2e q+0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745237849; x=1745842649; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=h5SWbPOSj3NpGG3m/zqqFXdgXnCCZaeQWYiosjCG7JM=; b=pe/wSUqkki9R12LaQLQxM/PisPgv0B94vuFrD3MxRls1mnECPh4sCxBn9xZ+5ttD5g 4Cy5znKqJegCC2xzxxUwrgPsWgIIZtfJQKT1OVm5MYrULaqrsjZsqUTvmOXW8rsdaGmb UW9/4P4a4ZNK0RScaefloyd14WbBlNG1obXdfUq+bj8VYG0hTcbKRBaOHWP3babc2AJR Jq5qJ4ejWnQX/mIrP9x0nJf3okiRdro89EaRbwJHQ7v5rsn3xtorpvXLX/0fbLMxw2Od hM6GgH3h7/RaqhDW2yuSV+wVaull/bFjMv28mSOOpAEl4WU/ha5dNHzYO+a4biu6Jr6X MGug== X-Gm-Message-State: AOJu0Yx2BI5xSi5+WvZBn0jpvNoaeQ36BbatTdsNyi8R2nlcdf1+/qP3 dOD6WpO3Z8XuY+57u3OXFrLgZ8czcLuwn6B9lByo0FC8zgX+WOY2pIPE7LHpxIA= X-Gm-Gg: ASbGncuO4qzG3nVqOnWd325Ms/CuAziLLMFWQ2w5gFWi6C6q53fNfyG4flnhn8uhRqN yOPw3Qv2iOWEzbR33S36stq0JbqnaI0Lxi3usi8yRacYnU3ULM7lmLbJfdfpwvtE5TD6gGIPfm7 oP5qj5/sN677h42LDS+JTLI1AmLNLYcejrum/73tB6xWYdzaHs0YOlyOCITeayaRoW2e4mBakhr HSuOIudQycG0KNeGHQE8g4XHR4IIwvgiXEaz8KCXrsKyO/FaU5KD9ACzhanVcFQvJpEPyGk5oQL p84cEx18TB12wAXw7k+623fJHAbAbU1nUeUeN9R80F7PeI8= X-Google-Smtp-Source: AGHT+IFqpFK+lg2fNHO0zFDY+S1zWnl4QZd7xyF+I0E8kUpim1XUmjP3UUSVanF08cQAEmRsH9Sk9Q== X-Received: by 2002:a17:90b:3d06:b0:2fc:3264:3666 with SMTP id 98e67ed59e1d1-3087bbb6b01mr15857948a91.30.1745237849251; Mon, 21 Apr 2025 05:17:29 -0700 (PDT) From: Akihiko Odaki Date: Mon, 21 Apr 2025 21:17:20 +0900 Subject: [PATCH v2 1/2] virtio: Call set_features during reset MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250421-reset-v2-1-e4c1ead88ea1@daynix.com> References: <20250421-reset-v2-0-e4c1ead88ea1@daynix.com> In-Reply-To: <20250421-reset-v2-0-e4c1ead88ea1@daynix.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jason Wang , devel@daynix.com, Akihiko Odaki , qemu-stable@nongnu.org X-Mailer: b4 0.15-dev-edae6 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::52e; envelope-from=akihiko.odaki@daynix.com; helo=mail-pg1-x52e.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @daynix-com.20230601.gappssmtp.com) X-ZM-MESSAGEID: 1745237927198019100 virtio-net expects set_features() will be called when the feature set used by the guest changes to update the number of virtqueues but it is not called during reset, which will clear all features, leaving the queues added for VIRTIO_NET_F_MQ or VIRTIO_NET_F_RSS. Not only these extra queues are visible to the guest, they will cause segmentation fault during migration. Call set_features() during reset to remove those queues for virtio-net as we call set_status(). It will also prevent similar bugs for virtio-net and other devices in the future. Fixes: f9d6dbf0bf6e ("virtio-net: remove virtio queues if the guest doesn't= support multiqueue") Buglink: https://issues.redhat.com/browse/RHEL-73842 Cc: qemu-stable@nongnu.org Signed-off-by: Akihiko Odaki --- hw/virtio/virtio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 85110bce3744..755260981efd 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -2316,6 +2316,8 @@ void virtio_queue_enable(VirtIODevice *vdev, uint32_t= queue_index) } } =20 +static int virtio_set_features_nocheck(VirtIODevice *vdev, uint64_t val); + void virtio_reset(void *opaque) { VirtIODevice *vdev =3D opaque; @@ -2346,7 +2348,7 @@ void virtio_reset(void *opaque) vdev->start_on_kick =3D false; vdev->started =3D false; vdev->broken =3D false; - vdev->guest_features =3D 0; + virtio_set_features_nocheck(vdev, 0); vdev->queue_sel =3D 0; vdev->status =3D 0; vdev->disabled =3D false; --=20 2.49.0 From nobody Sat Nov 15 23:38:18 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1745237928; cv=none; d=zohomail.com; s=zohoarc; b=I+bp/tkLs6EVHwt0VmdBLtySeCAJf36ccZ7JJ2Uvopmqo2PbVCnFK5msMJ3FM6NL+F47/LE7OIwZQ/n3ijk3JEjQ1ALPRKeQlxKT3qB4ddQiXxLaQ0o1aPDCD5MSavBVimWzMEfho9OuOVrWThbXsn7hZKkdAQO9unZ5gxPEG2s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745237928; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=y1J/YGsXG6z5Mbaxw/Zeylbg51Zs2PDPdPQbWeOptEs=; b=XJFyA5xBOpphE340vOlL5VSXYSxDgEwNHj3kd5KEnV/Zu26eUT3X1oUNifwg6vqSfSZjmm8sRNxwxbhiaUk9ch7lWboYJhuc1b/AE88jrBjzIAq9iYd9Ua710iCOMylIvCsi703P3L/rxvw9EYSFsPztb8wC+kZ8DuAbK0IB1jA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745237928257480.9574959955645; Mon, 21 Apr 2025 05:18:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u6q6U-0003Mh-Ma; Mon, 21 Apr 2025 08:18:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u6q5g-00039p-HR for qemu-devel@nongnu.org; Mon, 21 Apr 2025 08:17:37 -0400 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u6q5e-0002SU-ME for qemu-devel@nongnu.org; Mon, 21 Apr 2025 08:17:36 -0400 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-224341bbc1dso35795915ad.3 for ; Mon, 21 Apr 2025 05:17:34 -0700 (PDT) Received: from localhost ([2400:4050:b783:b00:9e36:5f4c:928c:4ec2]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-22c50bf398fsm64053525ad.66.2025.04.21.05.17.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Apr 2025 05:17:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1745237853; x=1745842653; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=y1J/YGsXG6z5Mbaxw/Zeylbg51Zs2PDPdPQbWeOptEs=; b=JtkPAIshDfut5RzWF/fQMYJRxVL1Rf8i7C0Gx4q9H2tjKqeGKTnbuvNbsNxHz8nONn vlJIjMi5lyZpJ1QFVz81qwY6VxQZoxprbGTT0QKJHOcYQqLSchLrTYWHGbLjfFkl8fVR qev7UxfH+R6dIRM78OibaUmH+Hcqzzt1viYBze+1Wa9F0uxSFtyTKVe0e9MM5Cu09lY0 GZP5vhcODDbYeMqIA97qiD8E91vhMHYWKjVbDwM9R1HdaKBvjP0V/oc8VGTKP9dj+Zqd OwvPA7+N+OxsxtXINY7CZDaLay2UoBD0dcIOyAuKcwFeVkq1TLOMwuKYd2W46wS0B7tL +8zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745237853; x=1745842653; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=y1J/YGsXG6z5Mbaxw/Zeylbg51Zs2PDPdPQbWeOptEs=; b=EDZbq8VljGTUcj8oSAEY2Ul5VF7s7M9ex5xXmiWwOye8O9ZukUIhlUJaPo7M2XU+hn 6095j0aBTkAQ583lkdAYzrRhYiueh7Rdt1HVn2MnXQ0KNBIj5iTIC6QwS7AQRZhv9tEL xvb3Qr0+PfQwaDf3q/DnrLpaPRlcU/Xn7Io7MS89s4A6oUGriP51LXIitijC7JihSXrj 3EkOQ+KLGE7Z2yfDWmReEFPnysA9D+G8vxsXQEHSwQsAlLz0V+3Kg9f+xaWEAyR2bXgC clpmIU65VfGRUVXpexJSkYfC0l0sYPADSpX8Q7yQvutJ3dEveWxNuEc4DwA2tutoe9gw 4wCg== X-Gm-Message-State: AOJu0Yw3kaec2nmMKywfecpSn0nuk5Kxs/sP2SDSreecAiBrexXwYLnn cjUyfKTUumwKLu/sfvTvUYTSFZXLUC0dSlOWlvTXc3uOk0Sf4EGMJ5nCUuQXB0nFJRSQiTbPRlE svyI= X-Gm-Gg: ASbGnctqfq3vZ4YN+F+oFh8LW2lKIg9q0yEaqfP8bs2ZwO8MHitkRYb0FthK8WJspFC Bwy5CFOsRhFeKt0gUrf/CEcG6QMzZiC3KruLJuBi4J8Bn5QJGp0WGQRodrzo/kBHjZofuTIYq73 Q7OeJTydUXY1IHlHcjEegeQCrpo+BUl7s9O+q3v8Z+AgjMpzuUPcj85gdS3nAKLrKtmYEQx6swU blegwJnC5Pjv+v/H1rpHkBOKRoGfgR0U71UBGzukhNMy+M4chtrZk2BJnCiMzYdditwD4hqBp0t v42WSnh7AnuQ2NC3460AmQlgsd6Fa9rhIOg8AP2MIauo4SU= X-Google-Smtp-Source: AGHT+IENEcJZ3z085aF/Eipr9GYFxxGSTn7lf6sKF5Yt0jXTcdB2LexbcBpoqcC20X1MsapSL5WhVg== X-Received: by 2002:a17:903:1a0d:b0:220:e156:63e0 with SMTP id d9443c01a7336-22c53566fe7mr137364495ad.8.1745237853169; Mon, 21 Apr 2025 05:17:33 -0700 (PDT) From: Akihiko Odaki Date: Mon, 21 Apr 2025 21:17:21 +0900 Subject: [PATCH v2 2/2] virtio: Move virtio_reset() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250421-reset-v2-2-e4c1ead88ea1@daynix.com> References: <20250421-reset-v2-0-e4c1ead88ea1@daynix.com> In-Reply-To: <20250421-reset-v2-0-e4c1ead88ea1@daynix.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jason Wang , devel@daynix.com, Akihiko Odaki X-Mailer: b4 0.15-dev-edae6 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62d; envelope-from=akihiko.odaki@daynix.com; helo=mail-pl1-x62d.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @daynix-com.20230601.gappssmtp.com) X-ZM-MESSAGEID: 1745237931245019100 Move virtio_reset() to a later part of the file to remove the forward declaration of virtio_set_features_nocheck() and to prepare the situation that we need more operations to perform during reset. Signed-off-by: Akihiko Odaki --- hw/virtio/virtio.c | 88 ++++++++++++++++++++++++++------------------------= ---- 1 file changed, 43 insertions(+), 45 deletions(-) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 755260981efd..033e87cdd3b9 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -2316,51 +2316,6 @@ void virtio_queue_enable(VirtIODevice *vdev, uint32_= t queue_index) } } =20 -static int virtio_set_features_nocheck(VirtIODevice *vdev, uint64_t val); - -void virtio_reset(void *opaque) -{ - VirtIODevice *vdev =3D opaque; - VirtioDeviceClass *k =3D VIRTIO_DEVICE_GET_CLASS(vdev); - int i; - - virtio_set_status(vdev, 0); - if (current_cpu) { - /* Guest initiated reset */ - vdev->device_endian =3D virtio_current_cpu_endian(); - } else { - /* System reset */ - vdev->device_endian =3D virtio_default_endian(); - } - - if (k->get_vhost) { - struct vhost_dev *hdev =3D k->get_vhost(vdev); - /* Only reset when vhost back-end is connected */ - if (hdev && hdev->vhost_ops) { - vhost_reset_device(hdev); - } - } - - if (k->reset) { - k->reset(vdev); - } - - vdev->start_on_kick =3D false; - vdev->started =3D false; - vdev->broken =3D false; - virtio_set_features_nocheck(vdev, 0); - vdev->queue_sel =3D 0; - vdev->status =3D 0; - vdev->disabled =3D false; - qatomic_set(&vdev->isr, 0); - vdev->config_vector =3D VIRTIO_NO_VECTOR; - virtio_notify_vector(vdev, vdev->config_vector); - - for(i =3D 0; i < VIRTIO_QUEUE_MAX; i++) { - __virtio_queue_reset(vdev, i); - } -} - void virtio_queue_set_addr(VirtIODevice *vdev, int n, hwaddr addr) { if (!vdev->vq[n].vring.num) { @@ -3171,6 +3126,49 @@ int virtio_set_features(VirtIODevice *vdev, uint64_t= val) return ret; } =20 +void virtio_reset(void *opaque) +{ + VirtIODevice *vdev =3D opaque; + VirtioDeviceClass *k =3D VIRTIO_DEVICE_GET_CLASS(vdev); + int i; + + virtio_set_status(vdev, 0); + if (current_cpu) { + /* Guest initiated reset */ + vdev->device_endian =3D virtio_current_cpu_endian(); + } else { + /* System reset */ + vdev->device_endian =3D virtio_default_endian(); + } + + if (k->get_vhost) { + struct vhost_dev *hdev =3D k->get_vhost(vdev); + /* Only reset when vhost back-end is connected */ + if (hdev && hdev->vhost_ops) { + vhost_reset_device(hdev); + } + } + + if (k->reset) { + k->reset(vdev); + } + + vdev->start_on_kick =3D false; + vdev->started =3D false; + vdev->broken =3D false; + virtio_set_features_nocheck(vdev, 0); + vdev->queue_sel =3D 0; + vdev->status =3D 0; + vdev->disabled =3D false; + qatomic_set(&vdev->isr, 0); + vdev->config_vector =3D VIRTIO_NO_VECTOR; + virtio_notify_vector(vdev, vdev->config_vector); + + for (i =3D 0; i < VIRTIO_QUEUE_MAX; i++) { + __virtio_queue_reset(vdev, i); + } +} + static void virtio_device_check_notification_compatibility(VirtIODevice *v= dev, Error **errp) { --=20 2.49.0