From nobody Sun Feb 8 14:52:58 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1630663769; cv=none; d=zohomail.com; s=zohoarc; b=TYjJwDZDyeoNklY58OqMNLrGaRflHdc1l+AIGKJ4BbXxnPWe3qyAdbiAff9JokfmfoNcTwszgGPkiUAGAqOOOQAZgGfLVfqxbMutR7/1oDvsakSkYGrt47hClI3IF3ufcaumINjqgOQ47wOG4o52AOtBV+hFiw11NReBj8fe6PM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1630663769; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9oZWyDoHrlYE4f9O9pDC/GUYZqq2tbn79VvRAgG5sU8=; b=jtPpOBxMG4WSJhhSRt0fkAh05Bbo/2rz2By7Nah5E38QHlT9GrT7ewUfJqkvtLV5IQSshMsxk2mgvwR4R8ZxItnLHPe9WuaTHet47aVCbgn27erTZPiZx0cN//JVc/t9rFznRfc7Ssa3WJOBSHU8CXrZeDouPqYNtsyAgYVyTJw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1630663769698795.0524395213104; Fri, 3 Sep 2021 03:09:29 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.177992.323863 (Exim 4.92) (envelope-from ) id 1mM68L-0007xj-Il; Fri, 03 Sep 2021 10:09:17 +0000 Received: by outflank-mailman (output) from mailman id 177992.323863; Fri, 03 Sep 2021 10:09:17 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mM68L-0007xZ-EE; Fri, 03 Sep 2021 10:09:17 +0000 Received: by outflank-mailman (input) for mailman id 177992; Fri, 03 Sep 2021 10:09:16 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mM68K-0004Cr-An for xen-devel@lists.xenproject.org; Fri, 03 Sep 2021 10:09:16 +0000 Received: from mail-ej1-x635.google.com (unknown [2a00:1450:4864:20::635]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 81dc2936-e1af-40c8-8a27-a24992fd589f; Fri, 03 Sep 2021 10:08:44 +0000 (UTC) Received: by mail-ej1-x635.google.com with SMTP id mf2so10990948ejb.9 for ; Fri, 03 Sep 2021 03:08:43 -0700 (PDT) Received: from a2klaptop.epam.com (host-176-36-245-220.b024.la.net.ua. [176.36.245.220]) by smtp.gmail.com with ESMTPSA id p5sm2427187eju.30.2021.09.03.03.08.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Sep 2021 03:08:42 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 81dc2936-e1af-40c8-8a27-a24992fd589f DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9oZWyDoHrlYE4f9O9pDC/GUYZqq2tbn79VvRAgG5sU8=; b=G0v5SVgVhnp27fzhTFh/t3t6T3ZG3N3FQIFEBpPCV7HbEmNwdwHCsDna9Ka/KxV5FU DxTwEW485P0l8KGipmtwsR4PUeZba5wv3+Fu/ntpk5rL4UwSUtnBWGZYnBKUOM42NxuJ GFgt36WnRDm+PUd1QAGp4A2cQ2ZxqVUvShjebP00K+B1HTsHQQkU3uLmPWxgKL0AJPtb aznDETYoKDAewvu3eFK5aeZmP/KclS4BjcmZC+3sJHmxn1JpWg7lOPN/kWaaXmSgMb8e JqOVncQSXD/xA4F426v3mWQvQi+W2MGFum99JYmvYKVxmw6AeK1htZrltbHDiaSMYs2Q MMmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9oZWyDoHrlYE4f9O9pDC/GUYZqq2tbn79VvRAgG5sU8=; b=Ul5ha2HbBHeFKU56A9FmD89nbB41SnxF5p4NO3s0lTyS/i2jSY94clHHGBlMRvu5Pb R+FZdRi1AssRf/R98fuBSuQbzexSwpDKH5D6WeWoNYBhRsbKzAFeAQ2dCCHVS3kW48Yr oh0uzN+gzfLxTuVdhpGJruzP39PZlHEXUzNy8YJk85Mh4PVoRco/Nz+SUyOGOaCCJVj/ avBvwXftKBd0+zzkojEUvWHA+q9DBLrqWulwhrs7i+3wKSlOkmleWU4HyPUvssQCH+wi XcGMc3zMlannMfrlUBiW+YDS9TE9i+q50PJ0rEFPBNLxR91oYmCGOxEN986gTtmg2hya f8Kg== X-Gm-Message-State: AOAM530t0rSAulO2Tr5mbpKDyYH5bn482wOLwLHWZUUq6kRc6muezO5m b5RsjRZOtucJLIyYUMYBWvAf0AVt3G8= X-Google-Smtp-Source: ABdhPJwC0I+pj81VPq5Z8aniIDBjWrsyNx1aYeEbgRJViZP4d+n9MV4hh4STMk34EUBwp0NwdeCIrw== X-Received: by 2002:a17:906:748e:: with SMTP id e14mr3277798ejl.152.1630663722931; Fri, 03 Sep 2021 03:08:42 -0700 (PDT) From: Oleksandr Andrushchenko To: xen-devel@lists.xenproject.org Cc: julien@xen.org, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com, volodymyr_babchuk@epam.com, Artem_Mygaiev@epam.com, roger.pau@citrix.com, jbeulich@suse.com, bertrand.marquis@arm.com, rahul.singh@arm.com, Oleksandr Andrushchenko Subject: [PATCH 8/9] vpci/header: Reset the command register when adding devices Date: Fri, 3 Sep 2021 13:08:30 +0300 Message-Id: <20210903100831.177748-9-andr2000@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210903100831.177748-1-andr2000@gmail.com> References: <20210903100831.177748-1-andr2000@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1630663770628100002 Content-Type: text/plain; charset="utf-8" From: Oleksandr Andrushchenko Reset the command register when passing through a PCI device: it is possible that when passing through a PCI device its memory decoding bits in the command register are already set. Thus, a guest OS may not write to the command register to update memory decoding, so guest mappings (guest's view of the BARs) are left not updated. Signed-off-by: Oleksandr Andrushchenko --- xen/drivers/vpci/header.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c index 7416ef1e1e06..dac973368b1e 100644 --- a/xen/drivers/vpci/header.c +++ b/xen/drivers/vpci/header.c @@ -811,6 +811,16 @@ int vpci_bar_add_handlers(const struct domain *d, stru= ct pci_dev *pdev) gprintk(XENLOG_ERR, "%pp: failed to add BAR handlers for dom%d\n", &pdev->sbdf, d->domain_id); + + /* + * Reset the command register: it is possible that when passing + * through a PCI device its memory decoding bits in the command + * register are already set. Thus, a guest OS may not write to the + * command register to update memory decoding, so guest mappings + * (guest's view of the BARs) are left not updated. + */ + pci_conf_write16(pdev->sbdf, PCI_COMMAND, 0); + return rc; } =20 --=20 2.25.1