From patchwork Thu Sep 29 15:04:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Gunthorpe X-Patchwork-Id: 12994206 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B8F5DC433FE for ; Thu, 29 Sep 2022 15:05:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235166AbiI2PFS (ORCPT ); Thu, 29 Sep 2022 11:05:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37928 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235415AbiI2PFN (ORCPT ); Thu, 29 Sep 2022 11:05:13 -0400 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2067.outbound.protection.outlook.com [40.107.244.67]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE75758B7E for ; Thu, 29 Sep 2022 08:05:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dS1Qogbax0aZrrxr+7R3TOsvgcGeKs9HhkRkrGqqOR5uWS0A7P55ydAF1IpurpOaBk+jOQMnR6e2JVxG1/6hgJhaSPyNI+KGoV9iz5pFJi60vAIPY0IIn6FkRYPfK8U9NaZ2qbZB+XXuihMDMjNui8SWVjhcFaHt0X4j+l4lLm5YsUBigANJICKbTlWgRa/DlZ7kS/BbzTEgb06wqT/jJdFrjlJfOUcjtIKF535Jvm57UlQd1zRIT4YMgl9rsGSUM7mqNWaekrrAsvd1qq8mZV3TZ6LT4wgsHN/8B0/+A46KYUOMAueuP06SauUedfuxcnq87u7WtJyc4ww7QkRIDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=aO9XhXJ8gvwOHJILQIXTLfZHlxeRa88Ch43D8LgAtlU=; b=ZkRYOnHtEAT2ybCPRdSQFslwhUZKm+btyeIGQ/v3oUJB1cmy6pn2grJYGjNzS8CL+pssyVdbrW+51smPao3rar2DopqihabS1A0EGkG2LPJ6gsU7jkNGuF8dqgp+ArUeSbUVIu3nN9h8TxL2ZSlGUP3dC4gTwZ7m8jWnDrz/2ENvbrT4Bbe16qwafKZMVm8Ml0mdyF1gGxxFFk1HhtIF8XRO8JqXe9wpC3zxo/0NgvB505BfS9naOaD5XmDqJ/8jq+IV/t8oOGScH+5P8ccy+E5Ihqvs33lzfzS0YuwXHJh4khVNKyBYTaLLuRX0GT7NdLcYLCL1i//AnJ1wNhHp6Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aO9XhXJ8gvwOHJILQIXTLfZHlxeRa88Ch43D8LgAtlU=; b=uPTwzyupdyyv+lNEFAqaZmx1S/ELgWov/iLg8c65GHbJWOx6cX1FWAmCYf8TJM1Q05mMKUtnEGUbXg+X2trJz71ovT+e/pHylacCt2UTUU4IUMob/g/CULBNYwqB5WVKdX0AImdUSqmv7uVQ5c6ve0L5kgL0PZ7VsI+vGXi8VmzfMq+IzJfaTLjEBJQiurVeb3ZEmrz46luGhUj9/xv+daIgGACny/8vA3l9vPxkEiAxj1r7DfbZ2at06mFACAIEbDS4DzrOMR5O4eDrlrX/0U8k6ZeAAvj/44iW/rTD2A9U2+HsohTckjCAbT/8AK4AufFw21BxaoMUeOQoyT+uoQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from MN2PR12MB4192.namprd12.prod.outlook.com (2603:10b6:208:1d5::15) by PH0PR12MB5645.namprd12.prod.outlook.com (2603:10b6:510:140::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.19; Thu, 29 Sep 2022 15:05:01 +0000 Received: from MN2PR12MB4192.namprd12.prod.outlook.com ([fe80::f0c0:3a28:55e9:e99c]) by MN2PR12MB4192.namprd12.prod.outlook.com ([fe80::f0c0:3a28:55e9:e99c%5]) with mapi id 15.20.5676.019; Thu, 29 Sep 2022 15:05:01 +0000 From: Jason Gunthorpe To: Alex Williamson , Cornelia Huck , kvm@vger.kernel.org Subject: [PATCH 1/4] vfio/pci: Move all the SPAPR PCI specific logic to vfio_pci_core.ko Date: Thu, 29 Sep 2022 12:04:55 -0300 Message-Id: <1-v1-10a2dba77915+c23-vfio_modules_jgg@nvidia.com> In-Reply-To: <0-v1-10a2dba77915+c23-vfio_modules_jgg@nvidia.com> References: X-ClientProxiedBy: MN2PR20CA0003.namprd20.prod.outlook.com (2603:10b6:208:e8::16) To MN2PR12MB4192.namprd12.prod.outlook.com (2603:10b6:208:1d5::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR12MB4192:EE_|PH0PR12MB5645:EE_ X-MS-Office365-Filtering-Correlation-Id: b4ab48da-355c-426a-a7c5-08daa22bfb36 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: D9+DJdsypA+SXQMeNc17hfJuawquNiFYRBK7AaKHW+pPpiQHYbsb5GBJMwx1JBlFjS4JH7FPTvP0Vxpnx9XT84/y0H0psVwQ1eIOLsdR0HyP96RYj2ZMhX3YkEF6v6uT32RdGZlN0bx28QmW3OWtKEQlpDRDAi52/O/rV+crwTl7xszUZHzEFHrUTWXb6O50J9JIhw8qCtpawrU9VD0g3SCeWv3HOoi8DoS7TL/uOAiU7yR6fKOUqAaeP8OQFv8exYpImLwAYl95AYPuvuVr2BEE9lL3r09uI5Z7GYR8axQqH6q4vnuVeFAtXLxUZVICVP/TJYmi1DB0MPHdved7AEg1zyVctbo52aVe68t3626Qdm6gF+G+QH5DtBxkbJhA7dIVwEItF5osdsoJpJpi6FvNnLlN1Ve9ZZ21Tsk/vHCBG1831ZSo82FV7Cyee/As8a7GFuegd/Ixfh2gbH79dw+RzNZu/YlG3QCPCRPGAbeTWUJHsCv2pBv0zypvZTSmU2oG/w0Lq7R6FtXIuNAd2GAyCxvdpV1OjlmCDNG6XvQ8zmN3oB6I0iM04I9LUEQr4+P8WCAiNajU//S7MKGF3x6xamgSMpiOS0HXUslJqx6UVfFNCfYvvUbkJdVCQvMYUCVk7R93vzB5pE/4plm3ayqaa60OdMXPLrdkFSGizkskVqOFV20TCTRyFZuIOv/6UzZ/i44A7tP39OYptpUbzZuedw38BOy9DHGoM8obmU3hlt73E+bOfM1MG3MOBfwO X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB4192.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(396003)(39860400002)(346002)(136003)(366004)(451199015)(8676002)(83380400001)(186003)(38100700002)(2616005)(6512007)(2906002)(41300700001)(8936002)(5660300002)(6486002)(478600001)(26005)(6506007)(6666004)(66476007)(66556008)(316002)(66946007)(110136005)(36756003)(86362001)(4216001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: exK4I5mE/PVWpcJVtuqlb9WX/9trotgH7bBluwISp3TwioQgX3Z9oco1EUAJ52zBlpOXS805psstVzvHraAto7QQjjOBzoSQf9ZbibCSm+Sh1imKY0ttuw6+OyK0JGeOpScnDcgyo/6YNXcJyDKk64KLFvxNjRYnHkOLuVZKFR2wVYSEJ0emc/2inkwWnGGWeh7WIHWyy0GNoVHWtnfltG52iC951TcWh1lKuDp+VF2U1aP0Nqnw/zw0lk2ew2shDA2ioFPDUg8JN7VOgptBgPe3u7FT45Zz391LKUBO3H9Zwgee9QvP6Qdw3Uy8zEct3aBZo1Rtt4/x6A956c71lwf0w2fMFitH9+fwPSIE+8sLL5Kc2Mbe/A79qwHGosM45CLIdfQdHYn46uY3yjgrcrLPP/LpA2mYPpT0U3q+csa0zg8MPsCVRtPmyIVASu2tWCxpZY3iOIQzm8YYp9U3O0kp8Z+rTSPR/PPHf4GfbZc1JGjJ2JsdYrj1WCM3nxo4HkG/RoAZtSm84MNw7QkYdwJcT9mL5TSYkqI92wRo2JCLcOEM2hJTeOUgZ5K5YENgsgmu7tTONN4YSXZ34eMbTMiWp3MUIz2OBn57PLwOQStSBNMzMtk35C3KRe+9HHZ5GHK2gam8MqhJK3mH1k7uwpoNgRc/w/b98EhNVZm2CsS5Ik/KGaY38DCDudl99wOAHE8PrAQICaBatuSFVcfX4zv9Sn7X/oDqo0kUvLTcctv/9Em7HM11kohuwMUo3Hu2AeZtSxScZITvsuTv+6YBuu+QuvDoipcXzAJVCfM8XWPLCT8lP8lQRXpnVxMvAs9pFqqZLlojjiatrnlRq/Pv7JC1WP5YeSZ+mCK24+xeOnlrNd9jTVGf+bEHbT2zmVla47jEJDcwq826BT4Xk6YlzlZm9UgFubt9qwZ1X7/6KoeYgM3b6DXWMCc3cWkGsxKwR1H7OSCInNbWsqGppKPbL5eCDDosR7YasOdENyixd50xx0p06FYgjF59rbBQkNl6fGBR2parKZujsyVcOSnKFtQEZb2PTygQr3FSVe1U2VEDz++JC0sRFN36e93ISPilosi9K9uzaFZUwW13vTjxQUsXeHzxjj2SQ3I8DilQFsIjlhpyKtJ+LiS94rthIM5QQ5P6mU8YToIBLG+0NKLJxrEmI1C10PlKsuFLrgEhXYMkz6K1CmJqi6Yng9jY1IzUZSft+jNYlUBztLN/PuIcm88s1ZLsG1tXenfDZdEHlm82LJvd/MoeV+WncJt7cuTFJ7A7Nz6tCIWIHVBnYyRjq+ULKOMkcD3r7BsN19NYZxIxznaptY6MMelUCYdrhb4GwDCpS4rqAIlX1g9KbKeEpmTREIsZ8rpM7nUkU8ld547zFM5MkvIqIItP2ZGtuwrxJJr+pMXqXEmXv/EtwnlcjdBfWu/hO3i83mIANBHfJRVbSBZ8viClFIBh4riHTNovFX6MWwL5/rKDjn4+i7vPwQaEr8pf3oZk2iNjqijS5WQnIzEhg33NgKYA5aHHCLu/HsfszTgXjyTl1oWabqWHN+nbVHOT+OJKhApGRAc2/Ps= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: b4ab48da-355c-426a-a7c5-08daa22bfb36 X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB4192.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Sep 2022 15:05:00.9709 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gJ6MlZFO9O1unN7ccBJo5kBNqDR5I6j75GBvic+Vzmq4gDnhDBEHMDaYV1Kdnsmw X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5645 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org The vfio_spapr_pci_eeh_open/release() functions are one line wrappers around an arch function. Just make them static inline and move them into vfio_pci_priv.h. This eliminates some weird exported symbols that don't need to exist. Signed-off-by: Jason Gunthorpe --- drivers/vfio/pci/vfio_pci_priv.h | 21 +++++++++++++++++++++ drivers/vfio/vfio_spapr_eeh.c | 13 ------------- include/linux/vfio.h | 11 ----------- 3 files changed, 21 insertions(+), 24 deletions(-) diff --git a/drivers/vfio/pci/vfio_pci_priv.h b/drivers/vfio/pci/vfio_pci_priv.h index 5e4fa69aee16c1..24d93b2ac9f52b 100644 --- a/drivers/vfio/pci/vfio_pci_priv.h +++ b/drivers/vfio/pci/vfio_pci_priv.h @@ -101,4 +101,25 @@ static inline bool vfio_pci_is_vga(struct pci_dev *pdev) return (pdev->class >> 8) == PCI_CLASS_DISPLAY_VGA; } +#if IS_ENABLED(CONFIG_VFIO_SPAPR_EEH) +#include +static inline void vfio_spapr_pci_eeh_open(struct pci_dev *pdev) +{ + eeh_dev_open(pdev); +} + +static inline void vfio_spapr_pci_eeh_release(struct pci_dev *pdev) +{ + eeh_dev_release(pdev); +} +#else +static inline void vfio_spapr_pci_eeh_open(struct pci_dev *pdev) +{ +} + +static inline void vfio_spapr_pci_eeh_release(struct pci_dev *pdev) +{ +} +#endif + #endif diff --git a/drivers/vfio/vfio_spapr_eeh.c b/drivers/vfio/vfio_spapr_eeh.c index 67f55ac1d459cc..c9d102aafbcd11 100644 --- a/drivers/vfio/vfio_spapr_eeh.c +++ b/drivers/vfio/vfio_spapr_eeh.c @@ -15,19 +15,6 @@ #define DRIVER_AUTHOR "Gavin Shan, IBM Corporation" #define DRIVER_DESC "VFIO IOMMU SPAPR EEH" -/* We might build address mapping here for "fast" path later */ -void vfio_spapr_pci_eeh_open(struct pci_dev *pdev) -{ - eeh_dev_open(pdev); -} -EXPORT_SYMBOL_GPL(vfio_spapr_pci_eeh_open); - -void vfio_spapr_pci_eeh_release(struct pci_dev *pdev) -{ - eeh_dev_release(pdev); -} -EXPORT_SYMBOL_GPL(vfio_spapr_pci_eeh_release); - long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, unsigned int cmd, unsigned long arg) { diff --git a/include/linux/vfio.h b/include/linux/vfio.h index ee399a768070d0..b0557e46b777a2 100644 --- a/include/linux/vfio.h +++ b/include/linux/vfio.h @@ -230,21 +230,10 @@ int vfio_set_irqs_validate_and_prepare(struct vfio_irq_set *hdr, int num_irqs, int max_irq_type, size_t *data_size); -struct pci_dev; #if IS_ENABLED(CONFIG_VFIO_SPAPR_EEH) -void vfio_spapr_pci_eeh_open(struct pci_dev *pdev); -void vfio_spapr_pci_eeh_release(struct pci_dev *pdev); long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, unsigned int cmd, unsigned long arg); #else -static inline void vfio_spapr_pci_eeh_open(struct pci_dev *pdev) -{ -} - -static inline void vfio_spapr_pci_eeh_release(struct pci_dev *pdev) -{ -} - static inline long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, unsigned int cmd, unsigned long arg) From patchwork Thu Sep 29 15:04:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Gunthorpe X-Patchwork-Id: 12994205 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4E017C433FE for ; Thu, 29 Sep 2022 15:05:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235419AbiI2PFN (ORCPT ); Thu, 29 Sep 2022 11:05:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37646 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235229AbiI2PFL (ORCPT ); Thu, 29 Sep 2022 11:05:11 -0400 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2062.outbound.protection.outlook.com [40.107.244.62]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EAAC653025 for ; Thu, 29 Sep 2022 08:05:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z+M/bYBLQGTcR+6PP+8u+xprz+q7WIkbD4dJzdQMrtA2urKKxF14AxINA+3bBAuUose8r6ja57J9ht5a9ND9TGK3BZV6MdJEvE9OOCh6ktYnbeNNwHN690dIzykBi4cdPFpvWhfx+R+Ero3UNlBZaxnd0xj5Kr20Qmz0pa+h+08khCRfIsaeJfOnNt96CaiLpjCroapH6RJRDWWBajOyXGsIBAfs73pq1T6UjU9GuK+a/hQwZqbCCU058/3kFm2ZfqEsLnPAF2QCOoXMwlQ7cI0oEswOpjZMXrSAWe6PR+6icSaugw0R9U/s0QhoAZNrH9G6KX/o2Kh5vaK5Ksh8aQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pgOlMbaga5CZsfXBvzkZoHfO8+ZGU9PmWmTPfxVSUmw=; b=oU0xntVEO/lmfqc6UrgSxIJ36M9Z9rgCPqh3eLWRnKmQ26Owz33zmxu5SoCaI2YWx15SO6jtbLTHyKliknSwU/GtZtWz8OYjetJ/ZQZgSu50jqOtfbzBEwmk0ufe8q5qJICPdCIF2LGoKUOh/2lRQDhD9IvKl8S1s5hdEqnYNJyNAf52UPL0WeGn9jEITZ3R0QQUIyoffK0uZtXIaqvwiuVWIbgt59qQXmqyeCGCFeDpcjVCffFkl62KLVbFjdoKSk88EoaoaGj9feJsW+Jm+NU7qe1pdt0hDCzTzgaRkUq2fVf79UeoJfTNvN3y2Bf310nFySZpjckl8XIOYChDhQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pgOlMbaga5CZsfXBvzkZoHfO8+ZGU9PmWmTPfxVSUmw=; b=IdGqRyMMrKd9dpErKJPnkuepjXZNfF/gHHYPKisG5C1Ba/b0In2X+LQLV8idzan3XV4YV8mPyG+9m7l4d5k71cUDS50/ZLBP4fJbBD9/ksvRSeRAqvRn6ZuW+Up0HIcjFAV/+9YKi6YGcP3+//VJqB+g3T+LGt3RhW+f6o6MoCOp78UBFl9jM/3zV1dZ5K0+cEBB5fUA0DiNY8LoriLDlkxKGnDnmBmURyMThwKYr17Xn/oL9HLqo6C5D8mudV0iW3uiS2Rv+qnyRRfAY/+rDAGmz/5U3/OH0IVL/XsRGGCOF1DL45blDTyVLE8poESvn78uhqr6HWQta3DgF2Yfyw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from MN2PR12MB4192.namprd12.prod.outlook.com (2603:10b6:208:1d5::15) by PH0PR12MB5645.namprd12.prod.outlook.com (2603:10b6:510:140::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.19; Thu, 29 Sep 2022 15:05:00 +0000 Received: from MN2PR12MB4192.namprd12.prod.outlook.com ([fe80::f0c0:3a28:55e9:e99c]) by MN2PR12MB4192.namprd12.prod.outlook.com ([fe80::f0c0:3a28:55e9:e99c%5]) with mapi id 15.20.5676.019; Thu, 29 Sep 2022 15:05:00 +0000 From: Jason Gunthorpe To: Alex Williamson , Cornelia Huck , kvm@vger.kernel.org Subject: [PATCH 2/4] vfio: Move vfio_spapr_iommu_eeh_ioctl into vfio_iommu_spapr_tce.c Date: Thu, 29 Sep 2022 12:04:56 -0300 Message-Id: <2-v1-10a2dba77915+c23-vfio_modules_jgg@nvidia.com> In-Reply-To: <0-v1-10a2dba77915+c23-vfio_modules_jgg@nvidia.com> References: X-ClientProxiedBy: MN2PR20CA0034.namprd20.prod.outlook.com (2603:10b6:208:e8::47) To MN2PR12MB4192.namprd12.prod.outlook.com (2603:10b6:208:1d5::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR12MB4192:EE_|PH0PR12MB5645:EE_ X-MS-Office365-Filtering-Correlation-Id: c0768e60-1697-4f44-2c3d-08daa22bfaaa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9W80//nwemLWuWJwsg03NduCOwqIM7WvbWTnPRr62TAH0s9ez+QMXAOs1Cst3JismRKDfPsWOmAm81Wm2sA15m/KiuEVlepqpmmqxkMIOxU7V5ilLJQNdqD9h93NZLaayyhVYtlQ2aQEiGgJwXxtdGhiNVhYRBii8wCwGaaKsQj0Ni1DiTWyZVkk326p70ujSOQzF8GALyiNsSMqbLeam8dlT1zZMSxkBOz2ZWJ8QU4I/VFTsAIbfaUR8rpUjVlSeATjj012oAAtUbhTHG2iXNihoBxzLoFW1S/WqGBVTMrBpA45cgm91hz2yTv3kgcO+NdZYd2X1xZer/7C7B5kJF0gl4pak27IqDddrUKIfuHceCOCoVRPOIYtApZQJejRSE95n8BdzjkB4fvt7J+G9kjJ2Pe0+nGeCGo/iFsfdNbAplELp+h45iqmcpCMhjp16PwQrYKlVxqe4jhQjoXdAA9RhEQ4y2Q4cKXjI27ta1EgRoe2vkC+Rr7KcvlH2cJ4OsPD5Ryn25FJeX0neKuQYyPPv6HvV0XhW8EcezKpp4aXXZdZQ4FU1bbFp3Zle3sBiIKvbNw0U1Drg7W5fygkRhTjG93WwMsEQyMeguLIQ31eXM3LeQmqfgxyhvrjSIov17ObzcU8IAJB8lzRkoB79qYxt+LXZ6AFnhQjW7Zn0RvuPYYUTtuIutjTCmwxeXukCCOsRvle9FZnLkZORe/lOsb2KKldN+U6BFzGoV3SVvD03cskXphawj57vm5Alg84 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB4192.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(396003)(39860400002)(346002)(136003)(366004)(451199015)(8676002)(83380400001)(186003)(38100700002)(2616005)(6512007)(2906002)(41300700001)(8936002)(5660300002)(6486002)(478600001)(26005)(6506007)(6666004)(66476007)(66556008)(316002)(66946007)(110136005)(36756003)(86362001)(4216001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: rKgpW2+v8bi9xIvU6dGN49ezGMRj582Cdq+VrX1qz4nTkiYSKdJ1Ndbyc73WBrhNDxrMMYy1hrcUuYvxXK4DjY2npuGKwwZANxtgwNS7yjiivLVedZjBnOpdtH6FLOCd07Q2hqt/3IDV74Xjxd2yWBF2xW9gUmgw1YlE2euPrOfhBTLyoqbIhDDYNFJcTUJv4yz/P/IcDLz7l2C8BRbTXKb8nlPaaisY0rGo9WurtSENuv3AUV1W9qiedq7CJ78bmIN+0JmtJkGv9t5pHSj7dRr70bbPtPW572+BhY4uGaI6HjsAkMrB0GGSrMQGvPAY+rd95wCeJkoxbUTn0fjGnAojpbKB/LQv8jhoDhs8odmYR+4EPQixQJYCbWryvSUGNZONkF3nRQMN/mCHlxzwCKyyou3drDtv1dLAhjCkseg5KThEUAnAigit96GrobgFWs+ZSIyf3004rM0QxxukZyi0X1a98uLXAtkG3vfJ6M1lo8rn2bhfNOnc8JCrL6rdGK+AHPv7fsaFinhaqs3CQNm02I9yPaC4LYVejEs0m6so7pMhjCYnyeNpd6qUD6Ca5oMjW5/oISVQI1fe6w6M3wd4g6VHBt0Xa4mHfyCRsulMUmOUOI77NbAZ5XbvJhKHTgXKsLsxB02K6V+u0LxeBSm15NoUAkxFwQYRgrvz2EQvu7TOvCGWlq4uo2e6oUH9AQ06TcV/cq2E+SQj6YZHm/ShT2kaX7Tf5B+r039nkrr9edCEMVx8EZm30GACBwPQ83tRueAbdeEg2GIAPfQywh/2PLsKYy6ORXzbner7JLdLdk+tWysrD1undDhTdfT+A4lDcmSx7C8kC8h0ldVapDBH3pnPCIiUKkdyFVmkNKq7D1oFMmsoyXvnuQpJWqCGusZVeRuE0d2WM38V+tE3GZZLMBc5Fs8EEQuUEnHtDoQYNBuky9NNnvaKewxm+TsmHuu2cDGtxwjIsoB8G/gt7VaZdWPjhgnK7ABVgtJLsi6QQ2b9Apz6QujZpGfAszT5faiWMDhBkV+tMpYWvdZa+DiQYt6kBUL8EqbXKSYo2iHg16rtizkOwp9D5fb9vmmVaxTvuVFjDoG/9ahzQm9rMOvHif3ubrQmDAsqcLJvjOv1mJNbJhD9WLzPh5+5aXmzG76nE6SnEj9i6lWMonwkLKF73ZtwGUhPac9ch9WbfJcfiV61n4A26Y+czDaTM/i0j97hX3fQIqFiqB3efaPZJ1ErSyaPgwwvNfDqCKtJYj9sGBKZnaRUmYPTTS0zNfwp26PkwJa8/yLCCNsTax/f+mlK5xLVW/R3s99DiRk/Tb+fvS+AQaMxiyTF3mazZpKfiYt5P+SvmSj4HYrnWS/yxoCplmKe0kDqkxOfNoiKW4bp+ko7WfTv0bK9u7TYaNaahzQ2IMXp4uc6Qa/RCwpntDEUyvrjx9rpqSF/HwTcs+rHpZAQBRfO0kq9utQ8mfXFp+YahLpII6xF3/yAoKhh+hU2RYs3ADn90X39Xwb30UG4Z3D2iNDUg+C6yerJ/9aMgLIRlkaeM2eZ9pl3BoYVk6+wUmtCbceRaf3mhdf/MZU= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: c0768e60-1697-4f44-2c3d-08daa22bfaaa X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB4192.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Sep 2022 15:05:00.0346 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NUMlag97KswDc+4j64B24+4SWygqOaHEJTIsli4P6zpTI3V1Qb2dFtLvOcQ81P+j X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5645 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org This helper function is only used to implement the ioctl for the SPAPR container, put it logically where it belongs. The PPC64 kconfig is a bit of a rats nest, but it turns out that if CONFIG_SPAPR_TCE_IOMMU is on then EEH must be too: config SPAPR_TCE_IOMMU bool "sPAPR TCE IOMMU Support" depends on PPC_POWERNV || PPC_PSERIES select IOMMU_API help Enables bits of IOMMU API required by VFIO. The iommu_ops is not implemented as it is not necessary for VFIO. config PPC_POWERNV select FORCE_PCI config PPC_PSERIES select FORCE_PCI config EEH bool depends on (PPC_POWERNV || PPC_PSERIES) && PCI default y So we don't need to worry about the fact that asm/eeh.h doesn't define enough stuff to compile vfio_spapr_iommu_eeh_ioctl() in !CONFIG_EEH. If someday someone changes the kconfig around they can also fix the ifdefs in asm/eeh.h to compile this code too. This eliminates an unnecessary module and SPAPR code in a global header. Signed-off-by: Jason Gunthorpe --- drivers/vfio/Makefile | 1 - drivers/vfio/vfio_iommu_spapr_tce.c | 75 +++++++++++++++++++++++ drivers/vfio/vfio_spapr_eeh.c | 94 ----------------------------- include/linux/vfio.h | 12 ---- 4 files changed, 75 insertions(+), 107 deletions(-) delete mode 100644 drivers/vfio/vfio_spapr_eeh.c diff --git a/drivers/vfio/Makefile b/drivers/vfio/Makefile index b693a1169286f8..50b8e8e3fb10dd 100644 --- a/drivers/vfio/Makefile +++ b/drivers/vfio/Makefile @@ -10,7 +10,6 @@ vfio-y += vfio_main.o \ obj-$(CONFIG_VFIO_VIRQFD) += vfio_virqfd.o obj-$(CONFIG_VFIO_IOMMU_TYPE1) += vfio_iommu_type1.o obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o -obj-$(CONFIG_VFIO_SPAPR_EEH) += vfio_spapr_eeh.o obj-$(CONFIG_VFIO_PCI) += pci/ obj-$(CONFIG_VFIO_PLATFORM) += platform/ obj-$(CONFIG_VFIO_MDEV) += mdev/ diff --git a/drivers/vfio/vfio_iommu_spapr_tce.c b/drivers/vfio/vfio_iommu_spapr_tce.c index 169f07ac162d9c..47a8b138cf7f6d 100644 --- a/drivers/vfio/vfio_iommu_spapr_tce.c +++ b/drivers/vfio/vfio_iommu_spapr_tce.c @@ -773,6 +773,81 @@ static long tce_iommu_create_default_window(struct tce_container *container) return ret; } +static long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, + unsigned int cmd, unsigned long arg) +{ + struct eeh_pe *pe; + struct vfio_eeh_pe_op op; + unsigned long minsz; + long ret = -EINVAL; + + if (!IS_ENABLED(CONFIG_EEH)) + return -ENOTTY; + + switch (cmd) { + case VFIO_CHECK_EXTENSION: + if (arg == VFIO_EEH) + ret = eeh_enabled() ? 1 : 0; + else + ret = 0; + break; + case VFIO_EEH_PE_OP: + pe = eeh_iommu_group_to_pe(group); + if (!pe) + return -ENODEV; + + minsz = offsetofend(struct vfio_eeh_pe_op, op); + if (copy_from_user(&op, (void __user *)arg, minsz)) + return -EFAULT; + if (op.argsz < minsz || op.flags) + return -EINVAL; + + switch (op.op) { + case VFIO_EEH_PE_DISABLE: + ret = eeh_pe_set_option(pe, EEH_OPT_DISABLE); + break; + case VFIO_EEH_PE_ENABLE: + ret = eeh_pe_set_option(pe, EEH_OPT_ENABLE); + break; + case VFIO_EEH_PE_UNFREEZE_IO: + ret = eeh_pe_set_option(pe, EEH_OPT_THAW_MMIO); + break; + case VFIO_EEH_PE_UNFREEZE_DMA: + ret = eeh_pe_set_option(pe, EEH_OPT_THAW_DMA); + break; + case VFIO_EEH_PE_GET_STATE: + ret = eeh_pe_get_state(pe); + break; + case VFIO_EEH_PE_RESET_DEACTIVATE: + ret = eeh_pe_reset(pe, EEH_RESET_DEACTIVATE, true); + break; + case VFIO_EEH_PE_RESET_HOT: + ret = eeh_pe_reset(pe, EEH_RESET_HOT, true); + break; + case VFIO_EEH_PE_RESET_FUNDAMENTAL: + ret = eeh_pe_reset(pe, EEH_RESET_FUNDAMENTAL, true); + break; + case VFIO_EEH_PE_CONFIGURE: + ret = eeh_pe_configure(pe); + break; + case VFIO_EEH_PE_INJECT_ERR: + minsz = offsetofend(struct vfio_eeh_pe_op, err.mask); + if (op.argsz < minsz) + return -EINVAL; + if (copy_from_user(&op, (void __user *)arg, minsz)) + return -EFAULT; + + ret = eeh_pe_inject_err(pe, op.err.type, op.err.func, + op.err.addr, op.err.mask); + break; + default: + ret = -EINVAL; + } + } + + return ret; +} + static long tce_iommu_ioctl(void *iommu_data, unsigned int cmd, unsigned long arg) { diff --git a/drivers/vfio/vfio_spapr_eeh.c b/drivers/vfio/vfio_spapr_eeh.c deleted file mode 100644 index c9d102aafbcd11..00000000000000 --- a/drivers/vfio/vfio_spapr_eeh.c +++ /dev/null @@ -1,94 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * EEH functionality support for VFIO devices. The feature is only - * available on sPAPR compatible platforms. - * - * Copyright Gavin Shan, IBM Corporation 2014. - */ - -#include -#include -#include -#include - -#define DRIVER_VERSION "0.1" -#define DRIVER_AUTHOR "Gavin Shan, IBM Corporation" -#define DRIVER_DESC "VFIO IOMMU SPAPR EEH" - -long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, - unsigned int cmd, unsigned long arg) -{ - struct eeh_pe *pe; - struct vfio_eeh_pe_op op; - unsigned long minsz; - long ret = -EINVAL; - - switch (cmd) { - case VFIO_CHECK_EXTENSION: - if (arg == VFIO_EEH) - ret = eeh_enabled() ? 1 : 0; - else - ret = 0; - break; - case VFIO_EEH_PE_OP: - pe = eeh_iommu_group_to_pe(group); - if (!pe) - return -ENODEV; - - minsz = offsetofend(struct vfio_eeh_pe_op, op); - if (copy_from_user(&op, (void __user *)arg, minsz)) - return -EFAULT; - if (op.argsz < minsz || op.flags) - return -EINVAL; - - switch (op.op) { - case VFIO_EEH_PE_DISABLE: - ret = eeh_pe_set_option(pe, EEH_OPT_DISABLE); - break; - case VFIO_EEH_PE_ENABLE: - ret = eeh_pe_set_option(pe, EEH_OPT_ENABLE); - break; - case VFIO_EEH_PE_UNFREEZE_IO: - ret = eeh_pe_set_option(pe, EEH_OPT_THAW_MMIO); - break; - case VFIO_EEH_PE_UNFREEZE_DMA: - ret = eeh_pe_set_option(pe, EEH_OPT_THAW_DMA); - break; - case VFIO_EEH_PE_GET_STATE: - ret = eeh_pe_get_state(pe); - break; - case VFIO_EEH_PE_RESET_DEACTIVATE: - ret = eeh_pe_reset(pe, EEH_RESET_DEACTIVATE, true); - break; - case VFIO_EEH_PE_RESET_HOT: - ret = eeh_pe_reset(pe, EEH_RESET_HOT, true); - break; - case VFIO_EEH_PE_RESET_FUNDAMENTAL: - ret = eeh_pe_reset(pe, EEH_RESET_FUNDAMENTAL, true); - break; - case VFIO_EEH_PE_CONFIGURE: - ret = eeh_pe_configure(pe); - break; - case VFIO_EEH_PE_INJECT_ERR: - minsz = offsetofend(struct vfio_eeh_pe_op, err.mask); - if (op.argsz < minsz) - return -EINVAL; - if (copy_from_user(&op, (void __user *)arg, minsz)) - return -EFAULT; - - ret = eeh_pe_inject_err(pe, op.err.type, op.err.func, - op.err.addr, op.err.mask); - break; - default: - ret = -EINVAL; - } - } - - return ret; -} -EXPORT_SYMBOL_GPL(vfio_spapr_iommu_eeh_ioctl); - -MODULE_VERSION(DRIVER_VERSION); -MODULE_LICENSE("GPL v2"); -MODULE_AUTHOR(DRIVER_AUTHOR); -MODULE_DESCRIPTION(DRIVER_DESC); diff --git a/include/linux/vfio.h b/include/linux/vfio.h index b0557e46b777a2..73bcb92179a224 100644 --- a/include/linux/vfio.h +++ b/include/linux/vfio.h @@ -230,18 +230,6 @@ int vfio_set_irqs_validate_and_prepare(struct vfio_irq_set *hdr, int num_irqs, int max_irq_type, size_t *data_size); -#if IS_ENABLED(CONFIG_VFIO_SPAPR_EEH) -long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, unsigned int cmd, - unsigned long arg); -#else -static inline long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, - unsigned int cmd, - unsigned long arg) -{ - return -ENOTTY; -} -#endif /* CONFIG_VFIO_SPAPR_EEH */ - /* * IRQfd - generic */ From patchwork Thu Sep 29 15:04:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Gunthorpe X-Patchwork-Id: 12994204 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA0E9C433FE for ; Thu, 29 Sep 2022 15:05:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234574AbiI2PFH (ORCPT ); Thu, 29 Sep 2022 11:05:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37088 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234943AbiI2PFE (ORCPT ); Thu, 29 Sep 2022 11:05:04 -0400 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2062.outbound.protection.outlook.com [40.107.244.62]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DBA8A4C604 for ; Thu, 29 Sep 2022 08:05:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N0t061wwztNxpPuWvu+zdg7mkryQiv2OiCYJuvgj9wxOikoSHCfPp44MO5q6uZPajguTRYfzPNLVquJfNUnqMa6/Xqal+lynLa8MrYbLEhtquxt9ILbQaqDzw5/ewCIDao9Zm42QMlgIhMePsAq+BMhHOVzaUpt2E2sDAfwAzWWoSYuJussX0n23w3e4UGYKgHKBO1ZVhVCojQSNnzjvgF4K8mD/6XZ4yQRIx3k7cIMY952yFB0MWQ2udqaecCHPpf9WZYJ1e1lQ0t/wTQO1koxK3qaMtEWkA+WJZddRBgK8/dFwCt7gq5p+2CZaGAhrLpuxdEUtqwv/Scm2V3p7eg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=mRDXqDHX3kVxO8OcurD/1uM6q0kYj3kVf0ZEqclkIL8=; b=XRMvU+8S+wzrIlNa/6uF7CQ8lajh0OXiKd0ou1wlVXVomjiz4F+I9dWsOwBys5oCorq2TyZDT+BjECNNBgqZ7ynSyYZ4p6TSbDBTY0PujWzJzLdaN8xc7pTFqGnDNdRw80PJYk4vmSOau4VaOHtaw1ICRF1YQfLRhKHv6YUvyxppseSxu2yvGq8K8cXHc+anoJnr2AMZN1KVjR3VWa6f0yunYtJHM1arYiI267xz+3feH5haZo1vdX8UDiJcebQJQLnXBOMtPjOiGVtum1ghUKVbSXJPIj5EGE4w9c0Ju7+4GPzoEisSuZiv7HYkMG63L8d8FGnioOQN9v2mSoz+Yg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mRDXqDHX3kVxO8OcurD/1uM6q0kYj3kVf0ZEqclkIL8=; b=d1J+rzQb+sim9xLxu1lOjdZlF/evQUxmKu1ezFcEbcnyRmDKCBT/hn9T729CFUvhWIBxcUIY+Fh3iKz2CZOhmEllBjaw0JBr29BxRjx8LX1saRwExrh2hg+DJpo7GcbreO8+gk8Zq6+qZPWRdEb+m1B8JhgOTUc/ErNB8PlV1HeoYoFwP4vO4PrFspsMP+Uc057AMDzOyWf8k68nMcTJ3j+osKBXDfxKXJG6++zaWtYNC8SJ3ap7qnuh1B9BSO74c7+qMvpgJcTFcnfGTvs569+pgLy+jz1NWjXMrHrGWyV5dspmAYkscFhim4hTnZnqB/ihZ4qFiHalEc31NcIpdw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from MN2PR12MB4192.namprd12.prod.outlook.com (2603:10b6:208:1d5::15) by PH0PR12MB5645.namprd12.prod.outlook.com (2603:10b6:510:140::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.19; Thu, 29 Sep 2022 15:05:00 +0000 Received: from MN2PR12MB4192.namprd12.prod.outlook.com ([fe80::f0c0:3a28:55e9:e99c]) by MN2PR12MB4192.namprd12.prod.outlook.com ([fe80::f0c0:3a28:55e9:e99c%5]) with mapi id 15.20.5676.019; Thu, 29 Sep 2022 15:05:00 +0000 From: Jason Gunthorpe To: Alex Williamson , Cornelia Huck , kvm@vger.kernel.org Subject: [PATCH 3/4] vfio: Remove CONFIG_VFIO_SPAPR_EEH Date: Thu, 29 Sep 2022 12:04:57 -0300 Message-Id: <3-v1-10a2dba77915+c23-vfio_modules_jgg@nvidia.com> In-Reply-To: <0-v1-10a2dba77915+c23-vfio_modules_jgg@nvidia.com> References: X-ClientProxiedBy: BL1PR13CA0120.namprd13.prod.outlook.com (2603:10b6:208:2b9::35) To MN2PR12MB4192.namprd12.prod.outlook.com (2603:10b6:208:1d5::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR12MB4192:EE_|PH0PR12MB5645:EE_ X-MS-Office365-Filtering-Correlation-Id: f662eef6-19a3-454a-2c3d-08daa22bfaaa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Sezkt+o2kgLGUbKdqs6Py4s7CC0ZKSxJCeqkfGoi7fdoYK1ey2AbazJBlZcufdXCxnJZUBtVVrejRFa1Qp03zqiB2Ut2EqOydG8g1C/bpWs1eeXSIFgOGUkMNd/o6SSSaMmFJAEqGHC5qNP4kSKhqyLQUpjB8i9RJw3772UNJL6FcHgDDBVthUY8NNCB/HflOhODexuxTPyKvGWXu06tuw/3mql3HyQIDKuiw9bkOjUwz5fyLAXCpAsYMb3jaW4cWUJ6qgISvCDYZYRn8Apb0HUFUMTrBCnZw7wux2DD/9cw/JWmkbYAXIzi1v9TNGPIZUP9vlgOQvtT6KqE5VrsuhRY6o7yj6Exsy0jUfh68rn9HIZJjOIMmehpTCojsi3o8tl3bub4oQ4okA7gAsiF0hyBvAWHoB8iKtm2ScISn7AbXFAz6TIUkXSIzV45g+8AHwdmNcku7/gKw3I0NsuF+TbHAQM22g41bQKszFpJIBN0xT7nCjY6K0fRbPEsK9hwvIojpLSKxEQKawWHD6tEA6wQwGW/1fjC/NpabrmZREO4FNOvwvdMDEePuqWHqE4QtzJfDG2aXNA/aftujuUJORRpSipdK+c9ywSh1PWwNjsZd0B2gcDuMBGlyJJkrb+ECYQYZMlDTbka+O0e9O6eaQrjgb77hRZqa+Y3YoNGxP6KRz/zGqMsH/l+uZzl9TgdzpjTof2DwQlGDvfHxGlrgmNWAxonY0I+uCHm/V5G7YBQ7vVQ2iRzitKSK/BjGkIZ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB4192.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(396003)(39860400002)(346002)(136003)(366004)(451199015)(8676002)(83380400001)(186003)(38100700002)(2616005)(6512007)(2906002)(41300700001)(8936002)(5660300002)(6486002)(478600001)(26005)(6506007)(6666004)(66476007)(66556008)(316002)(66946007)(110136005)(36756003)(86362001)(4216001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8PeHqQgZwwXz9TohmdMvSLSAI/8P+GCWJ3AJciPl/j+COGYLvBHnAkiCmYJ1DU1CO44w/c9d0OKCuOhDyyx7N8FoGlF7H508mjz1Y1QffDuBuno79hTj2TcUrKCpiD/w1MrY32gofrz5fssj1cL8vxqrYsG/aYwuAqm9l7sL318Rrxy4QtVye9Dx/pJqKS/EXuCNAGsdobxVNVfIQAnEKMamVlBZXAbsAMYPY2NJ0kU/l0RYd+Ihyf2aH9azAsqPOUrQDuEPmc7k9rMvu9L7EoOB0HRNm16aHOv7dL0oZGUa1pq+CveMbJMfFnoUKVADCMILpZvIZV6JmxyXgnofP/4WqjJzCJE8GwTq14UON9YHu9FSgLUvSpoBFz6i0vUCqflTg9IkvTtYUqf7/TJT6wLOflfeRf2YLCGEojj103FlociZyTXLjGAGQwY5RE88Y5lQ2tUnsVl3MY5I8a0UQfDqOshsmxltp61eggH/Vhgbs1OqGHfiHgbGH8o3/dUcAmodS/N+hVMu1B8nJ84rujoxRzq76Q80ZvdkO6wzD4AmWJB5eMCGZj5IOF9lMGKw8lMFXHhoeIrWH0EXCIIKPSyt9KQvZMafJA77PK/WuP1wHFTnhp/s+F9ECifnMaCsCRS6EpYFtBeNbDnZpbj9+3dfmhpm3NKu7LggvpNZx2/KjTfheJJMgvAR25rBDlICi9MqURS8tsl0R39GraN5AYrLXAvAHbc0PBmNDJzrtls+gTNdwjEL1JMpMjWoX/jz/TCTM/yo+uMshVrYNazREi2V3oYENsIZ/Ueax9tZjlmA5goyyFHKkbloVk2/RY4yC4xW5All8btm2NzQ7JwYMWjddWTja+2rx/7ZEp4LBxCsyqlE0yZYqe2Fn5Yj2FlQLJR+EycmJAofJfYYY34PcEW6EEs8eRzgdLwp+Qk3en0u2lLuxvc2MAX9ty2aBlBjLldRos6796Dv/VRuC6BP20Hv5KC6DPWTSXvWi6sCD2c8PoUQuJH6ND21Yd6NPa/2l8GwcOXB1dQuXzATigh29Hg34mLM+gSsg579O/ADp411Y/kJ0NH7WaejvUnWFjr43FYYWdEd+GAqvkheCCh6lvFqP4j8YC0b0H5qkPDe5TR6VPF/4vtAyZChF+lIsY6RTCQ95MB58p8EMoxLt5c/NsPXjAwBP1GAcwVIjdaS0vGIV6X8UFRGdziDREQ0GCqf0CR3UzmvQNto3D+inFOfbnST5Kw37LR0sGGYlNoI+i99z+mZHbIjaqPYgbrK09pO1ZBomuyueAxwHuwC2RukVexTvWAQcvW8AY3JeznDM/sRbuwr068fOyq4tlAXZzahcbkXVejCbAAW4ryrX7EY3sQX4vTGN3rEmgqSwvZY16s1+3EDQ/2sXbSFfw3vmQ7q719Lp7GB9qrEElGOTJjbG++scbEcRpTAgC6YDZq4j+q9mZilPxzR/Bsp1ZWrRaOG0zBAxTj+jS1eM5V9yCNAOtdupiHrNCel950dC9NE/+qr0Mdb+2JPSzUaD3WE8x2nYgqGBxRevnoMy5ziTkilkB8VguVrpxToylOX6TE8xQ0= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f662eef6-19a3-454a-2c3d-08daa22bfaaa X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB4192.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Sep 2022 15:05:00.0189 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RSjEC7tFybqNh71ztXN4qksiOnptH4qxgH6TFcCAbWc/aVVfJ5fonH9bd0mFkuAG X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5645 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org We don't need a kconfig symbol for this, just directly test CONFIG_EEH in the one remaining place that needs it. Signed-off-by: Jason Gunthorpe --- drivers/vfio/Kconfig | 5 ----- drivers/vfio/pci/vfio_pci_priv.h | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/vfio/Kconfig b/drivers/vfio/Kconfig index 86c381ceb9a1e9..d25b91adfd64cd 100644 --- a/drivers/vfio/Kconfig +++ b/drivers/vfio/Kconfig @@ -20,11 +20,6 @@ config VFIO_IOMMU_SPAPR_TCE depends on SPAPR_TCE_IOMMU default VFIO -config VFIO_SPAPR_EEH - tristate - depends on EEH && VFIO_IOMMU_SPAPR_TCE - default VFIO - config VFIO_VIRQFD tristate select EVENTFD diff --git a/drivers/vfio/pci/vfio_pci_priv.h b/drivers/vfio/pci/vfio_pci_priv.h index 24d93b2ac9f52b..d0fdc0b824c743 100644 --- a/drivers/vfio/pci/vfio_pci_priv.h +++ b/drivers/vfio/pci/vfio_pci_priv.h @@ -101,7 +101,7 @@ static inline bool vfio_pci_is_vga(struct pci_dev *pdev) return (pdev->class >> 8) == PCI_CLASS_DISPLAY_VGA; } -#if IS_ENABLED(CONFIG_VFIO_SPAPR_EEH) +#if IS_ENABLED(CONFIG_EEH) && IS_ENABLED(CONFIG_VFIO_IOMMU_SPAPR_TCE) #include static inline void vfio_spapr_pci_eeh_open(struct pci_dev *pdev) { From patchwork Thu Sep 29 15:04:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Gunthorpe X-Patchwork-Id: 12994207 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 582A3C43219 for ; Thu, 29 Sep 2022 15:05:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235255AbiI2PFW (ORCPT ); Thu, 29 Sep 2022 11:05:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38598 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234778AbiI2PFT (ORCPT ); Thu, 29 Sep 2022 11:05:19 -0400 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2067.outbound.protection.outlook.com [40.107.244.67]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 47B0261D94 for ; Thu, 29 Sep 2022 08:05:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PJmoMCSE5Zfsx85KPkZNna1gKWf+kRjsn+XhAOym+uPdxCy8Oy4ThL3USA2bkklY4Dr+FQCySJ5PZpe1V2Gz43QgeUEakk1QRg+Y6kFesUhRLif2FJWH8pUg6A10LAlVjDNZHR4iATFtbS8dMPyVUQy9Ir3S09PlRbekVVQW+DuhOOe1wsrHoHrTq7TQ4Reo9dsTVb23xj6e/q0f/gXt4Mz8taioQvtuQPFAf4NxMwgIev/gZcRp11JJocZkscnWZC9h4pfS0mgReJnlrA/AgrnDGFehWOc8Z+Dnt4iuy6xXbWuZMuxdr5JDBXLcTXnJpSgfKyh8KTpcvHRaogZALA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9kQRakpMlHJdXqaku+uHb5j9TPTZ2V1jrpsyj05zHtE=; b=YbYtxTz99GJ6G5KS/3e0jnJfUFMoK85m/HKYPynihuomFnwO3vmrl2eVqahVQ1bZ1bwFuHDByIv0pT5zTcAEoZzPPIXf9DoCP/vSBWF7ebq9JVrFHy8aWbbU5oLl5cqAX0BFZHxSBfvwTo8lRI10QweOSxbfb/J065wfZKQv4X71jWZt9KV/7nW4ajd5Cr9nv7ov9NDgKKp5++SsL9EOHF12V7uBiib/HluSzm9RPAXaNZ1MT6eb7aQ8l3VXUtze4kw51KQOOtfT/CwERdT9sH6uWyPaPtBMSMHGnpzoekcqDa8Q5eArKIozQliAcm4HNCNoTB/GA8WMd3hnIEP9xw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9kQRakpMlHJdXqaku+uHb5j9TPTZ2V1jrpsyj05zHtE=; b=JLcwzkJE6g469zqa4F9GTHDErDASgMqdckiUbML2Q8IcyMu0OlvjhlEkPF3VLBwt9JzybgASNVYhzqeHqgtyv6iB5QRTj4WTIDyyNqfLoH9KJ4cr7huypTd5jGXYjzCWbh0MAbHUMm4tD+NUb7v7uvzM3jC7U2u6iYVUv51zG4E8nljtPb8wiNXkQp3rDncxRs1mOhNy13vn1eZG5xpTaZyzG1hYzFeQQArdnoVpvM06Xh1vRm25kXcokiYIpm5okIgkWHO5zU4ptSDwTJYhAnel7pZFDtlI1RZBzJFVHbyKYBUqm+7W6Iub/+smoakhlJ+EIsVp4uynwKKxSoiyWQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from MN2PR12MB4192.namprd12.prod.outlook.com (2603:10b6:208:1d5::15) by PH0PR12MB5645.namprd12.prod.outlook.com (2603:10b6:510:140::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.19; Thu, 29 Sep 2022 15:05:03 +0000 Received: from MN2PR12MB4192.namprd12.prod.outlook.com ([fe80::f0c0:3a28:55e9:e99c]) by MN2PR12MB4192.namprd12.prod.outlook.com ([fe80::f0c0:3a28:55e9:e99c%5]) with mapi id 15.20.5676.019; Thu, 29 Sep 2022 15:05:02 +0000 From: Jason Gunthorpe To: Alex Williamson , Cornelia Huck , kvm@vger.kernel.org Subject: [PATCH 4/4] vfio: Fold vfio_virqfd.ko into vfio.ko Date: Thu, 29 Sep 2022 12:04:58 -0300 Message-Id: <4-v1-10a2dba77915+c23-vfio_modules_jgg@nvidia.com> In-Reply-To: <0-v1-10a2dba77915+c23-vfio_modules_jgg@nvidia.com> References: X-ClientProxiedBy: BL0PR02CA0070.namprd02.prod.outlook.com (2603:10b6:207:3d::47) To MN2PR12MB4192.namprd12.prod.outlook.com (2603:10b6:208:1d5::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR12MB4192:EE_|PH0PR12MB5645:EE_ X-MS-Office365-Filtering-Correlation-Id: 06665632-260d-45e3-ce77-08daa22bfb3d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: btuzEe/6mh5haVNSmhfT8WKTYDnfA+fITkolI2tpk33mUxv/Ye7LBeLFiw51rcd1wi8mbqgCXRkQ1cy5ojoHAwfUZolVgjfK9caWzLnxu43HaLvrNcjerD2/L7xbXB+2PMg0ZTiaosm8ORnTMEPI0Aw3IjcXYVskT1opIQ4DVSPw0QMEXCCC76FGGPV6rPvKt15w88LDSw1VZHMuUSJTN+p/V1TFjHbLcZRD299oMDEpeTGZUCiYLE9eM3ftguXmfPpsc5UVhsu9jIOiOcPB8s6eKBlFnsOUmYeKaAeQ6Mj/IpO8COO+lLv1sfGXqTE0JpZ+HvcSJhggdjYQWemZSkYmo6I+rIi6RHKpxbGVAON2YV/RY+OrbwlgZuN+cfQTRO2NkY67t3Uj0doisqN8uYRMfuG7aQHPTH3wyHTZa22Ol3beXYsLvP0dur/wU4vYHQAZz0n9fNaeqGrEOTLP+tis/K/6M3yfT+97KXzhnKPh/XJHFBCuS9U414M4W/Q+rtX9hKNWR8NWZO42Ty00VOSpTBDSrxy6wlOrAQ5mSOE7H2OHSwuF65ebflb9SI7sR41aIfKUOq3qYoP42CgpnAYTaGEcywDuhFsvxtFlvrk1Iwa4j8DRLYlXa1yp9crlcd+Yx5s80ckgAxk3IMpPZg+IE72xMx+BCMQSAcfZWEdmPEB6pMyj5LzcAQu88EFtBom+IV5ilBTMlgwq32MQBcwIyjyypzoj7dfPMngPfpA4IT1y6D/5tJuDrAICl00Z X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB4192.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(396003)(39860400002)(346002)(136003)(366004)(451199015)(8676002)(83380400001)(186003)(38100700002)(2616005)(6512007)(2906002)(41300700001)(8936002)(5660300002)(6486002)(478600001)(26005)(6506007)(6666004)(66476007)(66556008)(316002)(66946007)(110136005)(36756003)(86362001)(4216001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: OTVq5PUxROg/ThHoLQG1bdk21dEBH+mSKjFPWDK9246dVwTsyAbPjkad55NjxoUkQDtZq/mbCL+rYTgSZkItbS22u86ZIS2lakhp8tcCefnX2R96XxbBoMcx0Lpk21fgPp5YM3TqegpgD/H+cHMTrAP4smYU9pfyAov+ooq8yZZmot9beuHHdyaI+7kzinsk7lv6TXFpYEIjWN264kzp8VIYOC7E2Be5F0QTBarOU2gY0NIwaV86Rz3/0HGd+cEzk3gJEE5wz7AHG0zm9YdIjoZiLd7c7L5QXr7k7zC8qyFT4fK7JmOmcYG9ua1TnQsFsn+ISiK8UjkGkUdj/yVcUbJ2agCkyQiHiSLoYKRR6v3NFsvLZe3UHxMj8aUyEMV7DhYu9YO0lv+MjRlDCMVLs8qoO4mtHa55nsmPXiKvSem8viDdAim9QUKEZeUMEBY9tmJlvfz4MCj2xhTuqkTZJAGM3/REzHu8fxa5dE0PL0A7mEnfQhYe6+hr73kSrOuzXB7ccQRVMNjHc6if62eK+bb1LfMIQn+TJAMzcQAmASrDJxnbETNgl8qE5b/h0snagHwzIB8bYfhC9EJxT+Dt7PmS14U5MaxdJwJ8/d6i4x1vKHGQ80vuJcQd5uESjRIUCvY7AgOaeSB419eg2QTSQqhSMjRVtEK99R3XpG03/AH8nBIOvCd1uFHODudgOQUgb+0Vng75hbpvdNyYQDnCFAul7j0hJ44jy2pV/AXF06zrcwr4+RvblyVUFNIVF/82eHgzSRdN/XjGfToxG4eeflg3WBC9JtlHkIUj1EfOyBtuZA9BBgTZ24erVdT4T2+ZwtfWYwq6knCT0ywLIvOOd4oGKF9+6p5U9Px5Ec6Fj8djQMCwdZn0dvP5X+DEE1weehLwAoG7Mogmlyk/fa1zm6nND0Fvk6Q3eNzHXlWziqXL0GQeU0o+mjGCl9HD07SlANBycdRwregX3a7RHbawsW+3bmc770kfpMfEqfvbDqnyqlSMrOUFHrtYzKg5sjhEwK58dl6nUTaMkVGdLRVj5+5Q0CgxJ0sZcUHiiJIRsPBK961sW61ohv4z+Jif0a2kalCCIMkJKarsiKWy7hiaCERvw9KLon2NmM61ilyz0iLZ4nfv1UfxVXBqBS7vv3brCwgE86jOgZ7Ciz9lgAjitQxWZkxchywYlntPJ4hMqC5yIbb7wi4JH8sFn56Z4yIsmpy0lqh3w7tT+CHzcb6LSikRUgLtWP5iUp808W0NXlmVS04UndvevbazrBMO6hgPwVeigAv/16A7NWti+/TV10OXQiRgAf8KBMH9zTi3RKmgiD+ZS7oyk4m4hoa9HWcFTqfbu2t4hgGXW3PfVts8mEGKr4uuyrWz3Lb99k86FvxtIyCuEoycDMeDCn4NxCg0HEXQTY9z5KceJUJX+TalGZ/kFv3+ZEVgHadBs7oCzz5yYcscrKzn5ez3LF50eijYsJkKETRZN9sPkCDOysJ0/JnPAOOA+U8vsO9yHCzvbMXhHdYvWukPJOSwzFYumh8yui20YiEHx/M9u54B4jPDDsZxOi4J9RPkpIgrjkHUqMA= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 06665632-260d-45e3-ce77-08daa22bfb3d X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB4192.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Sep 2022 15:05:01.0333 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: FXrWat16Wm5VC2EjG84i3WSrlE/BDLjeq/2rGegVbItPiHncP9pddK2gY+wZyufw X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5645 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org This is only 1.8k, putting it in its own module is going to waste more space rounding up to a PAGE_SIZE than it is worth. Put it in the main vfio.ko module now that kbuild can support multiple .c files. Signed-off-by: Jason Gunthorpe --- drivers/vfio/Makefile | 4 +--- drivers/vfio/vfio.h | 3 +++ drivers/vfio/vfio_main.c | 7 +++++++ drivers/vfio/virqfd.c | 16 ++-------------- 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/drivers/vfio/Makefile b/drivers/vfio/Makefile index 50b8e8e3fb10dd..0721ed4831c92f 100644 --- a/drivers/vfio/Makefile +++ b/drivers/vfio/Makefile @@ -1,13 +1,11 @@ # SPDX-License-Identifier: GPL-2.0 -vfio_virqfd-y := virqfd.o - obj-$(CONFIG_VFIO) += vfio.o vfio-y += vfio_main.o \ iova_bitmap.o \ container.o +vfio-$(CONFIG_VFIO_VIRQFD) += virqfd.o -obj-$(CONFIG_VFIO_VIRQFD) += vfio_virqfd.o obj-$(CONFIG_VFIO_IOMMU_TYPE1) += vfio_iommu_type1.o obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o obj-$(CONFIG_VFIO_PCI) += pci/ diff --git a/drivers/vfio/vfio.h b/drivers/vfio/vfio.h index 4a1bac1359a952..038b5f5c8f163d 100644 --- a/drivers/vfio/vfio.h +++ b/drivers/vfio/vfio.h @@ -125,6 +125,9 @@ long vfio_container_ioctl_check_extension(struct vfio_container *container, int __init vfio_container_init(void); void vfio_container_cleanup(void); +int __init vfio_virqfd_init(void); +void vfio_virqfd_exit(void); + #ifdef CONFIG_VFIO_NOIOMMU extern bool vfio_noiommu __read_mostly; #else diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c index 9207e6c0e3cb26..9b1e5fd5f7b73c 100644 --- a/drivers/vfio/vfio_main.c +++ b/drivers/vfio/vfio_main.c @@ -1777,6 +1777,10 @@ static int __init vfio_init(void) if (ret) return ret; + ret = vfio_virqfd_init(); + if (ret) + goto err_virqfd; + /* /dev/vfio/$GROUP */ vfio.class = class_create(THIS_MODULE, "vfio"); if (IS_ERR(vfio.class)) { @@ -1807,6 +1811,8 @@ static int __init vfio_init(void) class_destroy(vfio.class); vfio.class = NULL; err_group_class: + vfio_virqfd_exit(); +err_virqfd: vfio_container_cleanup(); return ret; } @@ -1821,6 +1827,7 @@ static void __exit vfio_cleanup(void) class_destroy(vfio.device_class); vfio.device_class = NULL; class_destroy(vfio.class); + vfio_virqfd_exit(); vfio_container_cleanup(); vfio.class = NULL; xa_destroy(&vfio_device_set_xa); diff --git a/drivers/vfio/virqfd.c b/drivers/vfio/virqfd.c index 414e98d82b02e5..0ff3c1519df0bd 100644 --- a/drivers/vfio/virqfd.c +++ b/drivers/vfio/virqfd.c @@ -13,14 +13,10 @@ #include #include -#define DRIVER_VERSION "0.1" -#define DRIVER_AUTHOR "Alex Williamson " -#define DRIVER_DESC "IRQFD support for VFIO bus drivers" - static struct workqueue_struct *vfio_irqfd_cleanup_wq; static DEFINE_SPINLOCK(virqfd_lock); -static int __init vfio_virqfd_init(void) +int __init vfio_virqfd_init(void) { vfio_irqfd_cleanup_wq = create_singlethread_workqueue("vfio-irqfd-cleanup"); @@ -30,7 +26,7 @@ static int __init vfio_virqfd_init(void) return 0; } -static void __exit vfio_virqfd_exit(void) +void vfio_virqfd_exit(void) { destroy_workqueue(vfio_irqfd_cleanup_wq); } @@ -216,11 +212,3 @@ void vfio_virqfd_disable(struct virqfd **pvirqfd) flush_workqueue(vfio_irqfd_cleanup_wq); } EXPORT_SYMBOL_GPL(vfio_virqfd_disable); - -module_init(vfio_virqfd_init); -module_exit(vfio_virqfd_exit); - -MODULE_VERSION(DRIVER_VERSION); -MODULE_LICENSE("GPL v2"); -MODULE_AUTHOR(DRIVER_AUTHOR); -MODULE_DESCRIPTION(DRIVER_DESC);