From nobody Sun Jul 26 10:13:11 2026 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; dmarc=pass(p=reject dis=none) header.from=rsg.ci.i.u-tokyo.ac.jp ARC-Seal: i=1; a=rsa-sha256; t=1784963596; cv=none; d=zohomail.com; s=zohoarc; b=mpZr5p9nhMzW8gHcYK2QJLWL+MkgBrOhsTOonUTBxn+uwi6Gct5fkLdtNQY8fTddjn0XwEbG8cm2qfLf8cUzet0dY2S+WwAjh1G+T9K2NfhCDFNC+cy5hPsyMXl5ZZv1QYQci/WvC+UhdcBZATtxpSU19twmmFwjlOc7U5Ff0As= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784963596; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vRvrLScJdPAR0GchgnULs5QQyUZjxsc0NNPjWRm/ulc=; b=P/rvYeK5Tb4pbRLhWIHZ+P56y7N2YQj2eL28fvxvRbfVvOUEP1fMdVfSvbHi9mp1lNiWejnyCK9iYppkurE7uQxMmPKx4QoRxjkKwWV+TztctLGh3vZaBIZXoSRebn4s0VVIWOza/RIpvi8iKiiqnTvlZAEDPKTBXY3824oNRms= 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; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784963596635838.5948777044323; Sat, 25 Jul 2026 00:13:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wnWZI-0000nx-R5; Sat, 25 Jul 2026 03:13:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wnWZH-0000nX-KQ for qemu-devel@nongnu.org; Sat, 25 Jul 2026 03:13:07 -0400 Received: from www3579.sakura.ne.jp ([49.212.243.89]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wnWZF-0002L5-Sd for qemu-devel@nongnu.org; Sat, 25 Jul 2026 03:13:07 -0400 Received: from h183.csg.ci.i.u-tokyo.ac.jp (h183.csg.ci.i.u-tokyo.ac.jp [133.11.54.183]) (authenticated bits=0) by www3579.sakura.ne.jp (8.16.1/8.16.1) with ESMTPSA id 66P7CpxK072899 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 25 Jul 2026 16:12:57 +0900 (JST) (envelope-from odaki@rsg.ci.i.u-tokyo.ac.jp) DKIM-Signature: a=rsa-sha256; bh=vRvrLScJdPAR0GchgnULs5QQyUZjxsc0NNPjWRm/ulc=; c=relaxed/relaxed; d=rsg.ci.i.u-tokyo.ac.jp; h=From:Message-Id:To:Subject:Date; s=rs20250326; t=1784963577; v=1; b=HLi4bIWEralpavy74wZL3EgfzM5ycWPBhJ0FhCDdd5oDKZbxQBlwYu/iY8BxiMWk Fahn5ITjeOxXuOfW05TypjBXVloSjR8GuXwZXWNlMSsMzEsjrMVEJw6OdUOzQKWh x9Z1918bNdVnon7u9uKV4YOTK++P2E0GzUZjykeUgv3ITXyRXU8Yuct6OWe3XD8+ 7SBC+uCNyH7cIWbrIHMb53a/JWkW0BVrC6HaE7bkYbU4PV6TVcnOPS9r6i+SlD6c cxvVxlil7pGDBqD8ti4JIDvtk6ssOcn6EJN+QXGirmRDIESBLenoFccTmEd9xmw7 3OENbJ3c0QpgH+b8c72Lhg== From: Akihiko Odaki Date: Sat, 25 Jul 2026 16:12:51 +0900 Subject: [PATCH] hw/display/virtio-gpu: Fix empty blob discrimination MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260725-image-v1-1-4698a805afde@rsg.ci.i.u-tokyo.ac.jp> X-B4-Tracking: v=1; b=H4sIAAAAAAAC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDIzMDcyNT3czcRKCgWbKFqZlZWpKhkamxElBtQVFqWmYF2JzoWAi/uDQpKzW 5BKRZqbYWAFZbFuRpAAAA X-Change-ID: 20260725-image-6c8566fb1253 To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Dmitry Osipenko , Akihiko Odaki X-Mailer: b4 0.16-dev-925f5 X-Developer-Signature: v=1; a=openpgp-sha256; l=2309; i=odaki@rsg.ci.i.u-tokyo.ac.jp; h=from:subject:message-id; bh=rv35K+1UHqKxm3Q6RjhDIj+vD7Yt/ozd4azyoZoLebo=; b=owGbwMvMwCWmMbc20y1CyJDxtFoSQ1ZK4o9Mx4NH9LZbrej/2Hoja9XDJz375UpKGk63mLz/5 fo07NrOjlIWBjEuBlkxRZaUot3cGtG1nwoT4ltg5rAygQxh4OIUgIn0pzP8Zvte1f9wvktRUHzy gfrFE3bINF7avd7G+iBHxh+WmFyztwz/8yPPF28rbFr6pPdo+ouafn3mDy9cHDUMY1on+KS8ueL OAwA= X-Developer-Key: i=odaki@rsg.ci.i.u-tokyo.ac.jp; a=openpgp; fpr=AEDC03C9AF734F2EC26A7BFFA4BAEAA73536753C 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=lists1p.gnu.org; Received-SPF: pass client-ip=49.212.243.89; envelope-from=odaki@rsg.ci.i.u-tokyo.ac.jp; helo=www3579.sakura.ne.jp X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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: qemu development 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 @rsg.ci.i.u-tokyo.ac.jp) X-ZM-MESSAGEID: 1784963600652154100 Discriminating blobs by checking whether blob_size is nonzero fails for empty blobs. Identify 2D resources by their non-NULL image instead. Fixes: bdd53f739273 ("virtio-gpu: Update cursor data using blob") Fixes: f66767f75c9c ("virtio-gpu: add virtio-gpu/blob vmstate subsection") Signed-off-by: Akihiko Odaki Reviewed-by: Marc-Andr=C3=A9 Lureau --- hw/display/virtio-gpu.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c index 718ba3039290..6413df029b8e 100644 --- a/hw/display/virtio-gpu.c +++ b/hw/display/virtio-gpu.c @@ -56,18 +56,18 @@ void virtio_gpu_update_cursor_data(VirtIOGPU *g, return; } =20 - if (res->blob_size) { - if (res->blob_size < (s->current_cursor->width * - s->current_cursor->height * 4)) { - return; - } - data =3D res->blob; - } else { + if (res->image) { if (pixman_image_get_width(res->image) !=3D s->current_cursor->wi= dth || pixman_image_get_height(res->image) !=3D s->current_cursor->he= ight) { return; } data =3D pixman_image_get_data(res->image); + } else { + if (res->blob_size < (s->current_cursor->width * + s->current_cursor->height * 4)) { + return; + } + data =3D res->blob; } =20 pixels =3D s->current_cursor->width * s->current_cursor->height; @@ -1279,7 +1279,7 @@ static int virtio_gpu_save(QEMUFile *f, void *opaque,= size_t size, assert(QTAILQ_EMPTY(&g->cmdq)); =20 QTAILQ_FOREACH(res, &g->reslist, next) { - if (res->blob_size) { + if (!res->image) { continue; } qemu_put_be32(f, res->resource_id); @@ -1430,7 +1430,7 @@ static int virtio_gpu_blob_save(QEMUFile *f, void *op= aque, size_t size, assert(QTAILQ_EMPTY(&g->cmdq)); =20 QTAILQ_FOREACH(res, &g->reslist, next) { - if (!res->blob_size) { + if (res->image) { continue; } assert(!res->image); --- base-commit: 006a22cb26998998385b104db1ff9466ef2f3153 change-id: 20260725-image-6c8566fb1253 Best regards, -- =20 Akihiko Odaki