From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756637AbdESTzn (ORCPT ); Fri, 19 May 2017 15:55:43 -0400 Received: from mail-sn1nam02on0058.outbound.protection.outlook.com ([104.47.36.58]:49568 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750810AbdESTzi (ORCPT ); Fri, 19 May 2017 15:55:38 -0400 Authentication-Results: google.com; dkim=none (message not signed) header.d=none;google.com; dmarc=none action=none header.from=amd.com; Subject: Re: [PATCH v5 23/32] swiotlb: Add warnings for use of bounce buffers with SME To: Borislav Petkov References: <20170418211612.10190.82788.stgit@tlendack-t1.amdoffice.net> <20170418212019.10190.24034.stgit@tlendack-t1.amdoffice.net> <20170516145209.ltbmaq3a2teqr2uv@pd.tnic> CC: , , , , , , , , , , Rik van Riel , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Toshimitsu Kani , Arnd Bergmann , Jonathan Corbet , Matt Fleming , "Michael S. Tsirkin" , Joerg Roedel , Konrad Rzeszutek Wilk , Paolo Bonzini , Larry Woodman , Brijesh Singh , Ingo Molnar , Andy Lutomirski , "H. Peter Anvin" , Andrey Ryabinin , Alexander Potapenko , Dave Young , Thomas Gleixner , Dmitry Vyukov From: Tom Lendacky Message-ID: <64f72c46-75df-ce67-e81a-3b85cfe4c7d1@amd.com> Date: Fri, 19 May 2017 14:55:29 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170516145209.ltbmaq3a2teqr2uv@pd.tnic> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR14CA0014.namprd14.prod.outlook.com (10.173.157.152) To DM5PR12MB1148.namprd12.prod.outlook.com (10.168.236.143) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR12MB1148: X-MS-Office365-Filtering-Correlation-Id: e494f2c2-3808-451e-1796-08d49ef103e9 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:DM5PR12MB1148; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;3:3AJJg5C6IKiKKx1qRScwg4f/DxTXcO8yPCVsCKnAuZ4Qj2HvUYL4mSmD2FT5t0tf8+pvjvilaDKqrnrU7k57zDvozoSkXPeb1EWAAOKtaJVCxo39Wt4F9TsN8Fz3ds9IDIId/6eCHERGHU/vtrXGKhz1JCx/B9OJ5SkBx8R3ynp1hCBGMlne+2IfDYN7FzpSCfV/vO0hn/3frJ0ba6FqX8aAlnHB14meBh+Dx1wNzkst5JoFIUdw1VZGG8ciZXsl9FHC0yFsh0YNIragPvASY3urv9XnXLZU5hY56oFMXu6IjxrTkmsQXCa0qxxtjF1A1tpyvprDlp/g/JFIXe04vtuhCacgzljLrVAQqLUktCo=;25:OFpM7NrKD/A/boYOKb6NJZMZUyq2KDKidPTE56YAbwr0ZPcR+xlruAsq03Du8bAyNtUTB4h1j/VJcDbhrtPyrYOqa46336Ic9rIhCmSFaC8/rS6Yb27jWKy3rBqARiW7hKYLk9cGSX12uwFFA1UaghpCH/TejWplZdPoFAQdzJ8YCpVOA2UOet3V9qHnPvn1NZCxSJeNLi7bjsW/KYsHVoqkEdoOC+U8ohPmAZ1KsQ+ksy+e/Mx9IkP4AcALJj84TmU6hhK1DWmqIwgiiQi+oGcP1cFRWufU/g45yNnGBl3c1MAFjZjB+SbRpBSkBzj9YyFnzQrvmMLCviA9HUuYKDYMu6yMfGaV/6WyI6r/83P5a739e5EFB+/FxMw+JrhAE5ZDWBUjaH9dIXxol252DdKp66W+SCgomxr1n65eym/PZkrhVoK2LgOtgdh0S5PxZ8mpojN5f+/+cDlSFziHdFItFoHs8mN57G37FBwg1+Y= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;31:VDKikhXTLwLGvrbyzl/6lu787a809N15ReNYsgmmsIpiwrq7k9LCp0j9p/BQVpgA/EozNJ+z0qRobjHEWYTVxPZutKidiRhFmlxIQeMZUaS/suHyfvury6Tp/paYQErN8h8SvtUquj6GTpaUTTyHvWv/jtlBlBtYr2fFjM7NS+cxWAnxQLMeJ2Ljd6Cp0FOpH1J5eclQEixC0GiiWY7MZduS5wfWHmha8G9BkpyTkbo=;20:GuAq2KmBoRkd8VwSI7mifHSVdyp6rAUCd2txMsb4UOm3efE7U2Sb6C6SscGyYa5+tyQ0ixuYhzYRYeqBH3fGzrtkI2h6k+H7rqUB8Sndm6u83LYyFJ+E70hYe4yKfiPKMftD1HJ8Vu4COyq4N8wxzLAgU8w0QZqIazmOkbI+XAMgX/QOCq2jqbqGKGGIfgAac5u42z8grWnY/QL/bHjXsjiFIUCsfWZTWHjObyV+qiCh41gq3TNZjmhXtYaYUJPNk4fsMFXaBgCnPh37E3YUJ2NetFpPdxWlcMSGMeKsudz6i3InST4D3+K02KSgELUzk3h/RjxK6PLP1V9XD4IhwMvDceYEUfc8Hms0j2/V6EsZ51nFsafXcbLnYRczlR7ZHyrw6PNuRIzzE1vSIr3nrWanwORHV9zjkAG/MYhsY/KEf+Yp0Qu6vjOi5AiHe6SyRM5KyYfUfF31mqHF+dQ9ZkrsyPVdNMDWJb5XyZQ/yTyUl/svs471HAroF0sFQrvI X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123558100)(20161123564025)(20161123562025)(20161123560025)(6072148);SRVR:DM5PR12MB1148;BCL:0;PCL:0;RULEID:;SRVR:DM5PR12MB1148; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;4:S0N/lrQCQ3uqaQ2jCYIQKHppnNkKb+GnHoIzxV8uMptTuCl1x9S0HhoIrZmRf0Ssqb3odl0b5qQTQSS9yF8fBwPy12D9Qc56J3SUP82X5p/ZKbYlljuHctF+RMhcOBhlAn86aSW6KPyU6JGaf9dfwnxbx/wTAzIY6qL/5qz6oRus8LH7gvWL6xW/lMmT9hZdDbuondOJw7/dCnQRg28NsdCFiBvzaiHCcOWcNlCAwXggCYzE4odCUcDEXkMfI281wVUOTwDnrcJo4htenyUpE3FVrnC2YKc/xUS6sylNSWYMFZZs1QdHkapJtYFvBn+fT+QYi690RWACrMC8NCnJCmRWSKb+LG5BR6q41kvN0yK94+ovolU/hOdE9pk9c9pp/T5v3htph7Bsd0YFBYyoLs3jxGjtsr7bf1pJfwOVRhL3iDd4lRt9lnGtTMTeVzJH6BKavvVRrjuli0bEqOSYyeP6IZ5ksegNDWw3NRhxlK+9hZCg1uQ3hrxCGpFai+bjZDjE/pI2GDG7FjlC8JynASAoGqWZU8v6SJ7I9A/6TrlMn+mtrx/LuikvX8xQPa5TXrBYPC7rET8nvh6U+yJ6bUaOeBH0+UeKQ2eXltEWygi3ZE8VeMMvxZd3qqMwaG7ppHufyMI0g2t4yNmqFKSoVyaP00L7/6FcXaWvbO94LZfiNOI8uhrAdcyYmFVxtV/PGNLtoOO0F0GrafuZuA5HsV/WfHgjWHaaVxwc9Cw0VqBx/OaOdZri3MUb0meF/e6ZILNIVl/qg/ShxFkIigZzA3PZYO74QCjdvprkSQABO8JnDO4X3wdYdgdV05OpBdFQLkpE/8dhSEXaQPDwWJMbag== X-Forefront-PRVS: 031257FE13 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(39850400002)(39410400002)(39860400002)(39400400002)(39450400003)(39840400002)(24454002)(377454003)(86362001)(7736002)(31696002)(7416002)(90366009)(7406005)(6486002)(65826007)(77096006)(305945005)(2906002)(189998001)(229853002)(3260700006)(4001350100001)(76176999)(5660300001)(54356999)(2950100002)(50466002)(33646002)(50986999)(83506001)(8676002)(4326008)(230700001)(6666003)(42186005)(31686004)(81166006)(6116002)(6916009)(110136004)(3846002)(65956001)(54906002)(36756003)(53936002)(25786009)(53546009)(23676002)(6246003)(478600001)(72206003)(38730400002)(66066001)(65806001)(47776003);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR12MB1148;H:[10.236.64.250];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyTUIxMTQ4OzIzOnQ0aXFZWmwvS0wyaTlxL3FXS3JtM3FVZTdO?= =?utf-8?B?dGNhcGs4N2JNMzY5citUam5YWlZWVXRuQVdXMDdVQUZ0b1ZTdFRQS0tTNHVy?= =?utf-8?B?aUZGSVlxUUtqNlRVbnd5T0h4L2JZS3B2cjRneEN6a0ZUcVNxUlUwTEVJR2ZV?= =?utf-8?B?TjlqdUJ1a0JNeVlITVdxdDAzYVFHMUE4eUNZcXJYYmFzeEF5U2hPV1hqWlJl?= =?utf-8?B?VDl4ejBuWmVHb3RTMEdpclBYQ1pIeFVZNDN3MTg0TXFqRFQxdFgvZWRzTHlt?= =?utf-8?B?dDhtcTl6eEh6a2tWbFZ6VlVRUHM2MVFzUzZzbDNSZTgzaEd6YUlCY2pEUGlx?= =?utf-8?B?aFRoY0FjYmNrVVVkd2lKeStjN3ZUYmYyY1M3dHdlQzQzai9pc1VyLzhSVnFY?= =?utf-8?B?VHk3UGNHd2lrT0dhZkd1UnFsNHBkWWVaUGFmM0NGSk8vbjRHbTRKbjlpZkI2?= =?utf-8?B?UGNCTVlnYUlNc2txWHFpSi9YNnM3TUdEVHdsNVJ4N1JxVnVoQk9WS2F3STFw?= =?utf-8?B?SHM2T2g5UVB1U0w4UTZhVXhKTjZaeGt2cWlxbml4MHgxeUFTKzErWXZRN00r?= =?utf-8?B?YklBOTkxbXZLLzlLdmhoQ0FoUFF4bDY1c0dheHZxNFlpdHptQlJJZ3hCckxV?= =?utf-8?B?UUNjTWg0eXl0TEQyU2VTeERuNFBCQkg5U2FNMTZaQ3pFdTUzOE1xZzU5UHFr?= =?utf-8?B?NEI1QU44K2F3Yi8rR2l1RnVNN2tvM0g0eXRCeFhpSUU2VVBxVytMdWFTZlpH?= =?utf-8?B?UkhHT1JDQzJvZC9vS2xWWkozVEwrMjZ5T0dHb1dGRjV0N0wxY3A0VjZtU2ZQ?= =?utf-8?B?VW9UNFhuOUg0bHJrRkl4L3hpTG5zUDJMSmhtSFpiNFRrMFU5MGVUNzM4cDM1?= =?utf-8?B?MHF3eC9KRkdDeDNPa1oyQTJaZDBrWjJuRWxVb0dFWVY1cjlUS09ycTZ6bnhG?= =?utf-8?B?dDFWL3dOb21iWmd5cDhuRUwyeGZ6d0tLZVgrVXRwN2hnYWN6YnozUWc2MGdK?= =?utf-8?B?ZDdqS3ArU0NaeTdsdTVoaGdScU1NYlFNekF1UVE1QXE1N1l4NzNkMVh5UTEy?= =?utf-8?B?TW1pRjRFSnhvTlY0c3o0T1JwQzZEZS81dUlYYWFWQkRCK3FINzBITFJOU20x?= =?utf-8?B?Q2xGblIya2ZXRXRldzFVTjRuYlE1bmIwbkEyKzZSUm04SHV0OHI0bk90SjJG?= =?utf-8?B?anJPaTlwN1ZOY3NIYy80SU91ellsQXdrSzlNOWUxd2lQbVZFK29ienprSUQw?= =?utf-8?B?dXNJcm1JQW9IanpIMnVjYlZOTjVMbWRMNlB4bHhpVXR1bmx1cjQ1all6dmZr?= =?utf-8?B?QkVlblowK1drVlZZRWdpSE82MkJnRnl1YVNFazJVSnlTL0VFdFV6WXpBZ2xZ?= =?utf-8?B?Tm5KYm5SazlOYmtYblhsZmMyL0d1dDRLMEZLTGVSbEtsdGxmbzkzKzZoR3pI?= =?utf-8?B?eCtsOGdER0ZweGhWWW51TFZaVW5ZVHo5T1BZcGtmSFVSRVdKTURjd214TVB5?= =?utf-8?B?N2VmK3B6akRFaVVKeVlBcmR4QWpsaHl6WEZ6SndRcis4T1k4VmN1SWZiclFK?= =?utf-8?B?VGNXbXdBbWxuRjlqSmZ1VlJNc2pyNURRV3ErQm9YSDlScnhJWWR1VWRzWTE1?= =?utf-8?B?ektYYWpMaGpxZlpGNGUySWRZRXRUeFZDczZIbEVYWk5xZW1jNFcwN2x6TUlP?= =?utf-8?B?emI0VS9QWC8wcktNWk93REZsb0tEcTFvcVJpdmsvaXBLc2FiM2NoT0UrRUwv?= =?utf-8?B?ald5dzc3K0NsMlVBaUhaZ1lYRi85ZmxZeC9zaFVPYjFobGNwOFdwUmg5amNU?= =?utf-8?B?cUhSRGJKWURnYzVBem9Xclk3bGZ1QmhVZ3doWkRnd1RkNWV3emtJRWlaQWND?= =?utf-8?B?YWtFdU1TS1M4THVCTVNTZEltajJhVENBa1VxcjFuMXpaV2ozNUR3RjlRdFJG?= =?utf-8?Q?uwQzGx9NT3Fw98KLMS/xcq0s+pOSq0=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;6:0aY8CoI8PJnAuEOwbxljct8HANPy/qMLE1ErbfxRjGO4OPo6O5sAqw4vITSdX8NBz0GjCxhTwhnFh3cyjdn4vbL4Dxen00vnqt8em55LDMRsIQ73dM3gguusLz5ZIgtTFrF4gVbsuwVITsSLCc6XF+TLpmFqnWctbFeppiAqtl6voA7Gg8QmDzXg8zdc+dR7/0W/HOrxscozDS6+be2XSNPYtsVTW2l9DdL5M4GGF49Zh82mWswllfPvx1msfvLxJhxzp5yMsq3TgLveGZN6uFJimHDgYVkqSPrZqCGJAcZvf7OH7lnFxAIWD9gaU5KnBDpHqXt73IkWExb0yd7QmsghCI3GicMMi8MBAo3MZvT1hAzXaP8nxdyvwY3oaZ+f2nxsFXHoYsMFoJ8iwn2vvT7DP2cv7+Qjcu2gb0cA5H170bey/eEgJspbVffrtIUP6Hw1Df5eeucJHJBCOzzpR2FJTeu+8HLRtV9qGA45nkfC7Tnb3m8Whx3xboF4KFrT9UPa2Q4cX5GITDKOBhiUsMvxfke534j1x5L82O7b0NM=;5:pXwUpNxrQ8YitRe66O0estzJZxRzLnBrXAzFs3LyoMXC5qeYFTjqx7C7twj+JN/lk1F7WMd2vYW95D9NUYQaQpAVa4buKFwW/7dVueqRLcnay49sAvQna9adEmCr9ackjDxIv3/ChR4wyqnxwKa2PA==;24:jFRNvrW4516ySmFi6Psr3bI3MQ7XdllneM8baYKd1Q0+MyMsAuuC7V+jz5svnacdH4D9zpM5CwQwXbUNs//ZOtkJNVUdXyQadPBysWQQEq0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;7:16CNE8y4WuBmwuhDnC/iKBg8APvblZgSooGEb1UlwCDzZwXFLdX3fdm4BHnsBgcMvC244zCS107Vj66GYiypmuHvr6aVp+xtk4ZhG11sVbgM84gkTWGMOy2mlvHsSpB+WhClGRP/shXWV5WMNtD9YyVWSFPwF6haJ5eGgmMCd09xb4poxMQ2idcOnWedb6OnALhU1ZdON6ZLbLyUKX5A1koNO0smLIToalcgie/FbGDOnhs3WPeUnJyaG8BpLYZlK4bvVzKHEZQapWY4llnLKt2oss0bymkNz+r78j3G4aBLYc2TTKFQYYHLOXau9XGT+D5NURSXiAUZpOTFBpEXTQ==;20:jG5/DdJ8SVZFWzM3sgYBDqpcc1dMl7Y+wyZau15eIZ2/Bz8BnX199qkimE0422t7tgoGVzZieQ2cj4rDaj8mtvuCAP1TLdln/G6dRW0NShtBdcA1Y48yOVl1DP46hrPFxiw277qEQdViMe9jzdLrwYNZjl09JdFavxcpcaGk8mGQOU8+eT4IEBtSn7nLc4UzgKhbENIRT08mnhvzzaawPBh/mjIOjMUlvA7xbia701UPrZCg6LXb5z2PKl11rPA2 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2017 19:55:32.3351 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1148 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/16/2017 9:52 AM, Borislav Petkov wrote: > On Tue, Apr 18, 2017 at 04:20:19PM -0500, Tom Lendacky wrote: >> 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. >> >> Signed-off-by: Tom Lendacky >> --- >> arch/x86/include/asm/mem_encrypt.h | 11 +++++++++++ >> include/linux/dma-mapping.h | 11 +++++++++++ >> include/linux/mem_encrypt.h | 6 ++++++ >> lib/swiotlb.c | 3 +++ >> 4 files changed, 31 insertions(+) >> >> diff --git a/arch/x86/include/asm/mem_encrypt.h b/arch/x86/include/asm/mem_encrypt.h >> index 0637b4b..b406df2 100644 >> --- a/arch/x86/include/asm/mem_encrypt.h >> +++ b/arch/x86/include/asm/mem_encrypt.h >> @@ -26,6 +26,11 @@ static inline bool sme_active(void) >> return !!sme_me_mask; >> } >> >> +static inline u64 sme_dma_mask(void) >> +{ >> + return ((u64)sme_me_mask << 1) - 1; >> +} >> + >> void __init sme_early_encrypt(resource_size_t paddr, >> unsigned long size); >> void __init sme_early_decrypt(resource_size_t paddr, >> @@ -50,6 +55,12 @@ static inline bool sme_active(void) >> { >> return false; >> } >> + >> +static inline u64 sme_dma_mask(void) >> +{ >> + return 0ULL; >> +} >> + >> #endif >> >> static inline void __init sme_early_encrypt(resource_size_t paddr, >> diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h >> index 0977317..f825870 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; >> + >> + if (sme_active() && (mask < sme_dma_mask())) >> + dev_warn_ratelimited(dev, >> + "SME is active, device will require DMA bounce buffers\n"); > > Bah, no need to break that line - just let it stick out. Ditto for the > others. Ok. Thanks, Tom >