Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752759AbdGGNn5 (ORCPT ); Fri, 7 Jul 2017 09:43:57 -0400 Received: from mail-by2nam01on0052.outbound.protection.outlook.com ([104.47.34.52]:39760 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752407AbdGGNnr (ORCPT ); Fri, 7 Jul 2017 09:43:47 -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 v9 29/38] x86, drm, fbdev: Do not specify encrypted memory for video mappings 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, 07 Jul 2017 08:43:32 -0500 Message-ID: <20170707134332.29711.25705.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170707133804.29711.1616.stgit@tlendack-t1.amdoffice.net> References: <20170707133804.29711.1616.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: MWHPR1001CA0027.namprd10.prod.outlook.com (10.174.165.40) To BN6PR12MB1137.namprd12.prod.outlook.com (10.168.226.139) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d98b1888-51c3-4d35-70b8-08d4c53e2ded X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:BN6PR12MB1137; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1137;3:dWo/bbsQjdV+LdoG+wgZ5fL0ssmEPQyKupOFcRtunr7tUp6ezvFwmg00xvboeCLiIu4dKyU0EopAoXFkLoI1Kq22ipMASvtxdmmFW1LZCxwum28/CIuJJPbWU7R1PaI+S5ywqJJYXfj6t3Bjv83coyoPYafgbW7dBzAlQrIcQsMvrckTSeAOKyIjOyLHAzlhk2kIrxLuxOlW/HQyg8lUtXr63VH8dvGqvVf9/4KBkzSSORfFIxsak+VbKS07S/lS21mdHtPQkBdA21gEoneY2fzcCSC9sO7UmnAdOZu2tP7K/k1TH42/ADr/hk+Gaeh3h6sT8gWcs8ZuMiHbbwvJgqw1Wf69m6J1kZX0t6ey+xdKKkbvEJ10tCg8+zaqdmb1m95FpWKsD2D2jISJ8pVDEiuBSKY/r7LSIdmUQkmyWKjH1pj/2i0LDcMMa5iuPVa4o4SsAKZRODy2xoMh4RTLeVyQmpaZIODJ45DBRQ1vrCkWbzRIu2NKDeWXMi8R0MJqiA1NYUIN/AEtovUgT0IsfBVXyvqBNlmIsKFnwiwjaA0+ECq6HGrXyJBxrccTG3gsdm1DNCjl1+pLhrVotFx/cbWxGf9YwyJ9nWzQxEwkQ6bOgEV+A/w58WSU9G0gNju2oE36iy5v9wT4VxYivxydKJYFxVzhKQG23Dpa2f51UDnFro84hIZgiolNQbUVpD2Jx2bn/17Di32gPJc7jOBN88cQSKugv9xwprEfbPepbQdevPN1F0WIbUtrTP1Sj1Fmy8kz98PmW2QCQ8QEbdplHA== X-MS-TrafficTypeDiagnostic: BN6PR12MB1137: X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1137;25:pnaJVMG+FbsK4crcyIO1DdBR4T1huRf2UFl7XQYEs3zBq++Qjazx+ULt1kFVy9UuGGcXxbbpXSCS2tUXpOoJpD8dIUPWDzv6zvGtmLHGY/1Myp5bQ1BJU97BGokj6jx+m9OHeYJLhvBmsE7RQHRwgXWrHDm1dzYb+5H2Yr+n+kKAtefPK1daUbSXOr9qgmgIz3piNodqTmOTQpyq3FU00d7Sdv/MmlanBSa82YahRyzS76xku7PcRaEOAx0Kaq8K5kkKPsgljharv/PUzWl3UEVJS1IilNPBHG+ohrffFGYERuL0rXvdlwQuABX7VuuHfeV8I7wFW3Ax97l7jl0YyLVgvMPHtv2Y7ZV0o3WfpPJNw/NweQxWGOHNF83DUh7fyCNTG6OI54qJThSrWWl1CNXxMLDeY+g5knU7EEALD/HP3EUztr9vTsDpPBQl+oqlZAQafBCOfyWHlOTYAiuLfHtUbmSZ5isB2DcybiyFk4roEqn3ePtqjwjYMi72iTNKpZqgf+bASm0Z/8aX6zCPFBIAj6YPBExvSaob8ijYxyP7DOKgIU8J9ShCleoBdvNP2vRQNRQngQeTtkL8cfII4w1BH53VRx5BYjzKcpmZWpctwUp88i+ibNQNHkqaplnWzZfY4xPnYbQEebvSyG+wGDkQNeu7UD+8P2IhdEFW9Rn1ur9xOQM6Xyrb//3Kr2iwLdNzDTg6MhDGOjGoDiqY/bgk1fQxvQq7RbynGuY+LHXp077SOr1tO2z5OStS6OZ8o/1gPCNABgmCfn0Siv7QyZvA4tHVdejK3JFsMqn/VA2SvGUjDUvzvxcQl/8Z6gg1LfQwDcO4nYKdJE7081HreYBMyi2cP1B6uIy8locvX4G5Z69Eh2o5yqmRf9SmcMaZ0S0F9r35PA0TMY41AStPxliaVe91bkWrLN+Z4zOgFL0= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1137;31:A6wiGw7wZ1pVnNKgLD6pBYwzrT6jtiAfWfkLFETj8qrK9XwlGUqqTQ/2FknSfQBinni42oZlHvUIFLYALgF5F4oqchgENIK20gkaeiz/XYpAmp3hTiCQM3RntPcpYYLID8Gk6z3aSADAwH6Z+gjH0PgBZ27WIHZ/363ZnooYDN7f9DODROEwnoP/JNnWIIPfSaN1xk/bT+NmlZu76o+JgXcfFROHWULnnZEcHFpKUu0Zry1Ats6QzA8ryk+DCZ9V/rZIVGmIY0fiAHdKwctnXUqHdh9yQ7FnFV2QEqGI6usW59ZVMPM39VzyZR1o6PZBtLBb0deyzZOg4rGjAGiodveTPuh0z2QAFky+yMbutuI+21OBdv8XpeIVDuQy3NYXp6db862FA+CNUrlilDuzoaTld5oeuKykd4menPepI3ulmWJxOI2S+Kw3g9UgDdcXWnXdQ3ebWHdYXoFIHFinfZAt9gFhNY40s/EUxKdpiFxwOOwFShWUJyqD63B6wB1oCgknxaRcN/FgVpYi7jJGrcKJCuXejfozl5Gy9owTq8rawJhrRvFxCAkHvhiIuS3sm11yS7FAgXW0drLqq9aPE4cLWGceka033lPiOmusx1MD8hsyRMVqjXg0WdpuIPk4LG3bdZpLREEpr392kmUIXFa7Q1ixXm2TryBAn6BTa80= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1137;20:mhzb1IA9kkJFYfjTq0Psw1H1vmZ5/ARI0M5NOqQPnj2Es8nTRxshtpMlWHjFJa/Lz3mTbwQbOqtIuh55d2SQcr30dcZMvHnaHYnbDvzGKMsdg9o1QkrcEQyslUPyPvUMU4sRlDxOlMHKRgE6qhdoa7EAQ2DSXpPq5L2y9snCJwbgEG9k+dK2vex/mUF7s6ziLfSQhFQz9VaLdN38kGpB7jDQir3tkHMUUXbz2SUlCEkRQM2tstRCKyPEnYQNK/0dfC50U6KGF4loLyIbsWvOIN4HQoTKUDFaij0wtmbyePSqzgUBSiv1uMC+8yl7zbm+6pzy8nlhPocBlveEg2R2QsuYLYQpj1ddIkmQ0+2/CriQhjvSan03TtGbB+X4hyhTqRgtv78bvlNnVuPOGhzL/tBo9VqvkZqbnar0Mmi6+WKd+8BwAr4q36XB9+MmOWLdbC8oOvQS+/ouu2ZDMxs82zIY9vA29tzR3S0ulFML+l8geg8fILNkPlpwBPnW0HrP X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(133145235818549)(236129657087228)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910064)(5005006)(8121501046)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BN6PR12MB1137;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BN6PR12MB1137; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxMTM3OzQ6bHRKaWZUTnFXTEJPZ05jTGVnR1A0eWpiZ0hZ?= =?utf-8?B?aU12NGZ3M3d4bEJjRUpQVVpIZVVWOUZxNU9rMlB4WUd1VEgzZm5CMms1K0Fs?= =?utf-8?B?YTl2VDdJYTJ4elp6VVlPaElFdjg2WjhvU0tNTkRwdDBrQTJMSDVFK2tsMnQ4?= =?utf-8?B?dWVjL2RxcDlRSE5SRTQxODJkQWx6Zm9EeHFZcXhWcStBd3pYSUt3S01DSk9F?= =?utf-8?B?d1ZtNTV5cWkwZ2srcTZtMVB3STQ3aVVhOGhtaWpweDI3SmI5b1VyNDV0d2xF?= =?utf-8?B?M0NucFhwNUgvVUcrUms2V1V3bXllTXBZZk9yVEt1U09GVUw1Wlo3ZVY3NHRC?= =?utf-8?B?dUFMNTEzK3lSZFJSa01CQUhhNWpmS2w5TUVBOWFGUzkrQzdFYURTNkcxK3Nu?= =?utf-8?B?eldiUnR0cnIzS1B1N0JuVFJhMm5iTXlGY1pSQjBLWWhRTkdOSDJUdk5SVHNK?= =?utf-8?B?MGVvOVNqWlpKeDl5M3BxaHNyLzZ0R1B1TGRxOFJzU0x5Rlpmc1VrRzlpSytF?= =?utf-8?B?R1hlcDZOb1VOMzVKbFF3QzZRM2NlaEwwais0R3kxc0RFdXdUSWpkcmNsOHcz?= =?utf-8?B?Q0pZZjVJYjhUTUgwTHVEVk5UVDNlVkp6Wi9Hbzk1TEY2bTNaYnJta3lLVnBL?= =?utf-8?B?RnlsKytoR0NHR0RYMVFkcHdTZStnK0Q1NXVXcEdvbVZodVQ5T0wrVGsvejRr?= =?utf-8?B?UWpXWFpQb1VFMmR1YVc1NjJmTS9LanRtZ09RdUNlclQ1QldrdnQrWjRoMStm?= =?utf-8?B?eCtjczgxSVk1eTM0ZTl2Nk5palcrdWhhR2xPUnJnZ3pjTmtMa3RhOXNHUitw?= =?utf-8?B?TTNYU3Jydm5rOFJINHUvTXNMWGYvelFOMmV2emVabzByL0RwUm51L2hGL2V4?= =?utf-8?B?K2NHWTN6b3daUTZJTjlNTXMrbGV0VGIzM3F6c3VwSU8zUGFMMkJyaGZiSWdw?= =?utf-8?B?Tno3b2x5cEIyb3ZnMHB0MkZGbVZReVlHZU5CajRGQzN2QUJqZnBmMEhma1hJ?= =?utf-8?B?WEVzdEZIanFwUW01cVBPdjBXcmdJZk5jaEZSanVzVGtuSFhqWXdjOVJZQVVL?= =?utf-8?B?cDBKTDhPVzhmakFrVythbVlmRFlTTkh0R2tkRG5aV1NZOWorSDNyL3pQeEZR?= =?utf-8?B?ZUNoaUpEZE9PZ0lqTDRpa01wY1hlZkhoeU9kQnFoNktCUnJZOTFqSTArWTlN?= =?utf-8?B?RHN4bElobmt6L1phbi9xNXdSS2JyUXZWL2tlNXA0UWJZS3p1ZVdNcS9OK2ZS?= =?utf-8?B?OXRyc0ZuYW91dExlVXorMEQ0bCtyTC91TUFmVnljeUpBU3dZZE5LS24wclYz?= =?utf-8?B?NWxBUzhnVEMrMDdBNWpwRjNiUGE4MmMxS201V0U0eGNobXRWdjF4KzY2MDha?= =?utf-8?B?WUxKMHluODJmUThxZXd6Sys4bW1xWW1OZjNPRzZrVjBXM050U1B4OVNqTTJ0?= =?utf-8?B?dDhIUFlKaXFDRnNRa3NydGlFN2tOemN0RHhZQnpjNS8wYnE3dWlkbjZJczJw?= =?utf-8?B?cmJ4NHlVUVowdlArQ1M3MEV2WWpVUUM1SGxOOGw1KzgzS0RvTTJuU0E0ekJP?= =?utf-8?B?d0FRTWJvblkxeEN2bk1NZkVsYWtxdmZTTVlyRjlzMmJndkw0aU5rakZ2bzVm?= =?utf-8?B?SUNOR2xqLy9VTDEzc0dhNjhUZXBScHZZZm9GSjdhQTRrcjJSM1BIVGYzVGdH?= =?utf-8?B?emd3aktUWk14WlRrVE5CbkNWeXd3TDJxUGVFRGJkbDZaZi95b0w0d0Vabkds?= =?utf-8?Q?/vkJFtAU8q4cXGLyzs3hQSujRDVWbdY0I1Dc=3D?= X-Forefront-PRVS: 0361212EA8 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39860400002)(39450400003)(39840400002)(39410400002)(39400400002)(39850400002)(2906002)(97746001)(66066001)(7736002)(47776003)(81166006)(8676002)(103116003)(86362001)(50466002)(189998001)(42186005)(4326008)(53936002)(2950100002)(55016002)(6666003)(9686003)(38730400002)(110136004)(23676002)(53416004)(33646002)(6506006)(54906002)(25786009)(6116002)(7406005)(478600001)(72206003)(3846002)(230700001)(54356999)(1076002)(305945005)(76176999)(83506001)(50986999)(7416002)(5660300001)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR12MB1137;H:tlendack-t1.amdoffice.net;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxMTM3OzIzOjlHejJBSXlxZjJEa3FjMFB4cUsrMFl0TG91?= =?utf-8?B?RlF1TTdvalRUWjJjOHl3NTFFMy8zN2xJWGpaWDNjN3AxeGZMcTk0cER0SVZZ?= =?utf-8?B?WE8yQ3VXNjlxeHlBVFJhOHZNUGtmbnhhdkFFR3RGTytrM0N4VmxDTVRzU1ZJ?= =?utf-8?B?cGZTT3FuVVhrZG9aTHVwdUlhSzZnTDROcWpQTXRhUWhxWlczYkozZXl0bXYv?= =?utf-8?B?eHl3VHVTWUkvNFU3NTlyZFR6aURxZ3phbTI2SWhTbVJOZVc3Q0xpTkVNL1pU?= =?utf-8?B?UU1rM3F6eE8wWXJ3cWZUVzVrVHdTL3NFTkxIY1RQMnB0YlZkTDYrSXlwVmNv?= =?utf-8?B?R24zRGY2WkJmUzBkOUFMcTZFbDEySy9tcjNMNUg1VGJ6SXQ5U0p1T2lCNUx0?= =?utf-8?B?WWNkSGVCbW9xaTc1QjVUcVAyaVVtVWdVZktuMjlMSTNBSndyRmt0MzBXSDhZ?= =?utf-8?B?VHN1djRTcFB4Ym1jNEt3NzBsRnkxY20yUkJKK3dNV1ZuMVBROGdaZVRIcjNv?= =?utf-8?B?QzhzMVdBTVZxSGtJQW1GSDYwNU4vczFHY2VaSC9HbFlYRVFaTkYxNHZJZEUr?= =?utf-8?B?Um1KWkE5WjQ2MmJSbG5pRmNjTWw1U21PWksyaDBiMDFxbzlsdWtDR0Z2T3Rz?= =?utf-8?B?OXM4ZzhvZGFDNXRJdFRSbmhPbjVQd3JYdkpxM2w2UTZWand3U01TWEd3MUVH?= =?utf-8?B?RnVhSUg1ZkF3eWtEMHdrVkhpTVh3c05wc1pocmxtTXRmMFF0RGVES3o1Zzho?= =?utf-8?B?ejcxbzBUMHpIZTdnTE15cm5sQUtmZ3dmTEpENmVsOHIxdUxNWC9Gd1c2NXBu?= =?utf-8?B?K3RmSEpZQ0Uyd0Jjelg1RzhWall5clpKMTdpSWExSWQwaDNDd2Zrc2Zrb1V2?= =?utf-8?B?S3dDZ2R3elZCWEhhNTdGVW9LZGhXSklmLzN1ZENKaHN4MlhtR2pQeFBybkNL?= =?utf-8?B?VTJaTVREMDhpQStxMFo0Y1FlN25MYVBlZ0RFVDYrM2VvekljNk9NTDE4Skd5?= =?utf-8?B?S09sMzVVVGJ6Q0p1Nmwzb3BZdGtybUZQMEhNOXVFYjdFSDg5bHk3dDBlbjR1?= =?utf-8?B?VHc0NWQ0dS9hTXlYbmJxbHc2bzlWVnBLWUhLeldSNjJ1S1lCbWNXZ0JmZzRh?= =?utf-8?B?d3VHcld1a085aWNQOXJDUUp1QktnMlh1U1dobGQ4RjhzNTU0ZDlhbHYrM2tH?= =?utf-8?B?T0lhQjBZSVV1a0RCb0hlTCt5Y3lUVWtqbU9zZEttdGJFcXJhQ0s4YzBsR3B1?= =?utf-8?B?cWxIY1RYNmZpRitQSzVDYVo4ZnZQbVphbFNsVXVmSmpDZ2lHVC8vcHdoMTBN?= =?utf-8?B?RVhFSUdzWUtqODRqMTFTNjNaWkY3WUNERjFyNkxOQmxhdFFpYW9BUzVjdTNi?= =?utf-8?B?cnY4YXhBVWV5azIxTWpoZm5sOERFajM0L2Y4Nmp0Mk9LTUFvRW9wbVFtQ2Uy?= =?utf-8?B?bXM1V25jdTJBOFQ1QnVlVmh0WlhFRmxJMUNEQWVXcmx1R0czN0EyazlDaVBp?= =?utf-8?B?N1gwNHJYSWhIYTRsd1lOKy9mWEZSdFZyZzVFVkFDMFd5dDZZdmNTemVPSzlr?= =?utf-8?B?TGtsSk4xblFUUlJSZmJXbFdrK0NNTFRqWmM2RVhxZ2JSdkFQdXZJSWlyalo3?= =?utf-8?B?allBeDBQaVVTbFlrMGFYWllQdDU3UVlGaitaTlF1dDlmV3BsSnArNUNBPT0=?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxMTM3OzY6VVArV0R5ay9mM2NYZzZlb1ZyRVhpdUlkS2Zm?= =?utf-8?B?aFllVUQ3R3hBMzFtVVNDOXg0Z2xKTmV2Vmg4dVdPa3RCc2NuYnJpUThMakly?= =?utf-8?B?MEpNQmpQeEo0NE1wek8zMjhKNDVZT3F1VnJlS1A3QjJaUXFubHZTTDFWTlBV?= =?utf-8?B?RWJQaVlOcWZEZVYxL0VMa0ZKeXBGS1c1OWlSVnExSS9rMWpBSDFlQUFyN3Fq?= =?utf-8?B?eG0remZUUTJ6Ums2RUhVZnJPMDl0TkdzQTRmMlVHZFdzekxUa0JkV3lpSHFv?= =?utf-8?B?emZBaC8vZXNBVHFHcTB3OWZSVDJEYllUczQzY3FTaDVTTThRUXhTT3QrbGlo?= =?utf-8?B?dGJ5UFZDTHBqS0FtMUxVY1E4UUtrN2s0QUt0YzNlNXkrL3UxaGsxbkVueUNY?= =?utf-8?B?L2p0b21HTUliNUV2ajZVTWpXSEVhUEFCcWp0ejB3Ni9oeENiaUdvVm1LMlZl?= =?utf-8?B?Yk9kcUxueDIvTG45R25kZjBxWGFCRTJ4bGJnMnI1Z3RJeGp5eWNTL0xqdFhq?= =?utf-8?B?ck84K0syYzRKc2MwSHlOc0RQYUlGbHZoQ3lVRURDOHRVYXVCQVZBajZoclQ3?= =?utf-8?B?NVBpVHFJTlc4QjI1d3hSbTlvRDd6RlVQTTFyaG9meU5Eb05uRFRJQU9oUDVB?= =?utf-8?B?dEYxMk5ZT01sQkgyVHJXZjA0VG8ySmlndExjbTZsQVQ2L2wxemhHenRLbDhh?= =?utf-8?B?SHFudGl0TVd5Q1N6SFhvZHZPclZBck5iNyttTXdScW5zSUxKNGt0QUJ3RXRX?= =?utf-8?B?TW5TYXJmNWhTQWhxWnQwd283Yk9GVHM2YWNtMnNDU3IwLzU2akluNmt1eXVO?= =?utf-8?B?aldaN0hHZzY0aXFkYjdrbTErYVpoRGtnK1g3NEQvYXR1ejEwVkRDeVdtSGpG?= =?utf-8?B?bXZBL3l0WExWd0t6K3pzRzFPelpRMEYvOWFFS3pMVUhIWk8xWHBjdlNuT3R0?= =?utf-8?B?eXhVdkk4OW9Fa0RuWDMxZFdPY2Q2dlloQjQrT2dSMkQxSHZBaElPUDVpRncx?= =?utf-8?B?TFVYdlBSaWFzd1dPVlVDb3ZPUk9KYUxxZUtuL2dPaFJSQ2t2M0ZEcCs4ODEz?= =?utf-8?B?N1NFRUpnOHVDYWdGMEZ5YUh1cmgvdThpNmZkb3FIelV1RThzYzYwb2FtaTJl?= =?utf-8?B?clhxWERMNFlOSTRkL0lTazZzNVN0cFQvSmtVeS8wVVJxcVNrdTBhZTNBRlZF?= =?utf-8?B?U285VGlRT3NvMTZTYWYwdWFxUFBCbW5ZSHVzOXhNU0RnNGZQSjFIbE9pRTEz?= =?utf-8?B?WnpKMUt6dExDRFdGdU92SVVRZ2dvSGNMdUxobC9YaURlbnJIYm5Mb2IzckZL?= =?utf-8?B?WW1BS1pnOWZhcGZhYlJHL0tTS2pRUlVvcXBXa0NJT1VubVRmb0ZRM3Y3NGxI?= =?utf-8?Q?W85Re76?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1137;5:gPMv7GdoNKO3T3ASP9rG5PAqQoxMf+uXSbCCfIlRxhKQWwlJqyylHwc0Np2mCvuPmH6yjYa0FEWqFSzVh4+KZtCsYbKuS+N8H7iH8Os3MY86H9uJgMVthYhjLXsrzkbOFcTE57Rs7mhNtZ+TeZv/KEDedjTyK+oKzCvf6qIWVhuxTTuhDgc7NgrK4eW6N1077JHibynD24wqD2aUxh3eKBznUxN5s38O2E06KQyuNm3kbXKPMcLicDsTj/fqvQp0xbS6CrnbatE/ZlQ8dQbPglTciJplmha+ff0GlOz5fIcAk7+vyIlTvXJVGNCZwSFY02OJ97BCZOt5WTU/G7vdiwjCfekRLXcQhX52ZOP0iWZed7eZFs9fGa46Xy+AnJodaN5BON+3TzdjjsswVZQOWy529t1PZqGWznjA8KWgFeGSHIObRYOd8uwu2SkJIEzNOCVNEmHmMmgeH+EGkBCIy4T6xX7UFEVZM7Yx9plWCPF79SoDGbG/yP95tQqE+9DF;24:mdclkvbvn4OoI6kjWpd+LP+dt58MveSgvLkWGHVXzA9zFyusdeI1J47IttCYobf65Ebvy1AmtnEuxLMWTzkzqFRxWWsTpqvgOfMVlmbM1ds= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1137;7:THHnuBLki1J5S6+i86rFOAh/BRmlzkaiOicHrSubkpAlHbFUSYIS07F41KFGCiuTgKSqzrbBsKNoT/3GGhrOm7BEa3Gh0NXQ2/lz0xUz46akPkFF9mez0OKSYmr+X66kuhFtI26iq8u5DtpfwpdR8OJg6wm0jJlXF0V/MO0dV47/vpThb0nC6cw91BqdDEETCsGReDaJndM9bnmRx4QWoRohTYjLJ6zTCClqDrgB7FcMZIQqbxP/L0o6rIYPQ7m9ZcMDdi6Dk7o4/JpDy9iYaz4OT7k21SbFFSh3ual+jCiP83Sv6j0MG1uXufpIghPuR4BtoNwMSoN/iwZVFKrfcLdGYUKxQcZrZEQKmkTeGVMxkBCoVKVFb3TVRs4iHpMJ9HFxyJLPT4DN9/jzBYeaRr7z23mV60mw52Ems+eg+GoJhKzqQ8+5NYHv4r6RkxeRpsKBbBmnj91a3Ax73dLj2CNDGcDnUoMoGnoj5iFb40ZpRlMnZEsmqJaHuwxgoyVSI4vfyNTGSdILtZj+rbVRAgDX70V8q0KiGFeVF8/MkO6pV+bNh4ZdWArMnzJDDKtGO9YjTtJK1ziddx+lc38JG1n24GmHXJMcHknuGtHBw+O3mw5n/leMoE42d4aNqjvnFqDJMBKbROnQ80MSqAlSDvsGL9VzYq3MYmYLHRZV1zidE163C1OcMbQJVvkEwiAAEWHm9phG8Bo0SRUQO/IUTNU46uMlkCEwf1K5NXtaWFECEa5S+OslMOJcYv4wMg0WMZzjmhtjwmwpN4p4LObH7YmGamqPmLZT2rNMrOGk9hw= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1137;20:enWcMqbq//kYCBGEdfLuPxzWH+ctV2iZtmeDuVEfWnu8rNXYLGbb12niq96Bon/r6ZZf6xBOiSSRv3XmHlqMaVogE0blQUe65QZ9mSq2lypCa6rcFgrXF1FID+LLwA8Nso1z40d2m4aNyvICsK9JlnA/3skFmIHwQB5ocy9ZVvRACWHbKCeYJplPOMYoO1GuxMK9IOWvLx2vUdLeRX2rwyj/oYhR85OtnB6qMSBrEdURaLl1ePAliqbltfvrK8IY X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2017 13:43:36.9793 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1137 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6371 Lines: 190 Since video memory needs to be accessed decrypted, be sure that the memory encryption mask is not set for the video ranges. Reviewed-by: Borislav Petkov Signed-off-by: Tom Lendacky --- arch/x86/include/asm/vga.h | 14 +++++++++++++- arch/x86/mm/pageattr.c | 2 ++ drivers/gpu/drm/drm_gem.c | 2 ++ drivers/gpu/drm/drm_vm.c | 4 ++++ drivers/gpu/drm/ttm/ttm_bo_vm.c | 7 +++++-- drivers/gpu/drm/udl/udl_fb.c | 4 ++++ drivers/video/fbdev/core/fbmem.c | 12 ++++++++++++ 7 files changed, 42 insertions(+), 3 deletions(-) diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h index c4b9dc2..9f42bee 100644 --- a/arch/x86/include/asm/vga.h +++ b/arch/x86/include/asm/vga.h @@ -7,12 +7,24 @@ #ifndef _ASM_X86_VGA_H #define _ASM_X86_VGA_H +#include + /* * On the PC, we can just recalculate addresses and then * access the videoram directly without any black magic. + * To support memory encryption however, we need to access + * the videoram as decrypted memory. */ -#define VGA_MAP_MEM(x, s) (unsigned long)phys_to_virt(x) +#define VGA_MAP_MEM(x, s) \ +({ \ + unsigned long start = (unsigned long)phys_to_virt(x); \ + \ + if (IS_ENABLED(CONFIG_AMD_MEM_ENCRYPT)) \ + set_memory_decrypted(start, (s) >> PAGE_SHIFT); \ + \ + start; \ +}) #define vga_readb(x) (*(x)) #define vga_writeb(x, y) (*(y) = (x)) diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c index d9e09fb..13fc5db 100644 --- a/arch/x86/mm/pageattr.c +++ b/arch/x86/mm/pageattr.c @@ -1825,11 +1825,13 @@ int set_memory_encrypted(unsigned long addr, int numpages) { return __set_memory_enc_dec(addr, numpages, true); } +EXPORT_SYMBOL_GPL(set_memory_encrypted); int set_memory_decrypted(unsigned long addr, int numpages) { return __set_memory_enc_dec(addr, numpages, false); } +EXPORT_SYMBOL_GPL(set_memory_decrypted); int set_pages_uc(struct page *page, int numpages) { diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c index b1e28c9..019f48c 100644 --- a/drivers/gpu/drm/drm_gem.c +++ b/drivers/gpu/drm/drm_gem.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -928,6 +929,7 @@ int drm_gem_mmap_obj(struct drm_gem_object *obj, unsigned long obj_size, vma->vm_ops = dev->driver->gem_vm_ops; vma->vm_private_data = obj; vma->vm_page_prot = pgprot_writecombine(vm_get_page_prot(vma->vm_flags)); + vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); /* Take a ref for this mapping of the object, so that the fault * handler can dereference the mmap offset's pointer to the object. diff --git a/drivers/gpu/drm/drm_vm.c b/drivers/gpu/drm/drm_vm.c index 1170b32..ed4bcbf 100644 --- a/drivers/gpu/drm/drm_vm.c +++ b/drivers/gpu/drm/drm_vm.c @@ -40,6 +40,7 @@ #include #include #endif +#include #include #include "drm_internal.h" #include "drm_legacy.h" @@ -58,6 +59,9 @@ static pgprot_t drm_io_prot(struct drm_local_map *map, { pgprot_t tmp = vm_get_page_prot(vma->vm_flags); + /* We don't want graphics memory to be mapped encrypted */ + tmp = pgprot_decrypted(tmp); + #if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) if (map->type == _DRM_REGISTERS && !(map->flags & _DRM_WRITE_COMBINING)) tmp = pgprot_noncached(tmp); diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo_vm.c index 9f53df9..622dab6 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_vm.c +++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c @@ -39,6 +39,7 @@ #include #include #include +#include #define TTM_BO_VM_NUM_PREFAULT 16 @@ -230,9 +231,11 @@ static int ttm_bo_vm_fault(struct vm_fault *vmf) * first page. */ for (i = 0; i < TTM_BO_VM_NUM_PREFAULT; ++i) { - if (bo->mem.bus.is_iomem) + if (bo->mem.bus.is_iomem) { + /* Iomem should not be marked encrypted */ + cvma.vm_page_prot = pgprot_decrypted(cvma.vm_page_prot); pfn = bdev->driver->io_mem_pfn(bo, page_offset); - else { + } else { page = ttm->pages[page_offset]; if (unlikely(!page && i == 0)) { retval = VM_FAULT_OOM; diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c index 4a65003..92e1690 100644 --- a/drivers/gpu/drm/udl/udl_fb.c +++ b/drivers/gpu/drm/udl/udl_fb.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -169,6 +170,9 @@ static int udl_fb_mmap(struct fb_info *info, struct vm_area_struct *vma) pr_notice("mmap() framebuffer addr:%lu size:%lu\n", pos, size); + /* We don't want the framebuffer to be mapped encrypted */ + vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); + while (size > 0) { page = vmalloc_to_pfn((void *)pos); if (remap_pfn_range(vma, start, page, PAGE_SIZE, PAGE_SHARED)) diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c index 069fe79..b5e7c33 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c @@ -32,6 +32,7 @@ #include #include #include +#include #include @@ -1405,6 +1406,12 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd, mutex_lock(&info->mm_lock); if (fb->fb_mmap) { int res; + + /* + * The framebuffer needs to be accessed decrypted, be sure + * SME protection is removed ahead of the call + */ + vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); res = fb->fb_mmap(info, vma); mutex_unlock(&info->mm_lock); return res; @@ -1430,6 +1437,11 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd, mutex_unlock(&info->mm_lock); vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); + /* + * The framebuffer needs to be accessed decrypted, be sure + * SME protection is removed + */ + vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); fb_pgprotect(file, vma, start); return vm_iomap_memory(vma, start, len);