From patchwork Mon Jul 25 09:32:01 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 9245499 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 56685607FD for ; Mon, 25 Jul 2016 09:36:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 453F626E5D for ; Mon, 25 Jul 2016 09:36:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3987B2711E; Mon, 25 Jul 2016 09:36:18 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8CAEE26E5D for ; Mon, 25 Jul 2016 09:36:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752843AbcGYJdL (ORCPT ); Mon, 25 Jul 2016 05:33:11 -0400 Received: from mail-sn1nam01on0076.outbound.protection.outlook.com ([104.47.32.76]:16256 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752746AbcGYJcu (ORCPT ); Mon, 25 Jul 2016 05:32:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=prL2jCKniz4sJgAopv60L11lNX4aqn8RlQERFOQgvbA=; b=oPXeh1uFKbV3NZlbljxxyeteNC+5IUV2NGSALEFunmhOs2b26F2FTlxlCxYM0m8BkG0K8mKrBNuUpKJeUGbbHioGIMYf52qNRKoD8x37uyviC3FCv5zIRRowcVe3iVEd0A35B7gMCBCjNfvgIcX98skZuV9wV0HVGfkztWrm7Os= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; Received: from localhost.localdomain (114.109.128.54) by BLUPR12MB0434.namprd12.prod.outlook.com (10.162.92.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.549.15; Mon, 25 Jul 2016 09:32:37 +0000 From: Suravee Suthikulpanit To: , , , CC: , , , Suravee Suthikulpanit , Suravee Suthikulpanit Subject: [PART2 PATCH v5 02/12] iommu/amd: Move and introduce new IRTE-related unions and structures Date: Mon, 25 Jul 2016 04:32:01 -0500 Message-ID: <1469439131-11308-3-git-send-email-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1469439131-11308-1-git-send-email-suravee.suthikulpanit@amd.com> References: <1469439131-11308-1-git-send-email-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 X-Originating-IP: [114.109.128.54] X-ClientProxiedBy: SG2PR06CA0066.apcprd06.prod.outlook.com (10.167.73.162) To BLUPR12MB0434.namprd12.prod.outlook.com (10.162.92.14) X-MS-Office365-Filtering-Correlation-Id: 71a7e4bb-f255-4fc9-4b04-08d3b46ea2ac X-Microsoft-Exchange-Diagnostics: 1; BLUPR12MB0434; 2:dKGRdFVPEe0ttzpEroCyHHyBL0K28VUlRR3c6WroHLYmOGxumAS/JBZMwqMSNAWp/OH6viOiRVyzQnYPoVEpt6VmosHAzZJmu8iAc7Ev3+K1sixR+wOpV3ZfyVL5LeWsp2wZ8Tk0gF/yNL76C5DrlwgVdpmqPFtLA9kiTl19Z8BNd9bCKlRZs2Jqf9Z42WT0; 3:Q7nQ3pjG+IUS2avcEdN1iiWtr+T+mnPRVWMn3/Uq21L46B3QQByx4MIi6eLJUrPmZagPWQDSVTrc8QquGBaOe+ifeLsApcG9Axz5KEFLD7woD70vbZFQr9tEoDVX+qV4 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0434; X-Microsoft-Exchange-Diagnostics: 1; BLUPR12MB0434; 25:pkMDvmwVb4G4Ya21Iw6NsSYII/mEF/vOxLoWdgQ0aZ+is6cY9kelq3pnGhSOz1Khoz19CDX7To0cLXGG3zpTAFrpAiICJTjBpIoY9wc2jmsNbh+TTrP8+KNDnYu6LP8c/pVqQh4cHvjkNSQzRRb611ralu9rvAvIKuNXCzmiVCQia+HuiXO4audOyFs31NW6jDTa1/5LIRbs1dhWSzKBbY+ynn6g29Jlf6Yhj31BHcChUb/+y8RF+yMHHVZ6UcrlGiDG3BYTgIv3PCOLHFE632a+dGYWdRGYJ2z7uw2xrwvAIAnxAQFmP7LeGVOnPlqX2qR/tamrMgGtNr/YBAWC5+ap2KXLnfAaVaZJv2hMfvRparr9sBgHlVHkidWppnQ3sjUf4/5/KGq6CFS2jAAgWBridq1KF/FCvsmQ/1npd1PFWnlBbBoCvaRrC2qS1jyZowHoRcEY7SfRwdJjkOepBpGckckMxKcep5O8XTVuODvgh21FQuhijeL+Agiw4P/DQgvFg6aRjByuUvI9xKo8iMl0TTtTB3AJCSYvVWeT7d+ejRwsH9flgxSyKyX6g2jFPVR8UIcHGAz7VuezuS/01cxCGsvSxwgtwIaJzaWsRj/TRV3WD31mzaAWIEAwFMofXeGCXkB2XsqpQEXkbcAlDZCusR03TtaPvjlFYJtM6BRFCGGk3n28NBzbe/Bftq+dA64tqHr+CaCGSvAnEBcAJSOBGNYMPsR5jKJYxGuBZghDEVrsAreZVht5WI0W1jYB X-Microsoft-Exchange-Diagnostics: 1; BLUPR12MB0434; 31:LQF1TZccVVFusAnau6mjmRUHPMuGSEJll2E1FOyHGMQZzLeVg/655o+iFZx7393iD4gg4l5+2kC+VGBRQi1MD7YmEEd8K0ZeFiKy1vha4OrlMMP4x7qTfXb36dYt7Be8yGKbRxz34JH1HfhT3kX1cZqmKzIygqb4GQc+ZN2rgQ73r3zfWkHq8vXdBIyqctKc9846QhCEaaviZhuCtKAGCw==; 20:evjmABH3QhxkIfXZ/WzP4cJeavVN2lDYrUjxs1RZX/NbSR6zUwz/fC0IlkO9yAaeo8LGgrb9rfyGEUnpG43OrRxJJdktSmKmzxqr/LU+vuZ7Zz/0WxwbQNThFDogqxGegz4FuLsv45vDqeqV1suMoeAWf2HSQfKg2A1H9VXX7XRMIXAIs1TAfPzahr5e4M6OHXLF1dpIFK//U1xzi5XubhklI5t9nKisS75A3wUU0NXlIvNA83G0ohm04Vbsb4rwePObfHVKhkSbTs8s2OzkWe5tFUdtduNlKptWa2sJ6a3iBASuHnm7w0+4N4n+VMmP0nrFZUdq+WxYidJ05061X/2JTlOG6nCbNPa5lyQpVN3T1HIlqRgc055aZs4y6O6qdq+XxcF8k9G7XqTrpkk6WhmrANN0GQu8x3F8MwoLgdpXiw5B/BKWGQ6t/328khgeE/qQ1r+V3aAZXL/c4Z+qH0UdxIaIcsDT+jM8r7UqwviIib8hbom2hWDywlkblpBu X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026); SRVR:BLUPR12MB0434; BCL:0; PCL:0; RULEID:; SRVR:BLUPR12MB0434; X-Microsoft-Exchange-Diagnostics: 1; BLUPR12MB0434; 4:dviGpWdMLCIS28uZVZMvWrID4sgPoKrdPt4NFXhOnkhNSZ9jepq4g/1pVGz9CU1lB3O3e/tU1bUzWDWAvT455NBtecW9XBu9HngZyZFozCrFJPd4eaiOirHDLQLIS87nxhwEWrGrzGUF396cpE7kHO6lmPQ8wIxQ71UIrbWRBd5IUU+B4zXzX5TMbZcVmlXut5NZ8rMFaNOVyCjWNGiZi5G/A9oj1phBmzyyrxwH80hjhGuZHDqg7tvAJkWXASkM8f9A71y1TJMJIC5ENhdZAc5p3TetZfioXaaJ1R98imzdvVFqRuZpJfxxQBKePOYG6g/BJ6cQXRgMv83yxZuUU+2fGRHgKIkVueKi08ue8AcyYI+TM5XBRLtLs3xLp13xghVag5S0bx6Sr0FzasCMLOUBjQ1iEArzPU3evD3CCgqG3r1l52PTcYk/NeqLu0Rr X-Forefront-PRVS: 0014E2CF50 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(979002)(6069001)(6009001)(7916002)(189002)(199003)(77096005)(229853001)(50986999)(76176999)(586003)(48376002)(105586002)(19580405001)(81156014)(81166006)(8676002)(97736004)(4326007)(42186005)(5001770100001)(189998001)(2906002)(50226002)(19580395003)(50466002)(7846002)(66066001)(5003940100001)(68736007)(92566002)(86362001)(101416001)(7736002)(305945005)(3846002)(6116002)(2950100001)(106356001)(47776003)(36756003)(33646002)(2201001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR12MB0434; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR12MB0434; 23:S72/gC3vMjdIZRqJr/znA59dE1CO/GpuUb3E3AZnl?= =?us-ascii?Q?GGy9wbxZDdTWtPNCEP13StSvqLSM7kNKFmk5gR2VqvSZp7j45S2LBv5GD8CY?= =?us-ascii?Q?sZvt5wgbKc+A7jriIPLE8UNIUMR/4nS+yhyw/EV+P2vx9gzJqVOBw4utH6cM?= =?us-ascii?Q?geMvn/Set0UEI/+vpoXVT/og0Dvp1NBHKN8nW9ntIqndPLzbZmgXxhzdRoar?= =?us-ascii?Q?neStk+Xk2H3W/xJtpVdkFmDonaLP1YtcEptlkPv+cYtQBoGc0SBUUgY0qHUD?= =?us-ascii?Q?ywYeDRyVIK6oOde/optEaQAr/iv4XAUIhUz55uAkm8cTGkX26k3xg2pqAWet?= =?us-ascii?Q?f882u2sKnMDV03XGSDeSZlhhi5D77SPoNevmR5KnQJYr6JOmYNcfqhSxfR3N?= =?us-ascii?Q?IAFpPex0F6RBYxrBao+19MmoERbXzuqgpx6MD1e4ZdT+raRMow7vbi5jNd4B?= =?us-ascii?Q?fKQHmrhEIu6aKll3303ChYfvUmRDst/skFZTXRJipUjjaszT44+u+Vey5bKW?= =?us-ascii?Q?ABMvf1HEBbVdAf5z4i+37A2ja78SwRF1gZUZQx1PjK4Wu2Dg351JTm1csHvg?= =?us-ascii?Q?nM3+BMFAevLCR28jJAcu9J8V8L9IVJnd/p8LXZOpbgchUg5WMW7/pphyinbs?= =?us-ascii?Q?Odgc6DUZhrwtAgLoc1nPYyzoVEIE+hpZrsSAEX2wpbkTWeCapi0vAmJjJJDp?= =?us-ascii?Q?j59eqoRl7w8sXbjHFmOCJjS5csze3xS60pLG7wt8ruKXs10A7v1d0c0+E/35?= =?us-ascii?Q?NN2WYk/PNyP+uzJqNn6p+srWK7HupmfA/wJ3A+l/e6J17gRSt+hfZ3K99Mvy?= =?us-ascii?Q?hPCG7+R3WH9YvWA8WZp/y05lOWAlQZNQo6fvlGfEUqYkM3j+FNxRr2FwuqTB?= =?us-ascii?Q?bkQefrEC3vXtikz8AQ96pLuHOB4ULA699kDkxnPy/8076x1aTxo4HW01tH/y?= =?us-ascii?Q?3sZJzefxEAamXcDlMLirb1hcZJveQaTS6R0bm9TWK1H0giZrDf9Z3Ryg9MKl?= =?us-ascii?Q?1Dzbx8bRrbIWrcrbBP4AQbkf7pwpMh6P12LwncZBBtiqa8iAvY046kAiOUsN?= =?us-ascii?Q?4rwCWcaB3uGcAGP1m/gYScNxihraoze9OLwUpKepowF2PuhQFSAB8hzHtSS5?= =?us-ascii?Q?pkWWjqWnWO2KLZ1S2nkRVRpwuTqngHPsUub/WUIvx6QMOqPWhedpFBmzNdw1?= =?us-ascii?Q?xxGDaccsBDjB5U=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR12MB0434; 6:LhSdHABVfmi3FM2i9U3P5bblx2DqEegrWQ1a0tYokzCSKhbCRC1nexfquS2KQjrLdIfvop3H0zd8s93E/VkEiAkhsLEJmeQ0U4JDVrRM12ooW6kXA0udN7z3y+/rEJaUtOsML2yIEtaM9V+pvX9btRgXwsVSwLrLJBd1vALYEhg+1/5BfaihZfD/nfwuk4CaE3aX7tGCZEqnbCOIOiOJ9hA1Pan1dSpgPTmZpBy6e7hzX4h7uFXepahEbdg+QF36oIPGe7VZ+HdM4y7wSI07pAUy0TzXxJtAZw1B9QMW4CVFZqj7WiPA6WrWeZJDOG60tFGETnzL2ySc4hpZZJI+Uw==; 5:m3JoqpWeVEc0T4CQZjWhgac35PsFRBPzwsg6PcvFwVwa9zvoURoTjO2CEf9Sb8uNyzcmi/gLgpV/eKrnBx1M4nChwBrAwmvXK+tbVCJmf1wQuWD11+OhCnxXnAc3Yw4+1ExfyDGNy6oh5MFlsuUbkQ==; 24:T2lVCSMZd7UM9Mb0yvNp84IVEnQOTKuD22Ysg96ANYc68Spv7fZXgMPN3Ra9pnppAguC3jlhcRUiq21RPUoV4MRfV+KPjDaIdXjSt3OTmhM=; 7:aUc0PpE3WZW2ZnvudnO5YaBeWfwdZBjytGTpBkjrpszMtXY7Kl5uhs3x/5OydryRiSJXNZL1Fo8uu7HkwSy2oGr2WWol+XM9Pc4tVApRNEfZlVQU5ccKuMk176eY878NPHvqV6oKOdXpTchEB5gHp97admKckxRYyapbqakjA6qwCpBSpUL3y0Rm2+6d+C3vGxLrFDtzOrk03xECVForwX9WMpgbQJxaz8XGeep7iCCtvB4Cst72MHSiCFTI24o9 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR12MB0434; 20:D9EZ4P7OBF4Rvo+P2VfKtIjYF4jXxPloU8Eygt04OYaxLBBa9I59hQjugG8NJoac8jEjOMb0WRnd2M4LsmquEew0vUUBZ+w/u3ujmg6763WlUnVufvYjAVVBIsOVyTr+Q191q8oxkJlN2zx3TYylQIMhisjDeHptQdwYP0Azjt1/QC4O6emlkyTZoloMKBwhyd6gxQAIe1EZnY/f+r7Bjn2LZfytaVYWItWLNFSMgW1KkMejMBN9HX9Dqwg8zRiY X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jul 2016 09:32:37.6908 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR12MB0434 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Suravee Suthikulpanit Move existing unions and structs for accessing/managing IRTE to a proper header file. This is mainly to simplify variable declarations in subsequent patches. Besides, this patch also introduces new struct irte_ga for the new 128-bit IRTE format. Signed-off-by: Suravee Suthikulpanit --- drivers/iommu/amd_iommu.c | 28 --------------- drivers/iommu/amd_iommu_types.h | 78 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 28 deletions(-) diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index 634f636..ac2962f 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -3693,34 +3693,6 @@ EXPORT_SYMBOL(amd_iommu_device_info); * *****************************************************************************/ -union irte { - u32 val; - struct { - u32 valid : 1, - no_fault : 1, - int_type : 3, - rq_eoi : 1, - dm : 1, - rsvd_1 : 1, - destination : 8, - vector : 8, - rsvd_2 : 8; - } fields; -}; - -struct irq_2_irte { - u16 devid; /* Device ID for IRTE table */ - u16 index; /* Index into IRTE table*/ -}; - -struct amd_ir_data { - struct irq_2_irte irq_2_irte; - union irte irte_entry; - union { - struct msi_msg msi_entry; - }; -}; - static struct irq_chip amd_ir_chip; #define DTE_IRQ_PHYS_ADDR_MASK (((1ULL << 45)-1) << 6) diff --git a/drivers/iommu/amd_iommu_types.h b/drivers/iommu/amd_iommu_types.h index 25f939b..d9227a9 100644 --- a/drivers/iommu/amd_iommu_types.h +++ b/drivers/iommu/amd_iommu_types.h @@ -22,6 +22,7 @@ #include #include +#include #include #include #include @@ -706,4 +707,81 @@ enum amd_iommu_intr_mode_type { x == AMD_IOMMU_GUEST_IR_LEGACY_GA) #define AMD_IOMMU_GUEST_IR_VAPIC(x) (x == AMD_IOMMU_GUEST_IR_VAPIC) + +union irte { + u32 val; + struct { + u32 valid : 1, + no_fault : 1, + int_type : 3, + rq_eoi : 1, + dm : 1, + rsvd_1 : 1, + destination : 8, + vector : 8, + rsvd_2 : 8; + } fields; +}; + +union irte_ga_lo { + u64 val; + + /* For int remapping */ + struct { + u64 valid : 1, + no_fault : 1, + /* ------ */ + int_type : 3, + rq_eoi : 1, + dm : 1, + /* ------ */ + guest_mode : 1, + destination : 8, + rsvd : 48; + } fields_remap; + + /* For guest vAPIC */ + struct { + u64 valid : 1, + no_fault : 1, + /* ------ */ + ga_log_intr : 1, + rsvd1 : 3, + is_run : 1, + /* ------ */ + guest_mode : 1, + destination : 8, + rsvd2 : 16, + ga_tag : 32; + } fields_vapic; +}; + +union irte_ga_hi { + u64 val; + struct { + u64 vector : 8, + rsvd_1 : 4, + ga_root_ptr : 40, + rsvd_2 : 12; + } fields; +}; + +struct irte_ga { + union irte_ga_lo lo; + union irte_ga_hi hi; +}; + +struct irq_2_irte { + u16 devid; /* Device ID for IRTE table */ + u16 index; /* Index into IRTE table*/ +}; + +struct amd_ir_data { + struct irq_2_irte irq_2_irte; + union irte irte_entry; + union { + struct msi_msg msi_entry; + }; +}; + #endif /* _ASM_X86_AMD_IOMMU_TYPES_H */