From nobody Sat May 18 21:16:10 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1678792513; cv=none; d=zohomail.com; s=zohoarc; b=H+YOnDehSSHDut4yzeUNNaLrxyRb7cl8eI0YJEHd7ShaULiuYj9T6ehIdmKFpbqg951C9zIYRssiWpEwV/uNN9QvZOdDOTkRYVRodID8dNd8dV5/8ACBkDrfXK9YS94SQ6xUZa/sHbzoN7CNRKYByswo4dfqogjrt79qkXOmwXk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1678792513; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=iC81pr4qU2yv+2N4TULW4UOxCyMavZBGsXLy6UiQSWE=; b=gpPWNXFuia1ZrrXZIf2WPyl6OqEE1kOs0eZrRrLiAMmllRatDc1a7plqSYExu9wLdppTF2JwP932oNtRdb6QRuKfqaQYdKCJfQTzfuOv/10Z7+O6/uqctfpVzxBZ+6mcZZ6y57OUf1689/nYnMu09O/g1m2bbsyZIFmLpV3rZnc= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1678792513150901.316988064995; Tue, 14 Mar 2023 04:15:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pc2cF-0008E6-1y; Tue, 14 Mar 2023 07:14:51 -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 1pc2cC-0008Do-Oj for qemu-devel@nongnu.org; Tue, 14 Mar 2023 07:14:48 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pc2cB-0007Rd-5t for qemu-devel@nongnu.org; Tue, 14 Mar 2023 07:14:48 -0400 Received: by mail-wm1-x32b.google.com with SMTP id ay8so4740500wmb.1 for ; Tue, 14 Mar 2023 04:14:46 -0700 (PDT) Received: from localhost.localdomain (233.red-88-29-167.dynamicip.rima-tde.net. [88.29.167.233]) by smtp.gmail.com with ESMTPSA id 12-20020a05600c228c00b003dec22de1b1sm2579915wmf.10.2023.03.14.04.14.44 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 14 Mar 2023 04:14:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678792485; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=iC81pr4qU2yv+2N4TULW4UOxCyMavZBGsXLy6UiQSWE=; b=eCdX05iuFaeVdqegOIlD7qOdfvplVYEZllmwRJ60hpjr4tPco8eE9jbM2YXE/Xd8Ep 8IOX6VerT2irN+eefasnt6DwmYFZ7i7uIXgSmvoVTpbMkNSf7UnQMipinFkfkxA6pk2E bzRmnQ2mXErwesI1siEDxKi2C2o0p+KThtofSR/8GUfaVxlXX39I5cdBGPUYCtshOIn1 zj5qnJO6ntunKTTrtuw9sTK5cJ7vl8peFoeRgUBGp/TgmBuFR/vp++RKwfO3DKAK90bm lilgTWDeLH7BkQo7DNcAUz7YYyMZYUm/GA2lRXbwkY3Zm3zzFK4vSbaZSod3zOUTgxkq 2Rlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678792485; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iC81pr4qU2yv+2N4TULW4UOxCyMavZBGsXLy6UiQSWE=; b=tnW84GXl+lowNsDJVXxy2mVKyUVUUHqZ/i4Bd2O8WQ4Q9dTGFQ8cf/DpbI0B5h8qD1 5sOL/HrJSm47Pb22IIjHSEZWksCg3XQFLp5YWA02jyx83JY9NENyUOqAdEnM1v4d4DvU 3z2FlWRJdDIDOKcpnKr17zrYfVwwLFcPSRKovXLldFqLWvcJPrJhUsrfV1W91f6lcq10 TutgeBeKW+L6Wm8+CRq0PTr3VlWYu2i92aPyeK+AaKw5RWzC5YUoiJkkpCFsgTWWUE5G ytPc1nt84Vh1O9yj59bpTWpidn3U5I/EVoCwLdxE3/9gl2TbY2ou0Lfam80zZB8ibBs9 VV1Q== X-Gm-Message-State: AO0yUKXxbVeB72ycdJAzeXip8bmecXqiOr8oavBvEPXfQ7mCcGrbOPPV 7Crwy4lOKC3S2tLdNnMbfBy2Vz+2ec4andlajfc= X-Google-Smtp-Source: AK7set8uTpdUf5EG++km8tJMK4ghv3/C5XN2zVIfzcuRoe9fcdqEqzIDdMWJnE2AUYM8Ia/MjL1uyg== X-Received: by 2002:a05:600c:470b:b0:3eb:395b:8b62 with SMTP id v11-20020a05600c470b00b003eb395b8b62mr14211111wmo.39.1678792485415; Tue, 14 Mar 2023 04:14:45 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Marcel Apfelbaum , "Michael S. Tsirkin" , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH 1/4] hw/pci/msi: Fix debug format string Date: Tue, 14 Mar 2023 12:14:32 +0100 Message-Id: <20230314111435.89796-2-philmd@linaro.org> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20230314111435.89796-1-philmd@linaro.org> References: <20230314111435.89796-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=2a00:1450:4864:20::32b; envelope-from=philmd@linaro.org; helo=mail-wm1-x32b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-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 @linaro.org) X-ZM-MESSAGEID: 1678792514907100003 Fix this format string warning when defining MSI_DEBUG: hw/pci/msi.c:209:28: warning: format specifies type 'char' but the argume= nt has type 'unsigned int' [-Wformat] offset, nr_vectors, msi64bit, msi_per_vector_mask); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ hw/pci/msi.c:83:61: note: expanded from macro 'MSI_DEV_PRINTF' MSI_DPRINTF("%s:%x " fmt, (dev)->name, (dev)->devfn, ## __VA_ARGS__) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ hw/pci/msi.c:78:58: note: expanded from macro 'MSI_DPRINTF' fprintf(stderr, "%s:%d " fmt, __func__, __LINE__, ## __VA_ARGS__) ~~~ ^~~~~~~~~~~ Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/pci/msi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/pci/msi.c b/hw/pci/msi.c index 041b0bdbec..5de6df8154 100644 --- a/hw/pci/msi.c +++ b/hw/pci/msi.c @@ -204,7 +204,7 @@ int msi_init(struct PCIDevice *dev, uint8_t offset, } =20 MSI_DEV_PRINTF(dev, - "init offset: 0x%"PRIx8" vector: %"PRId8 + "init offset: 0x%"PRIx8" vector: %u" " 64bit %d mask %d\n", offset, nr_vectors, msi64bit, msi_per_vector_mask); =20 --=20 2.38.1 From nobody Sat May 18 21:16:10 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1678792569; cv=none; d=zohomail.com; s=zohoarc; b=g2VNFgZOan9HkMbPRioYamYjFP+B5ivvkYqHgAdr/cvPbn0HPMGWWBnImJGGd5MraIHRjeOXqd366u+qd+d6HTGs7heuQZiAozuPIPHL/vY855EzXIIbigNQewMfnNJFbMrlgefzcFC88HDTmND2e6Oiad3sLQWPc2UGkXYNjgs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1678792569; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PdkgNhaJPRrRdkwIFpantMiXyAUBdqjpuNqmDmvsuyE=; b=aibq7JSCNRvlEhxW49GwrCQvVj4jyZZoNJHQp7JXZPY6OY0ajYkhqoqOSgXL6S8fjB2PsxOFgTYwHMj7WBIFIOOHDMJ+dmHSSyo2ekPOoggl2tdCVVtz3zRoS8GESSj50WN4NQq+9pFVemVXwdwwtkjhFeEjPThkzzh61DqeBPk= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1678792569614641.2981950333093; Tue, 14 Mar 2023 04:16:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pc2cM-0008Ez-2i; Tue, 14 Mar 2023 07:14:58 -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 1pc2cJ-0008Em-Tp for qemu-devel@nongnu.org; Tue, 14 Mar 2023 07:14:55 -0400 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pc2cI-0007Rz-Fu for qemu-devel@nongnu.org; Tue, 14 Mar 2023 07:14:55 -0400 Received: by mail-wm1-x332.google.com with SMTP id m18-20020a05600c3b1200b003ed2a3d635eso2117070wms.4 for ; Tue, 14 Mar 2023 04:14:53 -0700 (PDT) Received: from localhost.localdomain (233.red-88-29-167.dynamicip.rima-tde.net. [88.29.167.233]) by smtp.gmail.com with ESMTPSA id i5-20020a1c5405000000b003ed246f76a2sm2605303wmb.1.2023.03.14.04.14.50 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 14 Mar 2023 04:14:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678792492; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PdkgNhaJPRrRdkwIFpantMiXyAUBdqjpuNqmDmvsuyE=; b=P5wjeinbvuNQMqSBnfNB0Mub/SLmKEHiwPIs7jQ0TIyv2yj43NcYW6annmsjMfQewY QTO4mvq6Av4cxf9TlrpC/ZZoous3oTZn1xYAyNc60ZPBh+KLcVGvOQ2OPUGuzOA8aLy5 7NfTMCkWHDthS2C2igZ053+vpZxfpWMu+BlwvVmkjsgC0XC6ixRDVuj4hRMo5dHwZlXJ H7VHSJDx1pNfhOuf1DJYvkDjEKWQNzLaakvKb23PN4heDvW4E+5TyJ9Fb9sfcA5BhX0R alqrpV6rywyLDcr6cj2Q3VOrhppnVSJJ64oq1oHZmQZyaTyzyfIuKs8OFrFbjZwss11R o8zQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678792492; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PdkgNhaJPRrRdkwIFpantMiXyAUBdqjpuNqmDmvsuyE=; b=g7Rm1SDQz9Z7gURMaKwhwaubvkd+Amokc3pdNV3u3TO4wteZjvJc2yh3O3829hEt37 TiaixmOPnTnJSCaIGcW+W00q1YsqgLov1Us6pcBlxkOGSSuSKKEI6No+tHR1ahX7WwHd gDvuEkOIhk+yc7L0z1vg5KDHju79kWTD3GJz/HDsbyAttnXtDI/a9wCaU4Zxzo4QGiHl dZXrh4Tppt0HteoMvfZqdsbgZ2ssqBQDo8PoFEby5i7zoGFTj2YqAmgitDv6+H9/inBK Ga8ZLBqyP0sNvl/8UrT5gslf6GfbIiwalvBKnCSXYfBaizwZ6XNIkAjm3sczbjG6mtNZ DDsg== X-Gm-Message-State: AO0yUKXxfaU4CVU1Scfvq7d4lvK/uM8Rvrc1nBKJSj/KUVcJzpd2eSD5 QWPZtqsRDiQvz+fYeODkIIcjxoLP7hHeak/JlKE= X-Google-Smtp-Source: AK7set+nURq60Nc3VKPhCAcvPTuh/Xhcx3hCa3Op79De80s710tqXZfJ5LSPcncntTS5w3ZIgh4aXQ== X-Received: by 2002:a05:600c:3acb:b0:3eb:2e2b:ff3d with SMTP id d11-20020a05600c3acb00b003eb2e2bff3dmr13908003wms.20.1678792492102; Tue, 14 Mar 2023 04:14:52 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Marcel Apfelbaum , "Michael S. Tsirkin" , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH 2/4] hw/pci/msi: Ensure msi_init() is called before device is realized Date: Tue, 14 Mar 2023 12:14:33 +0100 Message-Id: <20230314111435.89796-3-philmd@linaro.org> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20230314111435.89796-1-philmd@linaro.org> References: <20230314111435.89796-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=2a00:1450:4864:20::332; envelope-from=philmd@linaro.org; helo=mail-wm1-x332.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-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 @linaro.org) X-ZM-MESSAGEID: 1678792571162100003 A PCI device can't magically become MSI-capable at runtime. Guests aren't expecting that. Assert MSI is initialized _before_ a device instance is realized. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/pci/msi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/pci/msi.c b/hw/pci/msi.c index 5de6df8154..dfa257cc22 100644 --- a/hw/pci/msi.c +++ b/hw/pci/msi.c @@ -182,6 +182,7 @@ bool msi_enabled(const PCIDevice *dev) * address. * If @msi_per_vector_mask, make the device support per-vector masking. * @errp is for returning errors. + * @dev must be unrealized. * Return 0 on success; set @errp and return -errno on error. * * -ENOTSUP means lacking msi support for a msi-capable platform. @@ -208,6 +209,7 @@ int msi_init(struct PCIDevice *dev, uint8_t offset, " 64bit %d mask %d\n", offset, nr_vectors, msi64bit, msi_per_vector_mask); =20 + assert(!DEVICE(dev)->realized); assert(!(nr_vectors & (nr_vectors - 1))); /* power of 2 */ assert(nr_vectors > 0); assert(nr_vectors <=3D PCI_MSI_VECTORS_MAX); --=20 2.38.1 From nobody Sat May 18 21:16:10 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1678792537; cv=none; d=zohomail.com; s=zohoarc; b=CqtK9cIFScyvxvq775J8lMaNRRIec8IJ9OsNROgrqeujHDZrKZBdg+qNiGyqDGr7U6k+SfbPuiv5YH39KnT1wOxgEV6Riy1UDdQITQw30mxcLMwh/Hus/XtpEDBOvwiAcmSjk9lTLcESEsGTxr7EEVqUAk2PUCXLagicYByrrXM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1678792537; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=OAR+F6n4v/j09daumAcHV4U9McsXvObmKUx9h2b2hsI=; b=a0Rm2U1/A+UV/QPp6M4Sk8+6yblpPNZZ6bd9Qr6eEzwCaP/9MYwOx2WBevJNFSlDwfcS4d4SdMGzNSKVAbH8W5vz7biwK/844T6b21/cz/rpAZvsTE4wfhvmFxBOhi7CkhfjyFD6og5PkHUX07Ce2M2mwegVQ063HrDdNxnXIos= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1678792537625845.4186716230269; Tue, 14 Mar 2023 04:15:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pc2cR-0008Ix-Nw; Tue, 14 Mar 2023 07:15:03 -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 1pc2cP-0008Hg-LR for qemu-devel@nongnu.org; Tue, 14 Mar 2023 07:15:01 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pc2cO-0007SA-0X for qemu-devel@nongnu.org; Tue, 14 Mar 2023 07:15:01 -0400 Received: by mail-wm1-x336.google.com with SMTP id l7-20020a05600c4f0700b003e79fa98ce1so9852417wmq.2 for ; Tue, 14 Mar 2023 04:14:59 -0700 (PDT) Received: from localhost.localdomain (233.red-88-29-167.dynamicip.rima-tde.net. [88.29.167.233]) by smtp.gmail.com with ESMTPSA id z4-20020a1c4c04000000b003eb395a8280sm2491151wmf.37.2023.03.14.04.14.56 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 14 Mar 2023 04:14:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678792498; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OAR+F6n4v/j09daumAcHV4U9McsXvObmKUx9h2b2hsI=; b=xP+URl10FWDC37tLepb/bdaiWvbY4IVS6KSifQvrPKZ2mIaJuUw2Wix+Q8s5pzrBMa u1savO8sEhyPrj8yJVdvL+wVr+1lsz2bT3Yrqae3VpVhdeowA/P2G/o0UibqChL6HU4s iK+VLINK1n9IuUcZiDqFrW9X0n65/vTOL4PHnWG4UfkUpsD2gUnHfXR0uyGzVvDHfFKq cPOdASQY4W3+z0e0rlWi8VmQZ/4KazSvMrfXRYhXd/nCEZe2aRcxdNpMY972J5HOrDf3 r/OLyMaHCC4C83eFVmOVOwHogPa/jfnesVruBn8jd9AHQzT8uJdMMMMRAH+iVmzYZFWX qGLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678792498; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OAR+F6n4v/j09daumAcHV4U9McsXvObmKUx9h2b2hsI=; b=tfubickzjVktOMijjgD65XRQ8FYwvIqy6MT1rM24YR3OH2PVDW2VzFFMRXQwA4P4CM Udsr+nuFgeJrKA5xgK81zJQHUloEdmPvByQLPqLGCOhpCxqx7+c9fku0HnVf9MnxMaXI zmfEFUGcA7O3Is0UjRUn3Ho/StemCpE3RfymXxHTPT5OF/PIVwEsmTKT99ShQAODovor 1E4TuThWYexYQVcFBpxzXJAxuZDb5BkrksrnCs2GBoaIXS9GTjPN/KD4x9tFCKD0lms9 C18B3MgczfhgJ7lL6OLUNSQ4R1oJrexLvRRLGyLUajnDIU9lWMOtXZscGLTh7wTAGltd ocxg== X-Gm-Message-State: AO0yUKX9mD8dS18RcUq8xgVHWqjonERNoF2x81O8DR0UKQbVW/3BOwCv A3+FCfBYG2O7An6ftp3DDqy4zlTekD/XaBwJYA8= X-Google-Smtp-Source: AK7set8b+Vq0pRtIGi9/XJZgHYbHGwcBMT4P9WB1qon9GO3B1XIc4/RIme3Owwy3SyQsAMPOkF4QVg== X-Received: by 2002:a05:600c:4f81:b0:3ea:d620:57a0 with SMTP id n1-20020a05600c4f8100b003ead62057a0mr14259453wmq.3.1678792498261; Tue, 14 Mar 2023 04:14:58 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Marcel Apfelbaum , "Michael S. Tsirkin" , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH 3/4] hw/pci: Add sanity check in pci_find_space() Date: Tue, 14 Mar 2023 12:14:34 +0100 Message-Id: <20230314111435.89796-4-philmd@linaro.org> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20230314111435.89796-1-philmd@linaro.org> References: <20230314111435.89796-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=2a00:1450:4864:20::336; envelope-from=philmd@linaro.org; helo=mail-wm1-x336.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-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 @linaro.org) X-ZM-MESSAGEID: 1678792539193100003 This 'used' array is allocated via: pci_qdev_realize() -> do_pci_register_device() -> pci_config_alloc() In a perfect world where all device models are correctly QOM'ified this can't happen. Still it occured to me while refactoring QDev and it was not obvious to figure out. This assert helped, so keep it. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/pci/pci.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index def5000e7b..ac41fcbf6a 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2185,6 +2185,7 @@ static uint8_t pci_find_space(PCIDevice *pdev, uint8_= t size) { int offset =3D PCI_CONFIG_HEADER_SIZE; int i; + assert(pdev->used); for (i =3D PCI_CONFIG_HEADER_SIZE; i < PCI_CONFIG_SPACE_SIZE; ++i) { if (pdev->used[i]) offset =3D i + 1; --=20 2.38.1 From nobody Sat May 18 21:16:10 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1678792533; cv=none; d=zohomail.com; s=zohoarc; b=H5B7rJBx3Og7nCtKO11xWjIuIiAs4YKsGQfo397wSTuHF2vE/eY3p3tkKteaiFTVYCLeixDXp6KFoKjqyybftgnYSMWVzkUjJzIEeifO7GRMJqceHZ6SYbrIR8cWM4vRsNyOQrL9p0ATN9DkA6/phM50mzcnsvv67jpEzB5d0xE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1678792533; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=qfZpyN/6cn0lQTIIg8sb3mDy2U0N3ziNO6V5wkqMbpY=; b=ILDZqE4NdJPxRPXufIF19ErqTlrhyBpAuSXfZwc/I1aj/Dp+ZedvkxS2/6MonmU46Q/urnGWup9aD1A/k4vz5jOMFTZascm+2/HENZtWFD0PRxXXN/Qc9B/vDzMP01B0v480W66p8cgfibfS/OKRiM8cLnJRn86r+zbjufOL7Hc= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1678792533094552.4011708531148; Tue, 14 Mar 2023 04:15:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pc2cc-0000A8-Pt; Tue, 14 Mar 2023 07:15:14 -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 1pc2ca-00007G-Ce for qemu-devel@nongnu.org; Tue, 14 Mar 2023 07:15:12 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pc2cW-0007Rd-1L for qemu-devel@nongnu.org; Tue, 14 Mar 2023 07:15:12 -0400 Received: by mail-wm1-x32b.google.com with SMTP id ay8so4743112wmb.1 for ; Tue, 14 Mar 2023 04:15:05 -0700 (PDT) Received: from localhost.localdomain (233.red-88-29-167.dynamicip.rima-tde.net. [88.29.167.233]) by smtp.gmail.com with ESMTPSA id t18-20020a1c7712000000b003ed2987690dsm2450277wmi.26.2023.03.14.04.15.02 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 14 Mar 2023 04:15:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678792504; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qfZpyN/6cn0lQTIIg8sb3mDy2U0N3ziNO6V5wkqMbpY=; b=vEMvkQFoTD6l2YhEVl17hTKEZbQ0RGgx1kItCOdkx2tHxYLaWA011BqAYE8p1cW6c2 hV1H3pzV8WX3yawPB/2dywzk6+P+jP1joVbgMRCZjQmayp0LPZltfDMqWB2FwInMDCrZ 8Sjz/MlGNIdAd6/k0Mo2FxIKn8VrBzE7yCBKG3nS5HnnjP16b/LIkb/k3GJGc4J/lZSM t9OyglpzNclAa/agGl9Z0MNRFUabetx6rJ4rTn8wRcgRnRZCDgM+3iJAxtXbC4+i45zi /vjnvNioPNTPxlF6s4lZM1HURbzoa4AwmXNI5cnoCNPRg0aSDqTuK5QVQucr1bN8TKGr SFEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678792504; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qfZpyN/6cn0lQTIIg8sb3mDy2U0N3ziNO6V5wkqMbpY=; b=my20oqIJQY3Vg2PqGPRBLBKJjMdaBZByWuNLJhLc9GmTi9jrelms8dU2A1Z4diruLQ qrCJ/PsTnGUxnonOW47gI8RnSZP69JgzDmSmBJvEYNpnzrqe5AlPkkujdS2rkBHM+Jxg cQKjnIkRGsLf8bu/VEYbh9dL6G1UsyG0vFcEzmTH6MFQV5N0hpZ2HgJ+Cl4Yof9LUQWt V40ZwvYUPNLVVADyWvUxLwcrfrYYMJLSsfw8T3o+muEvOWE0RvMdo6k/3FsqD5osorV+ +FSPmpuIE64m52qzS12gymCn4elBjJT3sTQNPtYYHYakzQSJPC74vfw4FNWKRJpKe2Kw R/yQ== X-Gm-Message-State: AO0yUKWveh4H4/JUD+0Aer+/l/ygWTgfrXt5YCFKDm/9X7PLDEgtuk0D yrht5GJ2o6L3JRhvIHQXibEu6/58XxvbPxVvzE4= X-Google-Smtp-Source: AK7set+Ospj7RQZCA/QwXD/NFFZTeVGwidP2Tb6tPxJv0RGh6mgxtLktIQgkmaAJpgXlixukp12SWg== X-Received: by 2002:a05:600c:4f53:b0:3eb:29fe:7343 with SMTP id m19-20020a05600c4f5300b003eb29fe7343mr13839323wmq.33.1678792504495; Tue, 14 Mar 2023 04:15:04 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Marcel Apfelbaum , "Michael S. Tsirkin" , Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH 4/4] hw/pci: Ensure pci_add_capability() is called before device is realized Date: Tue, 14 Mar 2023 12:14:35 +0100 Message-Id: <20230314111435.89796-5-philmd@linaro.org> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20230314111435.89796-1-philmd@linaro.org> References: <20230314111435.89796-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=2a00:1450:4864:20::32b; envelope-from=philmd@linaro.org; helo=mail-wm1-x32b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-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 @linaro.org) X-ZM-MESSAGEID: 1678792534999100003 PCI capabilities can't appear magically at runtime. Guests aren't expecting that. Assert all capabilities are added _before_ a device instance is realized. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/pci/pci.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index ac41fcbf6a..ed60b352e4 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2397,7 +2397,7 @@ static void pci_del_option_rom(PCIDevice *pdev) * On success, pci_add_capability() returns a positive value * that the offset of the pci capability. * On failure, it sets an error and returns a negative error - * code. + * code. @pdev must be unrealized. */ int pci_add_capability(PCIDevice *pdev, uint8_t cap_id, uint8_t offset, uint8_t size, @@ -2406,6 +2406,8 @@ int pci_add_capability(PCIDevice *pdev, uint8_t cap_i= d, uint8_t *config; int i, overlapping_cap; =20 + assert(!DEVICE(pdev)->realized); + if (!offset) { offset =3D pci_find_space(pdev, size); /* out of PCI config space is programming error */ --=20 2.38.1