Received: by 2002:a05:7412:a9a2:b0:e2:908c:2ebd with SMTP id o34csp1302856rdh; Fri, 27 Oct 2023 10:03:58 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH5bohyt3NZwdDO7KCG4lGR8XDwqwksqFn1jelFFDZuU+8r89NHzBPw/dQodeF30SYGn+sa X-Received: by 2002:a81:af23:0:b0:595:887f:e180 with SMTP id n35-20020a81af23000000b00595887fe180mr3313234ywh.40.1698426238391; Fri, 27 Oct 2023 10:03:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698426238; cv=none; d=google.com; s=arc-20160816; b=BjfLdBA8foYDQqljALuH6D0iUmR+35Jf+2xPJajCGv11oMVFO2REaJitwoGV79yTas jOsLo+70CPl+J6W+J/L3ri+WzlTmmBuQOf8OZ6na+Mfw1Mepz+gFb8DOtsLvneEhBJxP MJRCwTKdxN05wBxazD13tB1Kjx46CKY5GZlOaZ8rfUxIhMupmP8ZlFQ21iRh+Iv84Nj/ 7AEP23LJ11gMIyntk4Sggu0oy+cX6XiLbHuNlxiAvei+0z3jLyKUplkMS9KUfuZ4ZNne 3VSDq1Qpz4vl3bvoeV0vEapd3IXJQxxof2nE8IWPd2LgEaY2Ik7qEuJKiK+FDSbQvuPl Sd4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Vk/UFk7RcyRSH7rMJ2aKK7/uO3x5/jBSZtkG7V0NOOI=; fh=k582jSlci6uTztoHpzXN2a6Foym20J+xbJc48KNsUhM=; b=Da1znruOjBGmJefprgoCPg9xxsHv4aY5GHv/PgnbN/faLmAtPjdGEW42poOi9wdHQs zLkSyvCEf3emjIfEq5dQ18Xt0hhwiE79sXPPx4dGvbH8pgQ25prtfs32CcqzfT0Dxj1T 2vSJbuTjTZjgIXnMRzlnCD/8eT2xgbQnE3XpY4VqDNxu11co5bcgYfC12s5kr7tveGgk BZvBKQkZ1bApgIWMaEvSL/WakEb4en5jDTFDZq7YQekkumfZLeeWT5qr85xGMypBvsNC wtNNHzUpI+rRwE0ur5qE9gKFV68O8nsRsSiymzQJJJ1dhfhb6DWXBi4aagvcf9jjb6mO EhmA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=kcXIbjiE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id d70-20020a0ddb49000000b005702e516e67si2928748ywe.13.2023.10.27.10.03.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Oct 2023 10:03:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=kcXIbjiE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 51E2082F0997; Fri, 27 Oct 2023 10:03:40 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346519AbjJ0RCg (ORCPT + 99 others); Fri, 27 Oct 2023 13:02:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43408 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346205AbjJ0RBl (ORCPT ); Fri, 27 Oct 2023 13:01:41 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.8]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 37AB2D42; Fri, 27 Oct 2023 10:01:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1698426095; x=1729962095; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=4LhbS49tlQOs/14GbzRw202WRPZQBhJkwr2CrMC/ZaY=; b=kcXIbjiEKNGKI8v2mnKTODYnLTJJnHS7n7KO/at3i9BQkoYvmho0KaeS 5qzUMOZELRGLGoZRPgSD+NanqI1wNycY/3wcT4uDx2JnprxVj6QYyFva7 boUc/NcEU6EWQ25Dn1maNTdYYMHnDnH+8x+ArwDd6z5W25+fQMHuGjhZY xIoxUoGVgqo0p2T7/CrdpIuPB3e/EPm7i0KtPcgAsjc2CU87dOkVxzAqW QXZUZESLFd2BBuwhPrNl72HcNUM4RBHm2gIffccDb1XluPnNlfC0Iwb7z 4BSpGCwqipUqC1KwinkFMgcMQlX+IdZ03A+KcmuEcYPWtMaq6ZTGRIeVN A==; X-IronPort-AV: E=McAfee;i="6600,9927,10876"; a="611999" X-IronPort-AV: E=Sophos;i="6.03,256,1694761200"; d="scan'208";a="611999" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmvoesa102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Oct 2023 10:01:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10876"; a="1090988208" X-IronPort-AV: E=Sophos;i="6.03,256,1694761200"; d="scan'208";a="1090988208" Received: from rchatre-ws.ostc.intel.com ([10.54.69.144]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Oct 2023 10:01:18 -0700 From: Reinette Chatre To: jgg@nvidia.com, yishaih@nvidia.com, shameerali.kolothum.thodi@huawei.com, kevin.tian@intel.com, alex.williamson@redhat.com Cc: kvm@vger.kernel.org, dave.jiang@intel.com, jing2.liu@intel.com, ashok.raj@intel.com, fenghua.yu@intel.com, tom.zanussi@linux.intel.com, reinette.chatre@intel.com, linux-kernel@vger.kernel.org, patches@lists.linux.dev Subject: [RFC PATCH V3 16/26] vfio/pci: Split interrupt context initialization Date: Fri, 27 Oct 2023 10:00:48 -0700 Message-Id: <1f65808ba9e7c54c5ea1590dadfeb1e10ac5c276.1698422237.git.reinette.chatre@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Fri, 27 Oct 2023 10:03:40 -0700 (PDT) struct vfio_pci_intr_ctx is the context associated with interrupts of a virtual device. The interrupt context is initialized with backend specific data required by the particular interrupt management backend as well as common initialization required by all interrupt management backends. Split interrupt context initialization into common and interrupt management backend specific calls. The entrypoint will be the initialization of a particular interrupt management backend which in turn calls the common initialization. Signed-off-by: Reinette Chatre --- No changes since RFC V2. drivers/vfio/pci/vfio_pci_intrs.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c index adad93c31ac6..14131d5288e3 100644 --- a/drivers/vfio/pci/vfio_pci_intrs.c +++ b/drivers/vfio/pci/vfio_pci_intrs.c @@ -801,6 +801,18 @@ static int vfio_pci_set_req_trigger(struct vfio_pci_intr_ctx *intr_ctx, count, flags, data); } +static void _vfio_pci_init_intr_ctx(struct vfio_pci_intr_ctx *intr_ctx) +{ + intr_ctx->irq_type = VFIO_PCI_NUM_IRQS; + mutex_init(&intr_ctx->igate); + xa_init(&intr_ctx->ctx); +} + +static void _vfio_pci_release_intr_ctx(struct vfio_pci_intr_ctx *intr_ctx) +{ + mutex_destroy(&intr_ctx->igate); +} + static struct vfio_pci_intr_ops vfio_pci_intr_ops = { .set_intx_mask = vfio_pci_set_intx_mask, .set_intx_unmask = vfio_pci_set_intx_unmask, @@ -814,17 +826,15 @@ static struct vfio_pci_intr_ops vfio_pci_intr_ops = { void vfio_pci_init_intr_ctx(struct vfio_pci_core_device *vdev, struct vfio_pci_intr_ctx *intr_ctx) { - intr_ctx->irq_type = VFIO_PCI_NUM_IRQS; + _vfio_pci_init_intr_ctx(intr_ctx); intr_ctx->ops = &vfio_pci_intr_ops; intr_ctx->priv = vdev; - mutex_init(&intr_ctx->igate); - xa_init(&intr_ctx->ctx); } EXPORT_SYMBOL_GPL(vfio_pci_init_intr_ctx); void vfio_pci_release_intr_ctx(struct vfio_pci_intr_ctx *intr_ctx) { - mutex_destroy(&intr_ctx->igate); + _vfio_pci_release_intr_ctx(intr_ctx); } EXPORT_SYMBOL_GPL(vfio_pci_release_intr_ctx); -- 2.34.1