From patchwork Mon Jul 11 10:11:30 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 9223185 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 62C38604DB for ; Mon, 11 Jul 2016 10:12:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5244424EE5 for ; Mon, 11 Jul 2016 10:12:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 463B027BEE; Mon, 11 Jul 2016 10:12:55 +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 A6C1E24EE5 for ; Mon, 11 Jul 2016 10:12:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758200AbcGKKMg (ORCPT ); Mon, 11 Jul 2016 06:12:36 -0400 Received: from mail-dm3nam03on0083.outbound.protection.outlook.com ([104.47.41.83]:31861 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753931AbcGKKMc (ORCPT ); Mon, 11 Jul 2016 06:12:32 -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=s/H1EJXAIA0PkIHDUDbePnukt63IJS1Hg0b9VXzUqnCDWu1XRAQV4IaGuv1VtMSGIQqvIW7P9VcbGFTLOnnCIGQCsw9GNp9gmuGoYI98ieTLALe8wX7QrjPoBDxSs2l4LKHPcLsuwbcu2IU62nklDsycgocjlD6YCIhX2mfrC6E= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; Received: from localhost.localdomain (124.121.8.20) by CY1PR12MB0444.namprd12.prod.outlook.com (10.163.91.22) with Microsoft SMTP Server (TLS) id 15.1.534.14; Mon, 11 Jul 2016 10:12:16 +0000 From: Suravee Suthikulpanit To: , , , CC: , , , Suravee Suthikulpanit , Suravee Suthikulpanit Subject: [PART2 PATCH v3 02/11] iommu/amd: Move and introduce new IRTE-related unions and structures Date: Mon, 11 Jul 2016 05:11:30 -0500 Message-ID: <1468231899-6987-3-git-send-email-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1468231899-6987-1-git-send-email-suravee.suthikulpanit@amd.com> References: <1468231899-6987-1-git-send-email-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 X-Originating-IP: [124.121.8.20] X-ClientProxiedBy: SG2PR03CA0026.apcprd03.prod.outlook.com (10.160.233.36) To CY1PR12MB0444.namprd12.prod.outlook.com (10.163.91.22) X-MS-Office365-Filtering-Correlation-Id: 400d0803-eecd-48a8-ce63-08d3a973dacd X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0444; 2:zBZVz/rCQoTuXRNVYLnXikdkTXJGGBM0loJKq4arJajPIFlhRABK03hmRNa/pTVIQMpX8N1y6gr5ijeAWW7RRSj9VSjUGeHm2DWdlJtKeTCfDkWZA+PygRzbq6MRgjk348RtIyIkTZ2JjvERNLF69GwuF7pF7i/RZ0MSG+GAZ4Z3fw9XWFGAchpGFe4yB++1; 3:TGp19n6VaOMaT0lAQAgtqubJQuun0pCupQPBzLcdkTz+QQawgZrIWi51e0ehDkRSbFUlEXOp+KjPy9hVQALvJDYEKh41uBu+Fqok6N3HzhIooBN+8AbI1ubwPCy6yItH X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0444; X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0444; 25:VLm2yY8yrQLq4LuIgOIZwnEg+/TlrQYX3pGrm9kw8wmV7ADrl8Yxf+3hiwWrytLQZPtEb/dWycRajTKNx4hok6BqjfFnwibKloNPEtsStyO41rgNXN9O6iAFfDMiKBRBJAvU0JxyE0DKcHUoDEJd9FtH6BgBA38S5QQFZWXjGPZByQdBlyuZUq9Lnd7cH7eHjVMMK27LLpJs5CGHS0inomNGFdjzzLOh5YDJlifpoY6T4ikrzGMGHSpbMXVFfrwsDCt6RdqPEik8ZWEgY31ndHuoHGYtOeXtZe7T1GcQlcWxmx0y6hv6UERfQm67I7JQUck4p5KvWeV1In4MWpgxkRj8/mCtlXypmaUdJhIq2Hhswov+oPSAf569X01QXhWe2q6NMR+wgp09DrCNoB0JGWOhiUzReQK+Co0d+qHTCzoWx/C00xsr1Hta2yFD2o7oYEbvWYmj9o38QiGmQkB0fC+fxdGI/uJ7swwRtJtIxQr6y/76bB0TYbS0p2cHGnOEaXqT+aeJr7TT0Vek5vfWAQgI5rHhdSKUIFS/622iffbmKD1dSlQUNgMZwWxHybxAbnC6hP+3Ehm79kYgKjTq4LCRJWKPcUWBWI/10ptcMcLHOURVzrsUJJmKagzySUFdC1M002FOjlmDsDsElTWSYmO53DpvOwBFKeeDLkxmuQ1WWR/JidJA3yYB/W4I+2IvTQoGOxD/B5lLiNsf7bmswYFHFv6CKWAKXw8PKpWxuw9tohs4N4uouj3D2lPB2JB+ X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0444; 31:sS4/8lZbCQ5x1EXXnRlnSalwwpwb8Y2PrEhvQTFgfDn5HnixInEUiBmaHL+GtiutClTsYRhWNIUsMnfplxNH7Wtcyt9uj9544xgfzpQpxwqtTJX2UgRkqSCwDSP8/4MLFeFNTX/psR6Pu3hnGF1uAMkIH4mfeuiwsxnC41sgzLq0kqo7B4kSeVB91MtTbHVG6OenI3LsKVnIDMBYTBgk5A==; 20:ItKoRp4fMly3CqlyqfSa+TbV2Pw+8MVWAP0Sdk7LNLrbF+ikaEiHGQqM8HK3eI56jWOyGtvCEbLX9fOCd/3n2Kg+f3+tX8CQiyEN151nMRcM/l3ZKwGCZbhXX5K2D5w5vnES59CAd1FYZH0BGt+uPLkNgBkvHlvVufFDPqVHp/IgaROjiHcgsbrZFLFocz81x0DKT4ujoaQMDnjjpBhJpWmOy5w9IHSSAxgyoMtLJnOJaMe4RoxZznRVqV4LohiryTquUnS7xy+PeFdadbKe2okoqz83WU98sMdqo0m1CvjK8g14TBHSARIGXifoiyVmkl3+zbfL0Fa9JE5ysQroF0YmSoBqlJRm0iZUC0i86RD8t0t75qOUg3621pQkbjGSUAV7VGMceAUxTHUln6/LFlDLhpAKC9DeRjSJWp2aAhM3uIMpYvJm7sGhFvAvUAj3KFmzW663ej+e0+fi4T2dPikzekKmvSz00RU/gglKFODfoLyQDFlSllY3whvDAt5e X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:CY1PR12MB0444; BCL:0; PCL:0; RULEID:; SRVR:CY1PR12MB0444; X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0444; 4:vKgKsZ8xHT6wEnIJFYSdMVM48AsScbbau34g+3iZi5dt/eQe2YU68Bqfc4b6KZiCRB7NbAXZ4zK51Oad7MWhmUhj6H3z2TKjYYcE+keQ+hvph9dmADv0WPaYqfkCop1x5h9PYtzuKg25DI36ia/PJwz2FNIxlGrQ+jT+7c8yQQMcpA/5W1mqdu176vnOtmuhhdS9nxjBqWFfGPS7d1SH8pr5LdD52suKTNzQZNoDZZyLkMwlhL0IFA07YE0OrF3ejLNbw4kTjpZy1VrJ7++ROdhzmWO4OWGyQ+GQUt/1T8efrKhlgc0ciunEmusNES3iWIAAFxwStkKX2fVVph+PBLIq0gOK26G0EhPQq5G2KYugY0Xf9JZVKl4eXGIRs/lPucEGuSOT/os0/0MIQ0gWChbgjH6L7AVeSMdnTyJNqj4= X-Forefront-PRVS: 00003DBFE7 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(189002)(199003)(3846002)(6116002)(2201001)(101416001)(81166006)(86362001)(5003940100001)(47776003)(586003)(189998001)(106356001)(66066001)(7736002)(77096005)(5001770100001)(36756003)(97736004)(50466002)(33646002)(50986999)(19580405001)(81156014)(305945005)(68736007)(4326007)(50226002)(19580395003)(48376002)(8676002)(105586002)(76176999)(7846002)(92566002)(42186005)(2906002)(2950100001)(229853001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR12MB0444; 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; CY1PR12MB0444; 23:JyjRYsWVvHrbiqYJAFmxbQws60mv3gvTI7pr+bpqt?= =?us-ascii?Q?Chp4r3wcr+2ctejZzXHMWvCGaQxEQHF6ta/dsaJcjflos+wl+YfsFSRy/5wK?= =?us-ascii?Q?wKmYaAXWnQ+TEVfBPYihTzoKNzlOs/7DxkSnC+yc846dtTo8EVdjTTSkwQ9L?= =?us-ascii?Q?c+5L/tjQ0WXT6YYQSbeotikKer1/k05VckGfIdNYB4c3Jga5Wkwo3M+ojTB4?= =?us-ascii?Q?+pTVDB2th7nfcU/5eauTRiPUB7/VAJFu2OXBKT2vp+VhxyTcCj9Z8b+fGkWa?= =?us-ascii?Q?rVHo56vumiGXF63hRRET2wPg5iVv97TEAbXg/jFAvmmFNgFhUavt8vu/QQvK?= =?us-ascii?Q?5qfwIP/g4Uinvm1BPHDYXn3tPmIW8/0xgX4iKu7IJiDXfSLt8TcYcNT1N99Q?= =?us-ascii?Q?sBY+a52eaW70wI8oBBHYTXhQhL/q1vl2C/Bj9PeKcQlPB/WrLHdfpZMERlR7?= =?us-ascii?Q?acdxmYmIZMQZnwF0//zy2ZyJHdXQP6Del7FXGAkHXGO0ufRYlI5gVuFvhYh/?= =?us-ascii?Q?v7poS7YRAZ/VYvA6t6BUgnb+tRz2ejFzz0UaltFxHOjn01eC59d+lfUjvBXs?= =?us-ascii?Q?akEWuuy4s6oFJJu0ALsv2D5+0KpUBaTcRlrH5c3inTmYqu5z40mNagUJSh0d?= =?us-ascii?Q?jWBVzlo2W0senhSGrDk6dVjK97OoUCNuxtKFvmS7jIhBdKZxZaouN1I720Pn?= =?us-ascii?Q?5byRjooxxUlvjxkm0eKh47SX6V2RYD3zfINUmMyRRw0dBPPD8SvswgMQrQm/?= =?us-ascii?Q?6GknVrSDBCN0aN/tCFbuWQ43ky3w6ytsqI0AWCvCeZudPNDgs7jMYEGVqT0L?= =?us-ascii?Q?MhGbMWM0tzr66hmMYwF5PoMkcCg6A8pzEVxVMS10Y0tubDijdJJW78hzX2kN?= =?us-ascii?Q?L6Gb+nMIzSJWBtOL9WoHbzXrjhRMaavlGBwzDyfHFyRouqOMWa0BztN3mBGu?= =?us-ascii?Q?U6lU+bsYNpa/5OsVYjfVk2gBAmLrRUOpv6TzfhuWdyY6mco19yXkLCVXvIiB?= =?us-ascii?Q?4vz4bgVrMweaJboMkHuKmMHYGPBQZ/A8HL5hv7ulLzCIhl3Whjrc4HbL37QB?= =?us-ascii?Q?NaBdDx+7D7xkGfXVFiLWHQS/eGGsmbpn8Ftw97SHXOGsfJ20w=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0444; 6:laIZ24a6tDlePKUtDx9kKqPYcTsnvpi57U2qMh5dEmpevCaKJz9/MNS8z/yUAHi3/+Did1WQVxKw94TjCuRr2U+/45k8rncBAOJz/EfMy4RGTczG7lzE6HlOYxBNmk7AIqTGjKNXQP7+2lFd4dWo5teyhA+gs7viVstZGQR7YUyrvMkEtQF6Xxt7GqNup+DiQOB6aWv/NcA9aWRBKnZSUYE+zQQJs3qLxw8F5+8PSNG4TLj9HbzVPYYYblqDvepnrbLsbfdEK5wjlB0gZ/ObEU6helScZuwMyh7rjdP3mY2URDdSLG9Sb3vjfXTuY6tW3gRN6PD09mj7goLwd1WaxA==; 5:cb7z8XIxUaPDEY3XmI3p03d4gz5kwG5po1Jr8zLYdLIyCcr3J2fANktHoXjQLe1Da+U3gBmEV28hsaMZRbepjOgnhLdyR0+33FFjRCTcylCz1OpEGuILDDah3UBzeAKAqsOmKXvMXS+2NFUcqXQNeA==; 24:E18YkqrBessGrKWB/EMPZ/fabx1d5VjWHh8a46xcFbPq+Prr2zJk72TGq0Fy7ews2gg3Qv/UjJM6Vez5ua8+eGQhsXna79y4MalYgjUbJg4=; 7:OYb+26Xw11Cmc/Jw0/RNq9KdeFmIZxrEhrgeii6j+PLozzb0PU0ECwRZietRyYVe/FjWe5DAuNFwglFk8oph6USPUcy/O5vodWqCZv3i9mHtW9D3WJRIBrHuO3HmARLc7JqX0wiseIl1b7oezud1EwKe6jFewpbpfp9sa4N1RY5sHhyr4BaMsaINMmPb38YwWyBv4MYdtQcpEP4KhPT0JOmanqv/v+/EciARxBglSQMARhRmJvwtf/kut36I9pSJ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0444; 20:LuEx593y8nwvmwsaParrw+luZZ42OqkPi/Ee+ngOYwmLf37sbdVSURtUSQkkoK6K3o0Tqzm6DCzIsY56GAWVAItD6xZpgIDH7Rr0zfLwz/GjHpn+EICYoSe7zs8smYL5uU8reJTnQJbjmGn25jzDBZqKVfFQwV/C5Or5fqK1uHtkTZAPbMdL7SI/STOjrwyZSEaqImE3Tf0e79cYTeoOt6BqImpU+lgExHlsZ5bR8cUnJbqsB8kTAPdtHfPN0aP4 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2016 10:12:16.7374 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB0444 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 */