Received: by 2002:a05:7412:da14:b0:e2:908c:2ebd with SMTP id fe20csp509338rdb; Fri, 6 Oct 2023 09:43:07 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH16YaPLhuMtJRyovZrabZp5UJG3cQoaGGV4CAgAWVDjWHC4mPbf8Y9MqmgrL8de8kHejGm X-Received: by 2002:a17:902:b718:b0:1bd:d141:f02d with SMTP id d24-20020a170902b71800b001bdd141f02dmr7006429pls.68.1696610586918; Fri, 06 Oct 2023 09:43:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696610586; cv=none; d=google.com; s=arc-20160816; b=yooT2vjHo+uxNjbkjPZujW3tJiVETBxpAshEzo8ZTeg6/atzbc+5TwC8NtUgiVG3Zn oVXDYbHb6/UJTI+sty3psZzzJuV/HyZoJZ5b1wKOckCYnz3WP7XZ1B9D/oxDLuwIg5sr zzcjumtelTRuPt475Ac/bTbuEwgHwm1Bi3HlHckVo84U48+8FfeaUi2eNdq3S4qNQ7Y3 6Qoc0PGSOTG4J8AX8IsA3lW8L7FGXjaLiTf278+qq4eeu7qz6YUBW4U93qioctf8lEz8 t1ZtUrT0U4N90FPjPoW1cNAXRQ6TroWVDI/Urzscq9erlYKnISb2h5dIDHYyjBanwnRv QQjA== 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=iCqEvtk5kHVGRuFiSHL66Es0Kzg2AnX+p7pBjw8I9z8=; fh=k582jSlci6uTztoHpzXN2a6Foym20J+xbJc48KNsUhM=; b=W3nw3tSymz/o80Z+oPJdOcD+POzWS/eSUlNvtgnijADaNR5Biq7Z5mFLRfqCa5hn71 aHFYrDcDFLiR32gGUMQb+TN1xwCfUhERwWzsCMVxm3LSh4VQm7FdBKWISuKeO5jvuLLR EGDEJqsz7bdcDuXeOQJ0ljlobA06dm32gpCcGEqrkEwdhZu/YlBBEoz4Oi3Dv+mMoRFh dfkGt5WtPtNDAvNgJXLDhEtvZc7TqA6kQ68nfhivAVDoKhsblpPJIa+n1Kkc4ZThCvVH mw7jXdzGI5O9ihv5vMkhSuzvodfqEL5It4yas7MhZEg7sJ5tLkVZthIO+4JrTLNyqiDs Vf9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Vif2RSIV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 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 groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id q7-20020a17090311c700b001bde9e8a29fsi4247211plh.183.2023.10.06.09.43.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Oct 2023 09:43:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Vif2RSIV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 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 groat.vger.email (Postfix) with ESMTP id A14E28053F99; Fri, 6 Oct 2023 09:42:55 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233104AbjJFQmI (ORCPT + 99 others); Fri, 6 Oct 2023 12:42:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49744 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232996AbjJFQle (ORCPT ); Fri, 6 Oct 2023 12:41:34 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.151]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ABE88CA; Fri, 6 Oct 2023 09:41:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696610490; x=1728146490; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=m7lg4ugaNhVT8RBGTE4Cyh9T0xB/RfOce2ILlwe3gFk=; b=Vif2RSIVDFIIJuYClDM1+8LlbrFJ5NLUq3DTxdLEEtgAntQVeOcfrHby 8gU0BPGABuEU9PopOFKbw435BjJxwX0drIuyJs54cSOH+vvxZq7KaQaTf PVXo06tPDRcpo3+udwxQ7ks730KtPUqt5ENuVvcADl6iklaCGXUQ46d/8 OFroEI6ODXscttxMA6MO6fpz+20tplIZSIWHY57Vv6Y6P2hSWk75f9KLy soznryD7o5nVAaKZXdTveC0uuhNww292hxUQ19s/49HSADKW1d6993L05 QVVLWpH5eLOu12KFdFgrXTr9L7/sNSANEuG0SLq1fWDcKpQbr5t00k03E Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10855"; a="364063209" X-IronPort-AV: E=Sophos;i="6.03,204,1694761200"; d="scan'208";a="364063209" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2023 09:41:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10855"; a="842892871" X-IronPort-AV: E=Sophos;i="6.03,204,1694761200"; d="scan'208";a="842892871" Received: from rchatre-ws.ostc.intel.com ([10.54.69.144]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2023 09:41:26 -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 V2 11/18] vfio/pci: Split interrupt context initialization Date: Fri, 6 Oct 2023 09:41:06 -0700 Message-Id: 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=2.7 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.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 (groat.vger.email [0.0.0.0]); Fri, 06 Oct 2023 09:42:55 -0700 (PDT) X-Spam-Level: ** 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 --- 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 eb718787470f..8c9d44e99e7b 100644 --- a/drivers/vfio/pci/vfio_pci_intrs.c +++ b/drivers/vfio/pci/vfio_pci_intrs.c @@ -793,6 +793,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); +} + 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, @@ -806,17 +818,15 @@ 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