From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752851AbdFPSyx (ORCPT ); Fri, 16 Jun 2017 14:54:53 -0400 Received: from mail-co1nam03on0079.outbound.protection.outlook.com ([104.47.40.79]:9132 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750797AbdFPSyo (ORCPT ); Fri, 16 Jun 2017 14:54:44 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=amd.com; From: Tom Lendacky Subject: [PATCH v7 25/36] swiotlb: Add warnings for use of bounce buffers with SME To: linux-arch@vger.kernel.org, linux-efi@vger.kernel.org, kvm@vger.kernel.org, linux-doc@vger.kernel.org, x86@kernel.org, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, xen-devel@lists.xen.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org Cc: Brijesh Singh , Toshimitsu Kani , Radim =?utf-8?b?S3LEjW3DocWZ?= , Matt Fleming , Alexander Potapenko , "H. Peter Anvin" , Larry Woodman , Jonathan Corbet , Joerg Roedel , "Michael S. Tsirkin" , Ingo Molnar , Andrey Ryabinin , Dave Young , Rik van Riel , Arnd Bergmann , Konrad Rzeszutek Wilk , Borislav Petkov , Andy Lutomirski , Boris Ostrovsky , Dmitry Vyukov , Juergen Gross , Thomas Gleixner , Paolo Bonzini Date: Fri, 16 Jun 2017 13:54:36 -0500 Message-ID: <20170616185435.18967.26665.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> References: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR1701CA0009.namprd17.prod.outlook.com (10.172.58.19) To CY4PR12MB1141.namprd12.prod.outlook.com (10.168.163.149) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PR12MB1141: X-MS-Office365-Filtering-Correlation-Id: adef362e-0566-432d-370e-08d4b4e9259e X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:CY4PR12MB1141; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;3:lOhRE5KrbjlKiyJLCYDb5yEcan8PYj6U4Kw+2IBhMSBzq6mPRBry6z2sRcmDNHRtXubVCDH3zKsof/odlrq/aFvO1N0XBQN4pADeJgWXQYjPhLxTAA29LVmt9OjoqhxZFJstXbtRVyZu6eLZhBOq5Iy4yEkjFM3xFFUdfEO0nErXIB/mRj8ok3FEUDOENupdMO5pnEPOj0abTe/6hK0ksTrbmQrAYTHvfWgivqiWE3jzF+IzdLRWqNe0eyDYPy44NMx8+ipY7WKNxXrqt/+koQMUACXFQx2n5qtEKcmXshq83N5rjTBKbqpFGujrzUaa6UGw2QcNpTZa0PVKDLQjAPg+UZ2zSAPjKomaC4392/s=;25:zbfinA7TxRLLFqHXX98l8WUKXU0sTjRk6NgksmD56ranFbWroYzQuo2aPV8bZzQwRlhfwEnpy/weWQQ50SEJcchV5SdmgSFQ1ZILCTz9No+s8+c7tBpCr3kWE79jlODw1OLeAJJB9jc8XCA+wVby2Msi/O6LrIH4xQ/PQbNeVAearOfgKbh8w8cC3ImxHGMor9yiHMX2/16/vVgUwaBePon4irUQWXHwtysdJtOUBaWYq3frvW1VWwVwA7OJCDiaVpaLkRSGcglH76TYgp8kQ5Uuo/pB6IZU5dm11T+sgF3PVF4T20s4POayonAluiG4bdx+2SMZrvASI10UHvKS20RAAig2Q8IS41/rNZEVMB1LB7VbdEyxZABVJTTkSIOMUJvFZAugLhlWz6itZE+UZrHRwtiRZrJ+XKECS3EgQuekz1hfdNgJ7fTOZuD2ljykBuiBhzvoGhsRcoPl0iX+wgf33LRUJDKp7GPexpt/EV8= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;31:4Xmbgo9GWInOpgNrEkfXPEDc5Nu5PirALI8RoY9kh+2nzbgW3/Ut1sLcEAMVdJNXbcjpDdN96tADJ/Vcu+NkVljMDZ6sZ6l3fcsYsJuAJtZOEeNEdx/bXmBBwrOITRlEtEUxpPo0bbTIN/8vWDtJYrLL8n/o+AXFYOhI+b8xyrd9R/btwhGOyHe8iaRkYDwEzk4yxAZuGY3/RmGGHYnyEf/2nTrUePW/hsPElViyLUY=;20:hF0xikAJakweCja9dxab/9DEKsa0hGCWXaUoeP0i8+W9dJ0EKG2XzM9AT1ZDss4JGlI5v2WCziiMK6hVYK43tvJKMV8zNg6idJDRtKO3RJ1wQtugLXuc/8uRO8dC3/tJBwWS+4AavnnDwdiIlKcdRW2oXP9KvVA5xC3o0F8w5X829Ox1L/7dNI3PZzTPewuhze5ybnk6GoWdIDKCbbhlRRMMDp2lljUZbbGc8py/zu5TfB5WJTEstw9wVmRiWyVvgpX79Owxkb6kqNVR9eAloVC7u2ZLb8acz3eMAH2H9n+vWq9VmBXs2d1fy7lf+E5TLzcfEKyTWsjjx+ebZ5G+VcbrCUUSsFZ3L8PaCOTR72Ui8D2D42jZoCS/WV7IHhnFEV2QdLOe4HVMxrIAulvij59KsEiupdiQHmZB6iQquZ2TrFFveWh5/wPPCvwD7vdeHsg85+ptDTixzHKi98icrgwOCZhW/7M1uVF4JZY3jUrQcKk6iHEXM3qLpbKypnrZ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123555025)(20161123564025)(20161123560025)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CY4PR12MB1141;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CY4PR12MB1141; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQxOzQ6d2JnTVlZcUg3QWM3dVgwNnlqbFNqWjdJbkI1?= =?utf-8?B?TTVlWXlneHlGaENuL3Y0R2lUdU9HdmRWNWM2c1k4dzgzYWFKWXhJcWJGajg4?= =?utf-8?B?TGVjTDUxelJadTZXMmtBbzJpUkYzVS9PcUFQSzBzazNiRElRbUNLMkd3bnBa?= =?utf-8?B?WWpFQ1czdzBIMEdLOXdmK0h2Wno5aTB0Z2FNQ2VrUjlQNzRCR3pKQ0xBNVJ0?= =?utf-8?B?WXlZVW1BNldqZm5wMjN5Sy9yYit3eXByc1NyZHJzQlNjbW9qbTNnNGltdEdx?= =?utf-8?B?c3pmYzlmRm9PU0d4UGpsblNDbWNydUFvTnZBUW5yNElMM3hJdFlPTDBYY21p?= =?utf-8?B?YnFmbnE0enJHS1dBOTc1S2ttbEdLdjQzYzB5MnV3NFZ5ZjlVbGdMYTBBQmdV?= =?utf-8?B?L3hvM2c1NUltYVZ3WURNZDNTSlR6SmEwL01uTWUwb016cDBDbVBFNUNydE1j?= =?utf-8?B?VS9tcmdFNEREMmN6SXBWSFFaWkpieGdpOG9xbE15d2hIZVF6NVBwTm1pUWY1?= =?utf-8?B?M0I1Zlc2R3BKWjlwTm1BcWVQQTRlVStFNkhYdURCY3BjRHBKM3V4R3AyVm9p?= =?utf-8?B?dHNvVE1LTXU5OE9zMW5FQ3pNNEZoZEpvSWFXSEkrdnlpcTk0NmRtWmxxcTNK?= =?utf-8?B?NWwrZFA3VmFvUHlaR3BmTzVkL3ZZQkxzZzIxa1BsejR5V1NpU0YvY3dLVFdj?= =?utf-8?B?bHdtdU16M0RjTDFEQkFJaXFSQW4xMFdld1hZZ0c2OG85MDdiV2xIQWhYaG1H?= =?utf-8?B?eHdBa3lpUE1KNVhTaDQ2Zm0zRi95aFlENER2OHJOSjBxbW41VWxhNEk3eU4y?= =?utf-8?B?TFQ4L29ZdmdaT2tUb3FvdFB3U3ZMYU1Pd2x4bkUwNjBsZ1Z0MlAyU0lPOU5Z?= =?utf-8?B?MzBxQjRXcTk2emlnSnNtV1l4eEI1c0Z3RFA2M1l0N1hGaWwrT2hBVTBNMTlm?= =?utf-8?B?THN6V0JGNk9GSXhFNWtobTl4ME1TVkoyUWNpMWxiVmZ3a0VHVmR4d200c1l4?= =?utf-8?B?ZXdqTHh5OGtWWHlZRGVVc2lwRlIrdmZJRnVVR3lYaUM0UVJUanFJOElDclZw?= =?utf-8?B?N3FacXEvYSt2Q1BzQWJEMjdtQWdqTGxzVEtzZi8yVnFXdmQzSDRiYVo2T1JZ?= =?utf-8?B?MFFRRjlqZ2hhd3pMNnpsMVp4czJLbHFQSTZualZMM3pyUVB5WTZhK1J1U2pD?= =?utf-8?B?T0Jhd2hpYjFoa3VuMmNBbnh3MXhZb0tvbDMwZ3FmMUsrMjRwY0tweXJTYVdZ?= =?utf-8?B?TUJ6NkJueksxc0tOWDI3Q0VNM0ZFRmtZT0pPQXJOSGkxUkEyOFpZOTJGYVVM?= =?utf-8?B?MTM0RnlaYWJMbmJnYm9RS2k4MTJsODl5MSszVWVwWmw4R0lPek00WjVyNkZW?= =?utf-8?B?Wm4wNVVBZXNIL0dZNFVuK2JxNE53RW13QWFKSmFnSlRWcEd0Yk5kRVFPQnBO?= =?utf-8?B?ODRuckxZd3Q4dFNaZm5VUEZYdGk4YTJpWDY0Vk9UcWZMeG5RL2d0dEIxMzZz?= =?utf-8?B?MkJqTTBxcmpkdHdjWFEyQ3h1Z3p5WVh3VGF5R0x4UHNIWjA4elpPRzBMNVp5?= =?utf-8?B?bFYvL01qaTAzcDgxRFFYNFpNckhWaXJuWXhIVmZuT3E2VkZTNFVaMnZ6c20w?= =?utf-8?Q?EwyWcp+ENhog4paMLPp?= X-Forefront-PRVS: 0340850FCD X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39850400002)(39410400002)(39860400002)(39400400002)(39840400002)(39450400003)(2906002)(23676002)(33646002)(103116003)(2950100002)(230700001)(6666003)(9686003)(66066001)(3846002)(6116002)(47776003)(72206003)(53936002)(42186005)(53416004)(55016002)(50466002)(7406005)(54906002)(7416002)(38730400002)(110136004)(478600001)(8676002)(81166006)(86362001)(76176999)(6506006)(50986999)(305945005)(54356999)(4001350100001)(1076002)(5660300001)(7736002)(4326008)(83506001)(25786009)(189998001)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1141;H:tlendack-t1.amdoffice.net;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQxOzIzOk1CNXkya0ppS1o3ZWFjNVRvdnp6bXEyeDY1?= =?utf-8?B?dGw5Qi96N3d2alA1K2R2UUZ2MHdCZG1IV0pqdXhUNjNwU3pBZWJGeUcvUDAx?= =?utf-8?B?R3N2TEN2UDdaYll0WHAzM2lpb0x3RVROWnVvRzZ2STJlMkRkcHlJOWZmWHY3?= =?utf-8?B?Y1hjUHcreUNhOC9VVThFanoxZTlwbmVWeDNLQXd0aDFiVzE4bW5UVTNZZThq?= =?utf-8?B?VS9wQVRHdUtSUW50aTZ6b1R0clhISEVQWEhlM2twSFlsY3ZCay9OTDVrakxw?= =?utf-8?B?dmRpc25jVVYrSjhvQWJRVkVpbjB5czBNNkFtOEdCQkN4MCtuS0lQeEloUVps?= =?utf-8?B?N1R5QnExVEozUStKS1VVb2JoeUpSR0N5OE5tNlMrY1gwSldoNU5LMmswTi94?= =?utf-8?B?NlhvVE0zZFRoUnovTk9HWXl0Z2I1R292ZjY4eUhicEF0Z1NYVTNGK3RxdGFJ?= =?utf-8?B?OGRVc09teFVqOHVZZmlBUTlLMWo2ci9sNHgzYjN3VlcxR25HV1dUNWJwbjJH?= =?utf-8?B?RXBLV2FVNlpET3JEaG1Pc0RrUXhHVHllTExSam1QVjZ1U2M0TWRmUG4zeDVN?= =?utf-8?B?all4VVBPa0hTNGpMWThSNjY2R0VRQVVWM01sSnFBdFBkdEFQRnhSSEVFV3Mv?= =?utf-8?B?OS9IN3FkMlFMQkowRDdVOGxVMENIN2s2ZzZMSzFmdGptTFRFejNBb1FYNitH?= =?utf-8?B?YWU3NnVBMUdsTHhhS0xEMlVtbGJ6d1pMakR6SytwM2RIM2thaVVZSmFSOG90?= =?utf-8?B?TXVyK25rb1dJQnBZTnhiYTVBK0VVYmxOalY4N0lSd3EvTnhVc01RQlBVVEZa?= =?utf-8?B?NWZTMXlWWXo3S3dnMHNBVUpKN1RmbDd0Q1A2RDNlRFR5cGJhUnMwRzJXU0Jm?= =?utf-8?B?YUJMRWFhRkRWaHNRRGlMTFBUQmRSRHRoRjZHVTE4TVdydENUWHdnK1Fzbmh0?= =?utf-8?B?aDZqN29IMXlQcGNHRlJCQzFwYXR0Q1g0dHdOTnBQcHZnL3l4TktkRGg2UlRB?= =?utf-8?B?UjFhbXJ5MkVyaW05Z3NzRXk5Uk1uNjNLNWJqOWlPNDlJcU9FSjNuYjBGSTJP?= =?utf-8?B?dzdnam5TOUxqc011UnBRRzFvMnl0aDlqRWZqVXQ2d0hJY2xROWxiQTBpUzYz?= =?utf-8?B?N2s5RHA1R1BiaUQ2SzJUdWEyWm03dnNTTGFtMC9LVTlVYUxJZk5ZL0RBMUlI?= =?utf-8?B?em1mQzB4emRJUWZ2cE5OSGtIYjVZZkU1TmZDalpJUnZ1Y2lkYkNHRTU3QWFr?= =?utf-8?B?Y1Ixd3ZFaksxc3gzMlBsZDhmZXJiTGdSQnYzNlBIcis2QkVKRGRHMU1GcUZJ?= =?utf-8?B?WVZ1cmxyVzNmeXZJRXNpRkZGSHNhVUxpdXYwTUVxcFRkNDJDRk5DZEZTUVFI?= =?utf-8?B?WDd0b2NkZ1ErQ3IySjZvYnFUTlFac0dWTUpkc2FERC81aU5UUmZvbkhBdUR6?= =?utf-8?B?ZUNMUTYvS1piV2V4MEFjWG84Q080dlpBZGtQSk9GKzk2RmdOY2xLT2gyejZP?= =?utf-8?B?Qm1sT0tQeWRxLzd5Z01IZkdsZUxhTFZBQ3oyMDhYT0NqNk9STzY1bklDalVx?= =?utf-8?B?K0NBcHlUNVNtMitaWGlEaDNHZWx5QThDOTFEMjl0NDFLeE5wakdtSit0TFBr?= =?utf-8?B?UnY5OGx6NzcwUWpYMjVsWFhxTlZLVG1SUWdKTE5KY3ZVazZSajhFdlh3PT0=?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQxOzY6ZDZnSHNwRVlqUWM1ekhXS3FjejhlaDRlZVFS?= =?utf-8?B?RlZqUWxvUVVwa2tQKzJaQk8xdkR1K1hqUTU5L28wZGNTRG91UkU5QWk3M21I?= =?utf-8?B?R1JLUkZ4anpTRkVDOVF1L0x3eVZRd1VsUVJqRThlNGhHbDNuZ3h4SHJ5T3Ur?= =?utf-8?B?TU91WlpQY3JjUjZrMEkvSUtRdHRVOEFpajRFMVk4V0ZMeHV2a1BsTXluNDNn?= =?utf-8?B?OU4wai9QUURBQ2QvZUxEdmZSNHVxcVZSTzNvRFFMNkFDQ0dLWmFOU2FQZ2Jp?= =?utf-8?B?UTJtcUtPakgrWWMwZzR6T1NTcDlaV1Zoa2pLN1d4NDhOcWh6YXAwTktWQnh6?= =?utf-8?B?WVE2cjI2alpuK1ZSSDV2VHFJcE80N3VEcm11N2p3cWlSdStuZjAvYXcrOGJa?= =?utf-8?B?SjZKcTN6cnFUYjhKT3pVZzJFLzExY3czZjVCcjc5WEVOakViZXZQc2ZvUTND?= =?utf-8?B?NUZ3TXdNR3RRQkFQUlpyQmR1NmdCTUJXMTZuVDRZYkRDQlBjTUJnT1VBUk5h?= =?utf-8?B?R09wWDJ2bnVuRUJ2VmZhNXM4OFZMRHcwZVJmR2ROT3BYcmxtcjZoQ01FQXVQ?= =?utf-8?B?cFVWYWsxV0Y2MnUybWkrNHVKclVMbTZPejc5eHhUa3FpZC81dXFwc1dRclJy?= =?utf-8?B?aTZYdVYyaWNwNTl3ZWwrQnAxRVVaVEx4cCtuY3RjWS9tSDZSRmhzNVBDbG4x?= =?utf-8?B?OTAxN1l0WGsveFVmc3hWTUdkblZ6NG5UUitLdnM2ejM2b0pxa0hvU0NlNDF6?= =?utf-8?B?c0Voc2dObzdJbGY1dzhMdkZRRkZkd0tLM01tQVoxRWo0S0tKRFBkMEtQb2RP?= =?utf-8?B?empOa2d4L2dZbC9XTCt5Y3VWU1pLL29EaXBjWVljNTdpQmVVcnN2amVuRHpa?= =?utf-8?B?aHJHcG96RWxxYWV5a2JiaGNFYlpqNGhHd1pPUzNON0FwQlBvOEVPMEtaVVBM?= =?utf-8?B?OEFPckRJaXpGdTZXZHNJeUw4amZLaUxKd1REd29RWDFOK0p0a0o4TTYxU0F3?= =?utf-8?B?UDdoUXFKSW9FM3RWZG9wRW1EN2x2RkVRNktVTm5pMEFZQnI4aXI5d09EeHQ3?= =?utf-8?B?L3VLMmNaMzRnWTV2RWZEUTk5NlJ2SzdSeTNLblJDam5DVC80eFo5eG1ZMlNs?= =?utf-8?B?bm1zeW9WL1hmK2V5eGY5ZWQ2Rk9SSmp1RnkvdmY4NzZQZVdPOFBGa2N2T2ZI?= =?utf-8?B?bkw2d09aWEx6dVNjVG1HRWN6Q2k0WktxR21DUkdQaGVxNVBEMlllN3QyZW1X?= =?utf-8?B?My9GUUdkV29VTWRXNHA1bnJSKzBGTnpJaHhrSkZXamY4U2VQMW1DZG54d3M1?= =?utf-8?B?dTM4aDJEbk1aUEhEWURiYnh6NHhFcFlBVWZGeU1ybUdLL3Zib1A4RnROVzNF?= =?utf-8?Q?KdvZoER?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;5:OebrXhdnZX7JXHjCGokTCLCuZGsou7gWaxxg+c9Isi+44pu7P5F18vIu3q+a3Mmc81QQCUNa9UCqDWrwg3H+1ash7NF/cGONiEzgJMp5IoVbH5h9N3ex1Tfb8LBg0DGpNbD0hKjFhD2qny9bqKAvoOvd1HeKcJvY8ufAwAXATBrBQkwFafNiUvE8/+hy90Kn6MNPFcaQD7xH687GITr+q9kEGb3/Te55cgFS5fhsFTC/La2dz3QR8TH+mWXqgtHfMDhcvXYIuIKRNhRhhuPLVQCJrM/EtIIVi2XDaWxq222WKAliYWAkn8MMs8ghY2YGZBlqwltJOUTknna3kZfRmYP/AxP80mhc3vyHNAjnvx00rKGKX8Uo3hrEK8MqEOIW6GqVk63F0USXs/qbe3bE/oWqnVyibmulBDdKAkFkwefS9/jiFG202Al0obhubLvqZyXAwy2Y62z0zQvqSWiWHz3nB2D5JU2fKPNFbcO3kL/TnyVaT3LIOM99x7etsqYj;24:aHQEY+OiepFuZoexYW8qU7ln/2JReB3jGyp0E3KhYENagwd+kQaw5RqEAy7w2R8L2qJkie9N4EyoX0AlowCj03KPE4rk/EYq5F5OOKT3GFw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;7:AdEI30VM5zQTnMr8EUpxx9rewbggzUy49iRA1CYtdjdlocXL7TzKDoo02iaXtSq3tVtlMVpLJs/UdplvzBpfTB+R359gi0LyY/rzXozaCfa9lZqFhnb3mugZCIoaJrl82CPHQdB/qcNckNki4YyvmiIpdZ2Kpqd741Dvs6jAz9LmP+s97yQsKpJQ31M0nu4Ys9EcG+f/wpcXJt2vHSD54B7nZ4t9OxtFJuvqyVMMfniRY3PDGaMGH36K/aZ6PN9so/VVKj/W/+GeHYjraPLXmOiPHiroU06UbvwTQbsSNXPGjmWI/p8mFNmrh7oiBELAX4GbtKKTmpBgp4TIH/6vdsQA44FaRInxjijI0FuvekmDOvtx9Udn7WB4RG6Um8nXNXU2gX26XwOoFuKGAsJGxcS19B5PkN4QnWRmFsCKyMWORG7Q54+BPK6Yil6HrtJqYEd3DLjXojq+YFy7vI6AZXDPop+Z6JVSCnwUKlGBYNcA4fcRGfbjyXnT9u7Hz3ZBQVCC/JD09i1jjJDqwpzn0f7TPHKu5KJ0L2ckQCMQcRSN8xl7hPw1AKlTKljOn+zMUMrEOcOO7N4E7cJ62A9Qy5dhCYKv+koeRY3CnvArSV4dzTXCKyCtMkBZoQk49UfODvJZjO4ICmUcVQ7cMBhlTJPEGyESn/UdDuL1E5nsk/xEkel+sajfJ//pjytfvlQPljLdtClMIEJxJRimAfgvwt8RDxhv+MHK82yPTXRsubw9igxdCRH6M1U9OypAdmROGsnjuV39EcphryXoP+pSmeyTS06WGFO4Pkbx1seu8xA= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;20:Gus3aqjeE3w+gpAiUopuwp9LpsI3qFuCR0iWn99yi0hELjRm04lT1Bdyh99GdfDEPPdh9SbcOXbz9AnxiYhrR7REkdWs4gfJLXVRSAWaBgW/oQYgkqr94jJ0qzVHnQQcCSFCiQGqhL5yUa87z3xZ9dS1+tjXECyM5B/dWVoADw3FFT8AsU+R49nlsDaarOFAwZy0GeKvvz7JpYg9Z9I7dtRRhpokLVVKse3XQemd7lYxDg7doIHqf6b1hsyA7KDF X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2017 18:54:39.0074 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1141 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add warnings to let the user know when bounce buffers are being used for DMA when SME is active. Since the bounce buffers are not in encrypted memory, these notifications are to allow the user to determine some appropriate action - if necessary. Actions can range from utilizing an IOMMU, replacing the device with another device that can support 64-bit DMA, ignoring the message if the device isn't used much, etc. Signed-off-by: Tom Lendacky --- include/linux/dma-mapping.h | 11 +++++++++++ include/linux/mem_encrypt.h | 8 ++++++++ lib/swiotlb.c | 3 +++ 3 files changed, 22 insertions(+) diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index 4f3eece..ee2307e 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h @@ -10,6 +10,7 @@ #include #include #include +#include /** * List of possible attributes associated with a DMA mapping. The semantics @@ -577,6 +578,11 @@ static inline int dma_set_mask(struct device *dev, u64 mask) if (!dev->dma_mask || !dma_supported(dev, mask)) return -EIO; + + /* Since mask is unsigned, this can only be true if SME is active */ + if (mask < sme_dma_mask()) + dev_warn(dev, "SME is active, device will require DMA bounce buffers\n"); + *dev->dma_mask = mask; return 0; } @@ -596,6 +602,11 @@ static inline int dma_set_coherent_mask(struct device *dev, u64 mask) { if (!dma_supported(dev, mask)) return -EIO; + + /* Since mask is unsigned, this can only be true if SME is active */ + if (mask < sme_dma_mask()) + dev_warn(dev, "SME is active, device will require DMA bounce buffers\n"); + dev->coherent_dma_mask = mask; return 0; } diff --git a/include/linux/mem_encrypt.h b/include/linux/mem_encrypt.h index 837c66b..2168002 100644 --- a/include/linux/mem_encrypt.h +++ b/include/linux/mem_encrypt.h @@ -30,6 +30,14 @@ static inline bool sme_active(void) return !!sme_me_mask; } +static inline u64 sme_dma_mask(void) +{ + if (!sme_me_mask) + return 0ULL; + + return ((u64)sme_me_mask << 1) - 1; +} + /* * The __sme_set() and __sme_clr() macros are useful for adding or removing * the encryption mask from a value (e.g. when dealing with pagetable diff --git a/lib/swiotlb.c b/lib/swiotlb.c index 04ac91a..8c6c83e 100644 --- a/lib/swiotlb.c +++ b/lib/swiotlb.c @@ -507,6 +507,9 @@ phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, if (no_iotlb_memory) panic("Can not allocate SWIOTLB buffer earlier and can't now provide you with the DMA bounce buffer"); + if (sme_active()) + pr_warn_once("SME is active and system is using DMA bounce buffers\n"); + mask = dma_get_seg_boundary(hwdev); tbl_dma_addr &= mask; From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Lendacky Subject: [PATCH v7 25/36] swiotlb: Add warnings for use of bounce buffers with SME Date: Fri, 16 Jun 2017 13:54:36 -0500 Message-ID: <20170616185435.18967.26665.stgit@tlendack-t1.amdoffice.net> References: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20170616184947.18967.84890.stgit-qCXWGYdRb2BnqfbPTmsdiZQ+2ll4COg0XqFh9Ls21Oc@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, kasan-dev-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org, xen-devel-GuqFBffKawuEi8DpZVb4nw@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Cc: Brijesh Singh , Toshimitsu Kani , "Michael S. Tsirkin" , Matt Fleming , Alexander Potapenko , "H. Peter Anvin" , Boris Ostrovsky , Jonathan Corbet , Radim =?utf-8?b?S3LEjW3DocWZ?= , Larry Woodman , Ingo Molnar , Andrey Ryabinin , Dave Young , Rik van Riel , Arnd Bergmann , Borislav Petkov , Andy Lutomirski , Thomas Gleixner , Dmitry Vyukov , Juergen Gross , Paolo Bonzini List-Id: linux-efi@vger.kernel.org Add warnings to let the user know when bounce buffers are being used for DMA when SME is active. Since the bounce buffers are not in encrypted memory, these notifications are to allow the user to determine some appropriate action - if necessary. Actions can range from utilizing an IOMMU, replacing the device with another device that can support 64-bit DMA, ignoring the message if the device isn't used much, etc. Signed-off-by: Tom Lendacky --- include/linux/dma-mapping.h | 11 +++++++++++ include/linux/mem_encrypt.h | 8 ++++++++ lib/swiotlb.c | 3 +++ 3 files changed, 22 insertions(+) diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index 4f3eece..ee2307e 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h @@ -10,6 +10,7 @@ #include #include #include +#include /** * List of possible attributes associated with a DMA mapping. The semantics @@ -577,6 +578,11 @@ static inline int dma_set_mask(struct device *dev, u64 mask) if (!dev->dma_mask || !dma_supported(dev, mask)) return -EIO; + + /* Since mask is unsigned, this can only be true if SME is active */ + if (mask < sme_dma_mask()) + dev_warn(dev, "SME is active, device will require DMA bounce buffers\n"); + *dev->dma_mask = mask; return 0; } @@ -596,6 +602,11 @@ static inline int dma_set_coherent_mask(struct device *dev, u64 mask) { if (!dma_supported(dev, mask)) return -EIO; + + /* Since mask is unsigned, this can only be true if SME is active */ + if (mask < sme_dma_mask()) + dev_warn(dev, "SME is active, device will require DMA bounce buffers\n"); + dev->coherent_dma_mask = mask; return 0; } diff --git a/include/linux/mem_encrypt.h b/include/linux/mem_encrypt.h index 837c66b..2168002 100644 --- a/include/linux/mem_encrypt.h +++ b/include/linux/mem_encrypt.h @@ -30,6 +30,14 @@ static inline bool sme_active(void) return !!sme_me_mask; } +static inline u64 sme_dma_mask(void) +{ + if (!sme_me_mask) + return 0ULL; + + return ((u64)sme_me_mask << 1) - 1; +} + /* * The __sme_set() and __sme_clr() macros are useful for adding or removing * the encryption mask from a value (e.g. when dealing with pagetable diff --git a/lib/swiotlb.c b/lib/swiotlb.c index 04ac91a..8c6c83e 100644 --- a/lib/swiotlb.c +++ b/lib/swiotlb.c @@ -507,6 +507,9 @@ phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, if (no_iotlb_memory) panic("Can not allocate SWIOTLB buffer earlier and can't now provide you with the DMA bounce buffer"); + if (sme_active()) + pr_warn_once("SME is active and system is using DMA bounce buffers\n"); + mask = dma_get_seg_boundary(hwdev); tbl_dma_addr &= mask; From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg0-f71.google.com (mail-pg0-f71.google.com [74.125.83.71]) by kanga.kvack.org (Postfix) with ESMTP id 9B3A244041A for ; Fri, 16 Jun 2017 14:54:44 -0400 (EDT) Received: by mail-pg0-f71.google.com with SMTP id p14so49719087pgc.9 for ; Fri, 16 Jun 2017 11:54:44 -0700 (PDT) Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0076.outbound.protection.outlook.com. [104.47.40.76]) by mx.google.com with ESMTPS id f19si2487680pgk.358.2017.06.16.11.54.43 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 16 Jun 2017 11:54:43 -0700 (PDT) From: Tom Lendacky Subject: [PATCH v7 25/36] swiotlb: Add warnings for use of bounce buffers with SME Date: Fri, 16 Jun 2017 13:54:36 -0500 Message-ID: <20170616185435.18967.26665.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> References: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org List-ID: To: linux-arch@vger.kernel.org, linux-efi@vger.kernel.org, kvm@vger.kernel.org, linux-doc@vger.kernel.org, x86@kernel.org, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, xen-devel@lists.xen.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org Cc: Brijesh Singh , Toshimitsu Kani , Radim =?utf-8?b?S3LEjW3DocWZ?= , Matt Fleming , Alexander Potapenko , "H. Peter Anvin" , Larry Woodman , Jonathan Corbet , Joerg Roedel , "Michael S. Tsirkin" , Ingo Molnar , Andrey Ryabinin , Dave Young , Rik van Riel , Arnd Bergmann , Konrad Rzeszutek Wilk , Borislav Petkov , Andy Lutomirski , Boris Ostrovsky , Dmitry Vyukov , Juergen Gross , Thomas Gleixner , Paolo Bonzini Add warnings to let the user know when bounce buffers are being used for DMA when SME is active. Since the bounce buffers are not in encrypted memory, these notifications are to allow the user to determine some appropriate action - if necessary. Actions can range from utilizing an IOMMU, replacing the device with another device that can support 64-bit DMA, ignoring the message if the device isn't used much, etc. Signed-off-by: Tom Lendacky --- include/linux/dma-mapping.h | 11 +++++++++++ include/linux/mem_encrypt.h | 8 ++++++++ lib/swiotlb.c | 3 +++ 3 files changed, 22 insertions(+) diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index 4f3eece..ee2307e 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h @@ -10,6 +10,7 @@ #include #include #include +#include /** * List of possible attributes associated with a DMA mapping. The semantics @@ -577,6 +578,11 @@ static inline int dma_set_mask(struct device *dev, u64 mask) if (!dev->dma_mask || !dma_supported(dev, mask)) return -EIO; + + /* Since mask is unsigned, this can only be true if SME is active */ + if (mask < sme_dma_mask()) + dev_warn(dev, "SME is active, device will require DMA bounce buffers\n"); + *dev->dma_mask = mask; return 0; } @@ -596,6 +602,11 @@ static inline int dma_set_coherent_mask(struct device *dev, u64 mask) { if (!dma_supported(dev, mask)) return -EIO; + + /* Since mask is unsigned, this can only be true if SME is active */ + if (mask < sme_dma_mask()) + dev_warn(dev, "SME is active, device will require DMA bounce buffers\n"); + dev->coherent_dma_mask = mask; return 0; } diff --git a/include/linux/mem_encrypt.h b/include/linux/mem_encrypt.h index 837c66b..2168002 100644 --- a/include/linux/mem_encrypt.h +++ b/include/linux/mem_encrypt.h @@ -30,6 +30,14 @@ static inline bool sme_active(void) return !!sme_me_mask; } +static inline u64 sme_dma_mask(void) +{ + if (!sme_me_mask) + return 0ULL; + + return ((u64)sme_me_mask << 1) - 1; +} + /* * The __sme_set() and __sme_clr() macros are useful for adding or removing * the encryption mask from a value (e.g. when dealing with pagetable diff --git a/lib/swiotlb.c b/lib/swiotlb.c index 04ac91a..8c6c83e 100644 --- a/lib/swiotlb.c +++ b/lib/swiotlb.c @@ -507,6 +507,9 @@ phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, if (no_iotlb_memory) panic("Can not allocate SWIOTLB buffer earlier and can't now provide you with the DMA bounce buffer"); + if (sme_active()) + pr_warn_once("SME is active and system is using DMA bounce buffers\n"); + mask = dma_get_seg_boundary(hwdev); tbl_dma_addr &= mask; -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-bl2nam02on0060.outbound.protection.outlook.com ([104.47.38.60] helo=NAM02-BL2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1dLwOf-0002ZW-96 for kexec@lists.infradead.org; Fri, 16 Jun 2017 18:55:07 +0000 From: Tom Lendacky Subject: [PATCH v7 25/36] swiotlb: Add warnings for use of bounce buffers with SME Date: Fri, 16 Jun 2017 13:54:36 -0500 Message-ID: <20170616185435.18967.26665.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> References: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: linux-arch@vger.kernel.org, linux-efi@vger.kernel.org, kvm@vger.kernel.org, linux-doc@vger.kernel.org, x86@kernel.org, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, xen-devel@lists.xen.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org Cc: Brijesh Singh , Toshimitsu Kani , "Michael S. Tsirkin" , Matt Fleming , Alexander Potapenko , "H. Peter Anvin" , Boris Ostrovsky , Jonathan Corbet , Joerg Roedel , Radim =?utf-8?b?S3LEjW3DocWZ?= , Larry Woodman , Ingo Molnar , Andrey Ryabinin , Dave Young , Rik van Riel , Arnd Bergmann , Konrad Rzeszutek Wilk , Borislav Petkov , Andy Lutomirski , Thomas Gleixner , Dmitry Vyukov , Juergen Gross , Paolo Bonzini Add warnings to let the user know when bounce buffers are being used for DMA when SME is active. Since the bounce buffers are not in encrypted memory, these notifications are to allow the user to determine some appropriate action - if necessary. Actions can range from utilizing an IOMMU, replacing the device with another device that can support 64-bit DMA, ignoring the message if the device isn't used much, etc. Signed-off-by: Tom Lendacky --- include/linux/dma-mapping.h | 11 +++++++++++ include/linux/mem_encrypt.h | 8 ++++++++ lib/swiotlb.c | 3 +++ 3 files changed, 22 insertions(+) diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index 4f3eece..ee2307e 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h @@ -10,6 +10,7 @@ #include #include #include +#include /** * List of possible attributes associated with a DMA mapping. The semantics @@ -577,6 +578,11 @@ static inline int dma_set_mask(struct device *dev, u64 mask) if (!dev->dma_mask || !dma_supported(dev, mask)) return -EIO; + + /* Since mask is unsigned, this can only be true if SME is active */ + if (mask < sme_dma_mask()) + dev_warn(dev, "SME is active, device will require DMA bounce buffers\n"); + *dev->dma_mask = mask; return 0; } @@ -596,6 +602,11 @@ static inline int dma_set_coherent_mask(struct device *dev, u64 mask) { if (!dma_supported(dev, mask)) return -EIO; + + /* Since mask is unsigned, this can only be true if SME is active */ + if (mask < sme_dma_mask()) + dev_warn(dev, "SME is active, device will require DMA bounce buffers\n"); + dev->coherent_dma_mask = mask; return 0; } diff --git a/include/linux/mem_encrypt.h b/include/linux/mem_encrypt.h index 837c66b..2168002 100644 --- a/include/linux/mem_encrypt.h +++ b/include/linux/mem_encrypt.h @@ -30,6 +30,14 @@ static inline bool sme_active(void) return !!sme_me_mask; } +static inline u64 sme_dma_mask(void) +{ + if (!sme_me_mask) + return 0ULL; + + return ((u64)sme_me_mask << 1) - 1; +} + /* * The __sme_set() and __sme_clr() macros are useful for adding or removing * the encryption mask from a value (e.g. when dealing with pagetable diff --git a/lib/swiotlb.c b/lib/swiotlb.c index 04ac91a..8c6c83e 100644 --- a/lib/swiotlb.c +++ b/lib/swiotlb.c @@ -507,6 +507,9 @@ phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, if (no_iotlb_memory) panic("Can not allocate SWIOTLB buffer earlier and can't now provide you with the DMA bounce buffer"); + if (sme_active()) + pr_warn_once("SME is active and system is using DMA bounce buffers\n"); + mask = dma_get_seg_boundary(hwdev); tbl_dma_addr &= mask; _______________________________________________ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec