From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 56DCAC4338F for ; Mon, 9 Aug 2021 22:04:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3059360EC0 for ; Mon, 9 Aug 2021 22:04:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236543AbhHIWEl (ORCPT ); Mon, 9 Aug 2021 18:04:41 -0400 Received: from mail-bn8nam12on2072.outbound.protection.outlook.com ([40.107.237.72]:11361 "EHLO NAM12-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S232683AbhHIWEj (ORCPT ); Mon, 9 Aug 2021 18:04:39 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i46opE2vdbKf2ZrSprtprFOfqeG9cuPadsC969ro0jGirLoEqmGv1Pq8Ok7Agr3K0gNJJxkRQ7uEyrdz0yrHhOwzdM61T8KtnXLa9G5uisp5+mR7A//tdBVeUvqNEmOX2+UqNF2+f7BMlZy74/vSdtRFvjyaBb3HTciyEplA4h+vOS3Z6B8sfFvhpSQ8rxnHNUatg0Eo6D/CcU94BG0+iVF50SSmMYnqPB288PGR4XOQZ+O9PuZfkJYnLiJJv6+ctPGqP/I+CE24kxQMUPhCBTOjhFzEG3UzhaGjEypPYQ48tv+nOiOJhT5HM4GVat1JWikkCz0Sg+XAcv0/+taeQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qDDc72GiZm6dfKErrWYvKM6m/ePTnVVLaIb8Yz6Ehk4=; b=hT+0DFcf5clrassD1oRbJSgQ6y78lWxP90zJ+WbC2yEDLpBFh1mm4Xup2dx/Nf1oaA+8KPhAaMgYP2M06znaLrTQxSVV+HoWD3EgxqJoiOhxP7Pq+7QECVurjapITVJ04GCcgR4Z6Cb6C1LQ8YjVl+uQQ1LdrMLEbnpuwcLqRWRsxJrATdZ9SMNrao/uelaMK7S2FSrG+LpfPt++U9XC08JXZ9lErcGAQeO8yrdzCrKJi1TR6etE3FiBZqRDDxNmVQdvdh2pQxuhj0P/jcS+hRZwy/NjI8gpDiTljx9e8LqRE2lXXpx3rfUeFXF2bi6xZDZg1/sfFcehc1jqIsAERQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qDDc72GiZm6dfKErrWYvKM6m/ePTnVVLaIb8Yz6Ehk4=; b=E26kXdjn4tzuqwDepjlftxSfkzQiAIaO7cFrfeWCeKv1ky4fYpeEimh+mtZrp1OI1A0gpmZlrvEllzgCfWxMpCUlsqJr7dNZvy2aDOYq6InaM4LnOKp6B7d1UhMB6c4qyYtSMRA3LsMiw6JCzCDjZjhtVDvNPPzS0CpxONefbjk= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=amd.com; Received: from DM4PR12MB5229.namprd12.prod.outlook.com (2603:10b6:5:398::12) by DM4PR12MB5117.namprd12.prod.outlook.com (2603:10b6:5:390::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.17; Mon, 9 Aug 2021 22:04:14 +0000 Received: from DM4PR12MB5229.namprd12.prod.outlook.com ([fe80::73:2581:970b:3208]) by DM4PR12MB5229.namprd12.prod.outlook.com ([fe80::73:2581:970b:3208%3]) with mapi id 15.20.4394.023; Mon, 9 Aug 2021 22:04:14 +0000 Subject: Re: [PATCH 07/11] treewide: Replace the use of mem_encrypt_active() with prot_guest_has() To: Christophe Leroy , linux-kernel@vger.kernel.org, x86@kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, iommu@lists.linux-foundation.org, kvm@vger.kernel.org, linux-efi@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-graphics-maintainer@vmware.com, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-fsdevel@vger.kernel.org Cc: Sathyanarayanan Kuppuswamy , Andi Kleen , Tianyu Lan , Daniel Vetter , Baoquan He , Peter Zijlstra , Thomas Zimmermann , Joerg Roedel , Dave Hansen , Maarten Lankhorst , Maxime Ripard , David Airlie , Dave Young , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Brijesh Singh , Thomas Gleixner , Will Deacon References: <029791b24c6412f9427cfe6ec598156c64395964.1627424774.git.thomas.lendacky@amd.com> From: Tom Lendacky Message-ID: Date: Mon, 9 Aug 2021 17:04:11 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SN4PR0501CA0139.namprd05.prod.outlook.com (2603:10b6:803:2c::17) To DM4PR12MB5229.namprd12.prod.outlook.com (2603:10b6:5:398::12) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.236.30.241] (165.204.77.1) by SN4PR0501CA0139.namprd05.prod.outlook.com (2603:10b6:803:2c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.5 via Frontend Transport; Mon, 9 Aug 2021 22:04:12 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a1d08b08-348e-40d7-2dbe-08d95b819fd3 X-MS-TrafficTypeDiagnostic: DM4PR12MB5117: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: m+3JPzPUggX8wii77JpckqdMUuJ42OcNOdsy0s1VqRinMmrGdveqyqqtPHJDVI1dbGHSGb0ceR+5MPYeGPE7ndIXkKzqmVmVv2t3qLJs/ZW4xGV+Q+i5k3ZW2HK1cJQmmSUL2GamnOBrEWprMITi2O2Fjy4Mp5xzoFMEDt4U2PKHjLH7auaM6o6Wjj1vh8qj6Z+MTax0sux9kVrv0wbKq9xHwuZpcEQYzHfa4vyH2mrRRp5JVY1PurS2zUkyR8J2fj0+XJTPIXD8Skpn2bXAuJzcZ3FQcPDF1k3dTEGVEXkYeh1iOkb5Gkv2qJA9Q3ASBxoahMD+G7kPPxZkcArlyC5K7QqJALypMC+bGSF1eJ+ZJj2Y9+yMthNQ5ErI2vIVO8/IwMuwq23LuzWHfDRo4ou6CSz31poq6n0bFC2sHK+R149o5213JkYrh/YamMbV2+QCe8q0V9G8bsvVn54vSEVQnH2v1nEP3Y99T2iIVj+po+zhImZ4vX7WVfHRQdMbayc1vVNqdI2j37KNl4n9Scu8iZ3d888hETBqhlzneGtBJFFJ1r3zO9dxLXJXLiG1oTAT3rr1WoYo378B2uFh9uzjUe4cjF88hLDHornZ5Iwh04uwj89AzWMqFFgm61pjhcm1vUG1pOxiSvPvVVN1UMqWM+0qIUgi0m37iatD+Pv1ZJNqdbXM1aCslM8lV1CZ/CTdnMX3Q+9qP9tXhTswd+5UAi5LG0sIv121xWyMJbjE/qRTaDVRb9uF0ft7LiA9mPAsKWAT5vPte8ZWavnJDKGOLrb5L/+GNfvBxmRRtYI2ORALPGK0Oon9xrMM/SJ9HwW7esfJSWq5G0eHjOpGyw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5229.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(136003)(396003)(376002)(366004)(346002)(921005)(31696002)(2616005)(956004)(6486002)(38100700002)(316002)(2906002)(36756003)(31686004)(86362001)(16576012)(966005)(53546011)(45080400002)(30864003)(478600001)(8936002)(8676002)(5660300002)(66946007)(66476007)(66556008)(26005)(7416002)(7406005)(186003)(54906003)(66574015)(4326008)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?czJtWVR0d28xUTIyNThoMzlvU3V0T0Vhc1lzTHcydkd4N0hxT1JjL0NHZWJI?= =?utf-8?B?blhIdGdON0FXZ3FDQnkvU2R4UUEyRGtKV3hLS1k3SiszbEw3cVdZbGg5L2VH?= =?utf-8?B?V1hFSU5hL1hmSHhvY01LdHVmcnZtZlF3eU5Pc3E4MURUM3krQzJ0WTgzZVVI?= =?utf-8?B?cHN5L0FPNnpaU1RiZ0tUY05iT20xNVJCRmFXN0QvcFM4bkFwOE9xVWdZUmdx?= =?utf-8?B?emZUaVM5MlpKZ2FQOHBBYURrS3JLcFZIYW5Iem1oaUc1ZkxPZE9XZWRDNW1u?= =?utf-8?B?NVdlZWx4NnFrNDdFbytkU2lGUG1ZdkVFeVdRMDB6a2ZQV0l5QXpnZWQrV2hH?= =?utf-8?B?R1hFQTRkU0hSNENWNnpnTStOcEE4STZ5MkRXSmptVkRVL1gvM1lnTG9JUEFY?= =?utf-8?B?MzRmczNDUVVPSWQyNlFEandhbzVBRVFwTDJ2NUZaN0Z6TVpPRFV3eml1ZzNM?= =?utf-8?B?dUtseVdpK1FkT2NWeExabHNvRXJYZDhqOThlWGxmK2hXd0JTam5lRkxwMlZF?= =?utf-8?B?WktLYytncGNyTHNxSElWWVhMTGNYZWxzQlNpbWcrTFF0L1RpQ0ZzY0tkelVn?= =?utf-8?B?S3RhY0FCcUk2R3JIN1RkbjFOL2JNK0pLVStSVHAvcDZHZEZMcUh6QWszN2Nz?= =?utf-8?B?dURXTWhSU0VjajJHaE4vd0RSb005dnlEM2ZhTHhJM0V5RHJyNm5NQkdhOVhk?= =?utf-8?B?dGZreExKZnY5VUovVEpSYi9GRlpMaEZzU2JQK2pNc1lKczBLUU1HRDF2UnMy?= =?utf-8?B?Q0xNN0pzVUZCN3ZoZVZNd204NTV5c1ZIWndGWVEydEErakFsSXlXVUdkMkRh?= =?utf-8?B?cHVWejBDTXJEenZ6dXVqbFVHZVY3aTlJZWc2Smh4RmRpV2owL29NN3QxazVh?= =?utf-8?B?WVMvN0doNWhuZSt2WDhLbzNOdDZiY2dZdWl4U1E5d0lTTzZJNVFLOGdkMmFv?= =?utf-8?B?UnhJdDFlNGxESXBvc1hoT3MyUW1EbW90dkFJeDJkNS9heFN0YzVDQ1NXTFdt?= =?utf-8?B?b0wyUEREQUNMZlV1Tit6eVFYRHBQTGo1QmpDUU84REdBNzJNQ1haZjlVR1Jj?= =?utf-8?B?NzZiWjYrQlJwa2VOVXpPcW5sY2ZpQS9qQkRtdUZ0NWVZM3Yvekdlb1Zyb1A0?= =?utf-8?B?TXZrT3hyS1VpdHd1UGo5TkxuZkRTVWg4dW8xamdTVEhJSUZhZVBvVnJrc1pP?= =?utf-8?B?NjQvOXZxR3BsUDFYVEx5ZVVVTlZ0U09uZHl4dm9DVjJTa0JtYi9rNGlDT3hh?= =?utf-8?B?WjNCU2xxUFBnTUhDZEdwbUNGbTRuYXJINDNBaWlMSFNSL1RlL3piL29pTVBX?= =?utf-8?B?L0FodC9BNTlBT2xJcmE2ZmR3SUd1RXBOVHZDNnJsbU5sZXhDRk14alVFeTBp?= =?utf-8?B?TXVMMjY5L2ZUa01BUzh5eW42Z2pKQ2ROTTk3eTF5aHhUcXFlMGNJVWxsNXkw?= =?utf-8?B?SGZMQTZodmprTzlnaWF0bFlWTmpXeUhxMXlQTFB0djE4R2hNemdTK0RoQjdz?= =?utf-8?B?WlFDWFpoUzdTWTFRbmpHOHpvUDVTOW1ZYWpSSWVQeWRKMzM5MVRWY01oaENr?= =?utf-8?B?KzdiMlJvMXBObTFEcEhkTWNwTEJtNXlLZkxxSWxOUE5jSnhrR25qZ1drOUZN?= =?utf-8?B?UDZpcVJvSEhET0JtaFpjTDQ4SWNLcjdBZDBBa0E4ZXRSVGtZUGFKK1ByV0tJ?= =?utf-8?B?RHh0T1dGMDQ3bG9nZ0JxMG9NODJvc0JRTTFOYjNrYTcyQVRoSE9TRXRCcHJN?= =?utf-8?Q?SDDEmkfuOVtLxQJR4qZvah4PjWqv3hzWzxgYwck?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: a1d08b08-348e-40d7-2dbe-08d95b819fd3 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5229.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2021 22:04:14.2640 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4nhfX73wvO9hcTAWN9QscMsaTxM8C0FcXniu7OsjFycerJJuEK62HlZfWznvt4AHUBScn5VYQjNAIDDgwPXj7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5117 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/2/21 7:42 AM, Christophe Leroy wrote: > > > Le 28/07/2021 à 00:26, Tom Lendacky a écrit : >> Replace occurrences of mem_encrypt_active() with calls to prot_guest_has() >> with the PATTR_MEM_ENCRYPT attribute. > > > What about > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatchwork.ozlabs.org%2Fproject%2Flinuxppc-dev%2Fpatch%2F20210730114231.23445-1-will%40kernel.org%2F&data=04%7C01%7Cthomas.lendacky%40amd.com%7C1198d62463e04a27be5908d955b30433%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637635049667233612%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Erpu4Du05sVYkYuAfTkXdLvq48%2FlfLS2q%2FZW8DG3tFw%3D&reserved=0> ? Ah, looks like that just went into the PPC tree and isn't part of the tip tree. I'll have to look into how to handle that one. Thanks, Tom > > Christophe > > >> >> Cc: Thomas Gleixner >> Cc: Ingo Molnar >> Cc: Borislav Petkov >> Cc: Dave Hansen >> Cc: Andy Lutomirski >> Cc: Peter Zijlstra >> Cc: David Airlie >> Cc: Daniel Vetter >> Cc: Maarten Lankhorst >> Cc: Maxime Ripard >> Cc: Thomas Zimmermann >> Cc: VMware Graphics >> Cc: Joerg Roedel >> Cc: Will Deacon >> Cc: Dave Young >> Cc: Baoquan He >> Signed-off-by: Tom Lendacky >> --- >>   arch/x86/kernel/head64.c                | 4 ++-- >>   arch/x86/mm/ioremap.c                   | 4 ++-- >>   arch/x86/mm/mem_encrypt.c               | 5 ++--- >>   arch/x86/mm/pat/set_memory.c            | 3 ++- >>   drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 +++- >>   drivers/gpu/drm/drm_cache.c             | 4 ++-- >>   drivers/gpu/drm/vmwgfx/vmwgfx_drv.c     | 4 ++-- >>   drivers/gpu/drm/vmwgfx/vmwgfx_msg.c     | 6 +++--- >>   drivers/iommu/amd/iommu.c               | 3 ++- >>   drivers/iommu/amd/iommu_v2.c            | 3 ++- >>   drivers/iommu/iommu.c                   | 3 ++- >>   fs/proc/vmcore.c                        | 6 +++--- >>   kernel/dma/swiotlb.c                    | 4 ++-- >>   13 files changed, 29 insertions(+), 24 deletions(-) >> >> diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c >> index de01903c3735..cafed6456d45 100644 >> --- a/arch/x86/kernel/head64.c >> +++ b/arch/x86/kernel/head64.c >> @@ -19,7 +19,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>   #include >>     #include >> @@ -285,7 +285,7 @@ unsigned long __head __startup_64(unsigned long >> physaddr, >>        * there is no need to zero it after changing the memory encryption >>        * attribute. >>        */ >> -    if (mem_encrypt_active()) { >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) { >>           vaddr = (unsigned long)__start_bss_decrypted; >>           vaddr_end = (unsigned long)__end_bss_decrypted; >>           for (; vaddr < vaddr_end; vaddr += PMD_SIZE) { >> diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c >> index 0f2d5ace5986..5e1c1f5cbbe8 100644 >> --- a/arch/x86/mm/ioremap.c >> +++ b/arch/x86/mm/ioremap.c >> @@ -693,7 +693,7 @@ static bool __init >> early_memremap_is_setup_data(resource_size_t phys_addr, >>   bool arch_memremap_can_ram_remap(resource_size_t phys_addr, unsigned >> long size, >>                    unsigned long flags) >>   { >> -    if (!mem_encrypt_active()) >> +    if (!prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return true; >>         if (flags & MEMREMAP_ENC) >> @@ -723,7 +723,7 @@ pgprot_t __init >> early_memremap_pgprot_adjust(resource_size_t phys_addr, >>   { >>       bool encrypted_prot; >>   -    if (!mem_encrypt_active()) >> +    if (!prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return prot; >>         encrypted_prot = true; >> diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c >> index 451de8e84fce..0f1533dbe81c 100644 >> --- a/arch/x86/mm/mem_encrypt.c >> +++ b/arch/x86/mm/mem_encrypt.c >> @@ -364,8 +364,7 @@ int __init early_set_memory_encrypted(unsigned long >> vaddr, unsigned long size) >>   /* >>    * SME and SEV are very similar but they are not the same, so there are >>    * times that the kernel will need to distinguish between SME and SEV. >> The >> - * sme_active() and sev_active() functions are used for this.  When a >> - * distinction isn't needed, the mem_encrypt_active() function can be >> used. >> + * sme_active() and sev_active() functions are used for this. >>    * >>    * The trampoline code is a good example for this requirement.  Before >>    * paging is activated, SME will access all memory as decrypted, but SEV >> @@ -451,7 +450,7 @@ void __init mem_encrypt_free_decrypted_mem(void) >>        * The unused memory range was mapped decrypted, change the >> encryption >>        * attribute from decrypted to encrypted before freeing it. >>        */ >> -    if (mem_encrypt_active()) { >> +    if (sme_me_mask) { >>           r = set_memory_encrypted(vaddr, npages); >>           if (r) { >>               pr_warn("failed to free unused decrypted pages\n"); >> diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c >> index ad8a5c586a35..6925f2bb4be1 100644 >> --- a/arch/x86/mm/pat/set_memory.c >> +++ b/arch/x86/mm/pat/set_memory.c >> @@ -18,6 +18,7 @@ >>   #include >>   #include >>   #include >> +#include >>     #include >>   #include >> @@ -1986,7 +1987,7 @@ static int __set_memory_enc_dec(unsigned long >> addr, int numpages, bool enc) >>       int ret; >>         /* Nothing to do if memory encryption is not active */ >> -    if (!mem_encrypt_active()) >> +    if (!prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return 0; >>         /* Should not be working on unaligned addresses */ >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> index abb928894eac..8407224717df 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> @@ -38,6 +38,7 @@ >>   #include >>   #include >>   #include >> +#include >>     #include "amdgpu.h" >>   #include "amdgpu_irq.h" >> @@ -1239,7 +1240,8 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, >>        * however, SME requires an indirect IOMMU mapping because the >> encryption >>        * bit is beyond the DMA mask of the chip. >>        */ >> -    if (mem_encrypt_active() && ((flags & AMD_ASIC_MASK) == CHIP_RAVEN)) { >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT) && >> +        ((flags & AMD_ASIC_MASK) == CHIP_RAVEN)) { >>           dev_info(&pdev->dev, >>                "SME is not compatible with RAVEN\n"); >>           return -ENOTSUPP; >> diff --git a/drivers/gpu/drm/drm_cache.c b/drivers/gpu/drm/drm_cache.c >> index 546599f19a93..4d01d44012fd 100644 >> --- a/drivers/gpu/drm/drm_cache.c >> +++ b/drivers/gpu/drm/drm_cache.c >> @@ -31,7 +31,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>   #include >>     #include >> @@ -204,7 +204,7 @@ bool drm_need_swiotlb(int dma_bits) >>        * Enforce dma_alloc_coherent when memory encryption is active as >> well >>        * for the same reasons as for Xen paravirtual hosts. >>        */ >> -    if (mem_encrypt_active()) >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return true; >>         for (tmp = iomem_resource.child; tmp; tmp = tmp->sibling) >> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> index dde8b35bb950..06ec95a650ba 100644 >> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> @@ -29,7 +29,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>     #include >>   #include >> @@ -634,7 +634,7 @@ static int vmw_dma_select_mode(struct vmw_private >> *dev_priv) >>           [vmw_dma_map_bind] = "Giving up DMA mappings early."}; >>         /* TTM currently doesn't fully support SEV encryption. */ >> -    if (mem_encrypt_active()) >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return -EINVAL; >>         if (vmw_force_coherent) >> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c >> b/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c >> index 3d08f5700bdb..0c70573d3dce 100644 >> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c >> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c >> @@ -28,7 +28,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>     #include >>   @@ -153,7 +153,7 @@ static unsigned long vmw_port_hb_out(struct >> rpc_channel *channel, >>       unsigned long msg_len = strlen(msg); >>         /* HB port can't access encrypted memory. */ >> -    if (hb && !mem_encrypt_active()) { >> +    if (hb && !prot_guest_has(PATTR_MEM_ENCRYPT)) { >>           unsigned long bp = channel->cookie_high; >>             si = (uintptr_t) msg; >> @@ -208,7 +208,7 @@ static unsigned long vmw_port_hb_in(struct >> rpc_channel *channel, char *reply, >>       unsigned long si, di, eax, ebx, ecx, edx; >>         /* HB port can't access encrypted memory */ >> -    if (hb && !mem_encrypt_active()) { >> +    if (hb && !prot_guest_has(PATTR_MEM_ENCRYPT)) { >>           unsigned long bp = channel->cookie_low; >>             si = channel->cookie_high; >> diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c >> index 811a49a95d04..def63a8deab4 100644 >> --- a/drivers/iommu/amd/iommu.c >> +++ b/drivers/iommu/amd/iommu.c >> @@ -31,6 +31,7 @@ >>   #include >>   #include >>   #include >> +#include >>   #include >>   #include >>   #include >> @@ -2178,7 +2179,7 @@ static int amd_iommu_def_domain_type(struct device >> *dev) >>        * active, because some of those devices (AMD GPUs) don't have the >>        * encryption bit in their DMA-mask and require remapping. >>        */ >> -    if (!mem_encrypt_active() && dev_data->iommu_v2) >> +    if (!prot_guest_has(PATTR_MEM_ENCRYPT) && dev_data->iommu_v2) >>           return IOMMU_DOMAIN_IDENTITY; >>         return 0; >> diff --git a/drivers/iommu/amd/iommu_v2.c b/drivers/iommu/amd/iommu_v2.c >> index f8d4ad421e07..ac359bc98523 100644 >> --- a/drivers/iommu/amd/iommu_v2.c >> +++ b/drivers/iommu/amd/iommu_v2.c >> @@ -16,6 +16,7 @@ >>   #include >>   #include >>   #include >> +#include >>     #include "amd_iommu.h" >>   @@ -741,7 +742,7 @@ int amd_iommu_init_device(struct pci_dev *pdev, >> int pasids) >>        * When memory encryption is active the device is likely not in a >>        * direct-mapped domain. Forbid using IOMMUv2 functionality for now. >>        */ >> -    if (mem_encrypt_active()) >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return -ENODEV; >>         if (!amd_iommu_v2_supported()) >> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c >> index 5419c4b9f27a..ddbedb1b5b6b 100644 >> --- a/drivers/iommu/iommu.c >> +++ b/drivers/iommu/iommu.c >> @@ -23,6 +23,7 @@ >>   #include >>   #include >>   #include >> +#include >>   #include >>     static struct kset *iommu_group_kset; >> @@ -127,7 +128,7 @@ static int __init iommu_subsys_init(void) >>           else >>               iommu_set_default_translated(false); >>   -        if (iommu_default_passthrough() && mem_encrypt_active()) { >> +        if (iommu_default_passthrough() && >> prot_guest_has(PATTR_MEM_ENCRYPT)) { >>               pr_info("Memory encryption detected - Disabling default >> IOMMU Passthrough\n"); >>               iommu_set_default_translated(false); >>           } >> diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c >> index 9a15334da208..b466f543dc00 100644 >> --- a/fs/proc/vmcore.c >> +++ b/fs/proc/vmcore.c >> @@ -26,7 +26,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>   #include >>   #include "internal.h" >>   @@ -177,7 +177,7 @@ ssize_t __weak elfcorehdr_read(char *buf, size_t >> count, u64 *ppos) >>    */ >>   ssize_t __weak elfcorehdr_read_notes(char *buf, size_t count, u64 *ppos) >>   { >> -    return read_from_oldmem(buf, count, ppos, 0, mem_encrypt_active()); >> +    return read_from_oldmem(buf, count, ppos, 0, >> prot_guest_has(PATTR_MEM_ENCRYPT)); >>   } >>     /* >> @@ -378,7 +378,7 @@ static ssize_t __read_vmcore(char *buffer, size_t >> buflen, loff_t *fpos, >>                           buflen); >>               start = m->paddr + *fpos - m->offset; >>               tmp = read_from_oldmem(buffer, tsz, &start, >> -                           userbuf, mem_encrypt_active()); >> +                           userbuf, prot_guest_has(PATTR_MEM_ENCRYPT)); >>               if (tmp < 0) >>                   return tmp; >>               buflen -= tsz; >> diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c >> index e50df8d8f87e..2e8dee23a624 100644 >> --- a/kernel/dma/swiotlb.c >> +++ b/kernel/dma/swiotlb.c >> @@ -34,7 +34,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>   #include >>   #ifdef CONFIG_DEBUG_FS >>   #include >> @@ -515,7 +515,7 @@ phys_addr_t swiotlb_tbl_map_single(struct device >> *dev, phys_addr_t orig_addr, >>       if (!mem) >>           panic("Can not allocate SWIOTLB buffer earlier and can't now >> provide you with the DMA bounce buffer"); >>   -    if (mem_encrypt_active()) >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) >>           pr_warn_once("Memory encryption is active and system is using >> DMA bounce buffers\n"); >>         if (mapping_size > alloc_size) { >> From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9827DC4338F for ; Mon, 9 Aug 2021 22:05:22 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EA4A060EC0 for ; Mon, 9 Aug 2021 22:05:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org EA4A060EC0 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.ozlabs.org Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4Gk9B80sx6z30Kl for ; Tue, 10 Aug 2021 08:05:20 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256 header.s=selector1 header.b=E26kXdjn; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=amd.com (client-ip=40.107.92.74; helo=nam10-bn7-obe.outbound.protection.outlook.com; envelope-from=thomas.lendacky@amd.com; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256 header.s=selector1 header.b=E26kXdjn; dkim-atps=neutral Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2074.outbound.protection.outlook.com [40.107.92.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4Gk99H1Zn5z2xtr for ; Tue, 10 Aug 2021 08:04:33 +1000 (AEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i46opE2vdbKf2ZrSprtprFOfqeG9cuPadsC969ro0jGirLoEqmGv1Pq8Ok7Agr3K0gNJJxkRQ7uEyrdz0yrHhOwzdM61T8KtnXLa9G5uisp5+mR7A//tdBVeUvqNEmOX2+UqNF2+f7BMlZy74/vSdtRFvjyaBb3HTciyEplA4h+vOS3Z6B8sfFvhpSQ8rxnHNUatg0Eo6D/CcU94BG0+iVF50SSmMYnqPB288PGR4XOQZ+O9PuZfkJYnLiJJv6+ctPGqP/I+CE24kxQMUPhCBTOjhFzEG3UzhaGjEypPYQ48tv+nOiOJhT5HM4GVat1JWikkCz0Sg+XAcv0/+taeQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qDDc72GiZm6dfKErrWYvKM6m/ePTnVVLaIb8Yz6Ehk4=; b=hT+0DFcf5clrassD1oRbJSgQ6y78lWxP90zJ+WbC2yEDLpBFh1mm4Xup2dx/Nf1oaA+8KPhAaMgYP2M06znaLrTQxSVV+HoWD3EgxqJoiOhxP7Pq+7QECVurjapITVJ04GCcgR4Z6Cb6C1LQ8YjVl+uQQ1LdrMLEbnpuwcLqRWRsxJrATdZ9SMNrao/uelaMK7S2FSrG+LpfPt++U9XC08JXZ9lErcGAQeO8yrdzCrKJi1TR6etE3FiBZqRDDxNmVQdvdh2pQxuhj0P/jcS+hRZwy/NjI8gpDiTljx9e8LqRE2lXXpx3rfUeFXF2bi6xZDZg1/sfFcehc1jqIsAERQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qDDc72GiZm6dfKErrWYvKM6m/ePTnVVLaIb8Yz6Ehk4=; b=E26kXdjn4tzuqwDepjlftxSfkzQiAIaO7cFrfeWCeKv1ky4fYpeEimh+mtZrp1OI1A0gpmZlrvEllzgCfWxMpCUlsqJr7dNZvy2aDOYq6InaM4LnOKp6B7d1UhMB6c4qyYtSMRA3LsMiw6JCzCDjZjhtVDvNPPzS0CpxONefbjk= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=amd.com; Received: from DM4PR12MB5229.namprd12.prod.outlook.com (2603:10b6:5:398::12) by DM4PR12MB5117.namprd12.prod.outlook.com (2603:10b6:5:390::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.17; Mon, 9 Aug 2021 22:04:14 +0000 Received: from DM4PR12MB5229.namprd12.prod.outlook.com ([fe80::73:2581:970b:3208]) by DM4PR12MB5229.namprd12.prod.outlook.com ([fe80::73:2581:970b:3208%3]) with mapi id 15.20.4394.023; Mon, 9 Aug 2021 22:04:14 +0000 Subject: Re: [PATCH 07/11] treewide: Replace the use of mem_encrypt_active() with prot_guest_has() To: Christophe Leroy , linux-kernel@vger.kernel.org, x86@kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, iommu@lists.linux-foundation.org, kvm@vger.kernel.org, linux-efi@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-graphics-maintainer@vmware.com, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-fsdevel@vger.kernel.org References: <029791b24c6412f9427cfe6ec598156c64395964.1627424774.git.thomas.lendacky@amd.com> From: Tom Lendacky Message-ID: Date: Mon, 9 Aug 2021 17:04:11 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SN4PR0501CA0139.namprd05.prod.outlook.com (2603:10b6:803:2c::17) To DM4PR12MB5229.namprd12.prod.outlook.com (2603:10b6:5:398::12) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.236.30.241] (165.204.77.1) by SN4PR0501CA0139.namprd05.prod.outlook.com (2603:10b6:803:2c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.5 via Frontend Transport; Mon, 9 Aug 2021 22:04:12 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a1d08b08-348e-40d7-2dbe-08d95b819fd3 X-MS-TrafficTypeDiagnostic: DM4PR12MB5117: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: m+3JPzPUggX8wii77JpckqdMUuJ42OcNOdsy0s1VqRinMmrGdveqyqqtPHJDVI1dbGHSGb0ceR+5MPYeGPE7ndIXkKzqmVmVv2t3qLJs/ZW4xGV+Q+i5k3ZW2HK1cJQmmSUL2GamnOBrEWprMITi2O2Fjy4Mp5xzoFMEDt4U2PKHjLH7auaM6o6Wjj1vh8qj6Z+MTax0sux9kVrv0wbKq9xHwuZpcEQYzHfa4vyH2mrRRp5JVY1PurS2zUkyR8J2fj0+XJTPIXD8Skpn2bXAuJzcZ3FQcPDF1k3dTEGVEXkYeh1iOkb5Gkv2qJA9Q3ASBxoahMD+G7kPPxZkcArlyC5K7QqJALypMC+bGSF1eJ+ZJj2Y9+yMthNQ5ErI2vIVO8/IwMuwq23LuzWHfDRo4ou6CSz31poq6n0bFC2sHK+R149o5213JkYrh/YamMbV2+QCe8q0V9G8bsvVn54vSEVQnH2v1nEP3Y99T2iIVj+po+zhImZ4vX7WVfHRQdMbayc1vVNqdI2j37KNl4n9Scu8iZ3d888hETBqhlzneGtBJFFJ1r3zO9dxLXJXLiG1oTAT3rr1WoYo378B2uFh9uzjUe4cjF88hLDHornZ5Iwh04uwj89AzWMqFFgm61pjhcm1vUG1pOxiSvPvVVN1UMqWM+0qIUgi0m37iatD+Pv1ZJNqdbXM1aCslM8lV1CZ/CTdnMX3Q+9qP9tXhTswd+5UAi5LG0sIv121xWyMJbjE/qRTaDVRb9uF0ft7LiA9mPAsKWAT5vPte8ZWavnJDKGOLrb5L/+GNfvBxmRRtYI2ORALPGK0Oon9xrMM/SJ9HwW7esfJSWq5G0eHjOpGyw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5229.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(136003)(396003)(376002)(366004)(346002)(921005)(31696002)(2616005)(956004)(6486002)(38100700002)(316002)(2906002)(36756003)(31686004)(86362001)(16576012)(966005)(53546011)(45080400002)(30864003)(478600001)(8936002)(8676002)(5660300002)(66946007)(66476007)(66556008)(26005)(7416002)(7406005)(186003)(54906003)(66574015)(4326008)(83380400001)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?czJtWVR0d28xUTIyNThoMzlvU3V0T0Vhc1lzTHcydkd4N0hxT1JjL0NHZWJI?= =?utf-8?B?blhIdGdON0FXZ3FDQnkvU2R4UUEyRGtKV3hLS1k3SiszbEw3cVdZbGg5L2VH?= =?utf-8?B?V1hFSU5hL1hmSHhvY01LdHVmcnZtZlF3eU5Pc3E4MURUM3krQzJ0WTgzZVVI?= =?utf-8?B?cHN5L0FPNnpaU1RiZ0tUY05iT20xNVJCRmFXN0QvcFM4bkFwOE9xVWdZUmdx?= =?utf-8?B?emZUaVM5MlpKZ2FQOHBBYURrS3JLcFZIYW5Iem1oaUc1ZkxPZE9XZWRDNW1u?= =?utf-8?B?NVdlZWx4NnFrNDdFbytkU2lGUG1ZdkVFeVdRMDB6a2ZQV0l5QXpnZWQrV2hH?= =?utf-8?B?R1hFQTRkU0hSNENWNnpnTStOcEE4STZ5MkRXSmptVkRVL1gvM1lnTG9JUEFY?= =?utf-8?B?MzRmczNDUVVPSWQyNlFEandhbzVBRVFwTDJ2NUZaN0Z6TVpPRFV3eml1ZzNM?= =?utf-8?B?dUtseVdpK1FkT2NWeExabHNvRXJYZDhqOThlWGxmK2hXd0JTam5lRkxwMlZF?= =?utf-8?B?WktLYytncGNyTHNxSElWWVhMTGNYZWxzQlNpbWcrTFF0L1RpQ0ZzY0tkelVn?= =?utf-8?B?S3RhY0FCcUk2R3JIN1RkbjFOL2JNK0pLVStSVHAvcDZHZEZMcUh6QWszN2Nz?= =?utf-8?B?dURXTWhSU0VjajJHaE4vd0RSb005dnlEM2ZhTHhJM0V5RHJyNm5NQkdhOVhk?= =?utf-8?B?dGZreExKZnY5VUovVEpSYi9GRlpMaEZzU2JQK2pNc1lKczBLUU1HRDF2UnMy?= =?utf-8?B?Q0xNN0pzVUZCN3ZoZVZNd204NTV5c1ZIWndGWVEydEErakFsSXlXVUdkMkRh?= =?utf-8?B?cHVWejBDTXJEenZ6dXVqbFVHZVY3aTlJZWc2Smh4RmRpV2owL29NN3QxazVh?= =?utf-8?B?WVMvN0doNWhuZSt2WDhLbzNOdDZiY2dZdWl4U1E5d0lTTzZJNVFLOGdkMmFv?= =?utf-8?B?UnhJdDFlNGxESXBvc1hoT3MyUW1EbW90dkFJeDJkNS9heFN0YzVDQ1NXTFdt?= =?utf-8?B?b0wyUEREQUNMZlV1Tit6eVFYRHBQTGo1QmpDUU84REdBNzJNQ1haZjlVR1Jj?= =?utf-8?B?NzZiWjYrQlJwa2VOVXpPcW5sY2ZpQS9qQkRtdUZ0NWVZM3Yvekdlb1Zyb1A0?= =?utf-8?B?TXZrT3hyS1VpdHd1UGo5TkxuZkRTVWg4dW8xamdTVEhJSUZhZVBvVnJrc1pP?= =?utf-8?B?NjQvOXZxR3BsUDFYVEx5ZVVVTlZ0U09uZHl4dm9DVjJTa0JtYi9rNGlDT3hh?= =?utf-8?B?WjNCU2xxUFBnTUhDZEdwbUNGbTRuYXJINDNBaWlMSFNSL1RlL3piL29pTVBX?= =?utf-8?B?L0FodC9BNTlBT2xJcmE2ZmR3SUd1RXBOVHZDNnJsbU5sZXhDRk14alVFeTBp?= =?utf-8?B?TXVMMjY5L2ZUa01BUzh5eW42Z2pKQ2ROTTk3eTF5aHhUcXFlMGNJVWxsNXkw?= =?utf-8?B?SGZMQTZodmprTzlnaWF0bFlWTmpXeUhxMXlQTFB0djE4R2hNemdTK0RoQjdz?= =?utf-8?B?WlFDWFpoUzdTWTFRbmpHOHpvUDVTOW1ZYWpSSWVQeWRKMzM5MVRWY01oaENr?= =?utf-8?B?KzdiMlJvMXBObTFEcEhkTWNwTEJtNXlLZkxxSWxOUE5jSnhrR25qZ1drOUZN?= =?utf-8?B?UDZpcVJvSEhET0JtaFpjTDQ4SWNLcjdBZDBBa0E4ZXRSVGtZUGFKK1ByV0tJ?= =?utf-8?B?RHh0T1dGMDQ3bG9nZ0JxMG9NODJvc0JRTTFOYjNrYTcyQVRoSE9TRXRCcHJN?= =?utf-8?Q?SDDEmkfuOVtLxQJR4qZvah4PjWqv3hzWzxgYwck?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: a1d08b08-348e-40d7-2dbe-08d95b819fd3 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5229.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2021 22:04:14.2640 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4nhfX73wvO9hcTAWN9QscMsaTxM8C0FcXniu7OsjFycerJJuEK62HlZfWznvt4AHUBScn5VYQjNAIDDgwPXj7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5117 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sathyanarayanan Kuppuswamy , Andi Kleen , Tianyu Lan , Thomas Zimmermann , Baoquan He , Peter Zijlstra , Will Deacon , Joerg Roedel , Dave Hansen , Maarten Lankhorst , Maxime Ripard , David Airlie , Andy Lutomirski , Ingo Molnar , Borislav Petkov , Daniel Vetter , Brijesh Singh , Thomas Gleixner , Dave Young Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On 8/2/21 7:42 AM, Christophe Leroy wrote: > > > Le 28/07/2021 à 00:26, Tom Lendacky a écrit : >> Replace occurrences of mem_encrypt_active() with calls to prot_guest_has() >> with the PATTR_MEM_ENCRYPT attribute. > > > What about > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatchwork.ozlabs.org%2Fproject%2Flinuxppc-dev%2Fpatch%2F20210730114231.23445-1-will%40kernel.org%2F&data=04%7C01%7Cthomas.lendacky%40amd.com%7C1198d62463e04a27be5908d955b30433%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637635049667233612%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Erpu4Du05sVYkYuAfTkXdLvq48%2FlfLS2q%2FZW8DG3tFw%3D&reserved=0> ? Ah, looks like that just went into the PPC tree and isn't part of the tip tree. I'll have to look into how to handle that one. Thanks, Tom > > Christophe > > >> >> Cc: Thomas Gleixner >> Cc: Ingo Molnar >> Cc: Borislav Petkov >> Cc: Dave Hansen >> Cc: Andy Lutomirski >> Cc: Peter Zijlstra >> Cc: David Airlie >> Cc: Daniel Vetter >> Cc: Maarten Lankhorst >> Cc: Maxime Ripard >> Cc: Thomas Zimmermann >> Cc: VMware Graphics >> Cc: Joerg Roedel >> Cc: Will Deacon >> Cc: Dave Young >> Cc: Baoquan He >> Signed-off-by: Tom Lendacky >> --- >>   arch/x86/kernel/head64.c                | 4 ++-- >>   arch/x86/mm/ioremap.c                   | 4 ++-- >>   arch/x86/mm/mem_encrypt.c               | 5 ++--- >>   arch/x86/mm/pat/set_memory.c            | 3 ++- >>   drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 +++- >>   drivers/gpu/drm/drm_cache.c             | 4 ++-- >>   drivers/gpu/drm/vmwgfx/vmwgfx_drv.c     | 4 ++-- >>   drivers/gpu/drm/vmwgfx/vmwgfx_msg.c     | 6 +++--- >>   drivers/iommu/amd/iommu.c               | 3 ++- >>   drivers/iommu/amd/iommu_v2.c            | 3 ++- >>   drivers/iommu/iommu.c                   | 3 ++- >>   fs/proc/vmcore.c                        | 6 +++--- >>   kernel/dma/swiotlb.c                    | 4 ++-- >>   13 files changed, 29 insertions(+), 24 deletions(-) >> >> diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c >> index de01903c3735..cafed6456d45 100644 >> --- a/arch/x86/kernel/head64.c >> +++ b/arch/x86/kernel/head64.c >> @@ -19,7 +19,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>   #include >>     #include >> @@ -285,7 +285,7 @@ unsigned long __head __startup_64(unsigned long >> physaddr, >>        * there is no need to zero it after changing the memory encryption >>        * attribute. >>        */ >> -    if (mem_encrypt_active()) { >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) { >>           vaddr = (unsigned long)__start_bss_decrypted; >>           vaddr_end = (unsigned long)__end_bss_decrypted; >>           for (; vaddr < vaddr_end; vaddr += PMD_SIZE) { >> diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c >> index 0f2d5ace5986..5e1c1f5cbbe8 100644 >> --- a/arch/x86/mm/ioremap.c >> +++ b/arch/x86/mm/ioremap.c >> @@ -693,7 +693,7 @@ static bool __init >> early_memremap_is_setup_data(resource_size_t phys_addr, >>   bool arch_memremap_can_ram_remap(resource_size_t phys_addr, unsigned >> long size, >>                    unsigned long flags) >>   { >> -    if (!mem_encrypt_active()) >> +    if (!prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return true; >>         if (flags & MEMREMAP_ENC) >> @@ -723,7 +723,7 @@ pgprot_t __init >> early_memremap_pgprot_adjust(resource_size_t phys_addr, >>   { >>       bool encrypted_prot; >>   -    if (!mem_encrypt_active()) >> +    if (!prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return prot; >>         encrypted_prot = true; >> diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c >> index 451de8e84fce..0f1533dbe81c 100644 >> --- a/arch/x86/mm/mem_encrypt.c >> +++ b/arch/x86/mm/mem_encrypt.c >> @@ -364,8 +364,7 @@ int __init early_set_memory_encrypted(unsigned long >> vaddr, unsigned long size) >>   /* >>    * SME and SEV are very similar but they are not the same, so there are >>    * times that the kernel will need to distinguish between SME and SEV. >> The >> - * sme_active() and sev_active() functions are used for this.  When a >> - * distinction isn't needed, the mem_encrypt_active() function can be >> used. >> + * sme_active() and sev_active() functions are used for this. >>    * >>    * The trampoline code is a good example for this requirement.  Before >>    * paging is activated, SME will access all memory as decrypted, but SEV >> @@ -451,7 +450,7 @@ void __init mem_encrypt_free_decrypted_mem(void) >>        * The unused memory range was mapped decrypted, change the >> encryption >>        * attribute from decrypted to encrypted before freeing it. >>        */ >> -    if (mem_encrypt_active()) { >> +    if (sme_me_mask) { >>           r = set_memory_encrypted(vaddr, npages); >>           if (r) { >>               pr_warn("failed to free unused decrypted pages\n"); >> diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c >> index ad8a5c586a35..6925f2bb4be1 100644 >> --- a/arch/x86/mm/pat/set_memory.c >> +++ b/arch/x86/mm/pat/set_memory.c >> @@ -18,6 +18,7 @@ >>   #include >>   #include >>   #include >> +#include >>     #include >>   #include >> @@ -1986,7 +1987,7 @@ static int __set_memory_enc_dec(unsigned long >> addr, int numpages, bool enc) >>       int ret; >>         /* Nothing to do if memory encryption is not active */ >> -    if (!mem_encrypt_active()) >> +    if (!prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return 0; >>         /* Should not be working on unaligned addresses */ >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> index abb928894eac..8407224717df 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> @@ -38,6 +38,7 @@ >>   #include >>   #include >>   #include >> +#include >>     #include "amdgpu.h" >>   #include "amdgpu_irq.h" >> @@ -1239,7 +1240,8 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, >>        * however, SME requires an indirect IOMMU mapping because the >> encryption >>        * bit is beyond the DMA mask of the chip. >>        */ >> -    if (mem_encrypt_active() && ((flags & AMD_ASIC_MASK) == CHIP_RAVEN)) { >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT) && >> +        ((flags & AMD_ASIC_MASK) == CHIP_RAVEN)) { >>           dev_info(&pdev->dev, >>                "SME is not compatible with RAVEN\n"); >>           return -ENOTSUPP; >> diff --git a/drivers/gpu/drm/drm_cache.c b/drivers/gpu/drm/drm_cache.c >> index 546599f19a93..4d01d44012fd 100644 >> --- a/drivers/gpu/drm/drm_cache.c >> +++ b/drivers/gpu/drm/drm_cache.c >> @@ -31,7 +31,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>   #include >>     #include >> @@ -204,7 +204,7 @@ bool drm_need_swiotlb(int dma_bits) >>        * Enforce dma_alloc_coherent when memory encryption is active as >> well >>        * for the same reasons as for Xen paravirtual hosts. >>        */ >> -    if (mem_encrypt_active()) >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return true; >>         for (tmp = iomem_resource.child; tmp; tmp = tmp->sibling) >> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> index dde8b35bb950..06ec95a650ba 100644 >> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> @@ -29,7 +29,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>     #include >>   #include >> @@ -634,7 +634,7 @@ static int vmw_dma_select_mode(struct vmw_private >> *dev_priv) >>           [vmw_dma_map_bind] = "Giving up DMA mappings early."}; >>         /* TTM currently doesn't fully support SEV encryption. */ >> -    if (mem_encrypt_active()) >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return -EINVAL; >>         if (vmw_force_coherent) >> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c >> b/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c >> index 3d08f5700bdb..0c70573d3dce 100644 >> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c >> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c >> @@ -28,7 +28,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>     #include >>   @@ -153,7 +153,7 @@ static unsigned long vmw_port_hb_out(struct >> rpc_channel *channel, >>       unsigned long msg_len = strlen(msg); >>         /* HB port can't access encrypted memory. */ >> -    if (hb && !mem_encrypt_active()) { >> +    if (hb && !prot_guest_has(PATTR_MEM_ENCRYPT)) { >>           unsigned long bp = channel->cookie_high; >>             si = (uintptr_t) msg; >> @@ -208,7 +208,7 @@ static unsigned long vmw_port_hb_in(struct >> rpc_channel *channel, char *reply, >>       unsigned long si, di, eax, ebx, ecx, edx; >>         /* HB port can't access encrypted memory */ >> -    if (hb && !mem_encrypt_active()) { >> +    if (hb && !prot_guest_has(PATTR_MEM_ENCRYPT)) { >>           unsigned long bp = channel->cookie_low; >>             si = channel->cookie_high; >> diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c >> index 811a49a95d04..def63a8deab4 100644 >> --- a/drivers/iommu/amd/iommu.c >> +++ b/drivers/iommu/amd/iommu.c >> @@ -31,6 +31,7 @@ >>   #include >>   #include >>   #include >> +#include >>   #include >>   #include >>   #include >> @@ -2178,7 +2179,7 @@ static int amd_iommu_def_domain_type(struct device >> *dev) >>        * active, because some of those devices (AMD GPUs) don't have the >>        * encryption bit in their DMA-mask and require remapping. >>        */ >> -    if (!mem_encrypt_active() && dev_data->iommu_v2) >> +    if (!prot_guest_has(PATTR_MEM_ENCRYPT) && dev_data->iommu_v2) >>           return IOMMU_DOMAIN_IDENTITY; >>         return 0; >> diff --git a/drivers/iommu/amd/iommu_v2.c b/drivers/iommu/amd/iommu_v2.c >> index f8d4ad421e07..ac359bc98523 100644 >> --- a/drivers/iommu/amd/iommu_v2.c >> +++ b/drivers/iommu/amd/iommu_v2.c >> @@ -16,6 +16,7 @@ >>   #include >>   #include >>   #include >> +#include >>     #include "amd_iommu.h" >>   @@ -741,7 +742,7 @@ int amd_iommu_init_device(struct pci_dev *pdev, >> int pasids) >>        * When memory encryption is active the device is likely not in a >>        * direct-mapped domain. Forbid using IOMMUv2 functionality for now. >>        */ >> -    if (mem_encrypt_active()) >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return -ENODEV; >>         if (!amd_iommu_v2_supported()) >> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c >> index 5419c4b9f27a..ddbedb1b5b6b 100644 >> --- a/drivers/iommu/iommu.c >> +++ b/drivers/iommu/iommu.c >> @@ -23,6 +23,7 @@ >>   #include >>   #include >>   #include >> +#include >>   #include >>     static struct kset *iommu_group_kset; >> @@ -127,7 +128,7 @@ static int __init iommu_subsys_init(void) >>           else >>               iommu_set_default_translated(false); >>   -        if (iommu_default_passthrough() && mem_encrypt_active()) { >> +        if (iommu_default_passthrough() && >> prot_guest_has(PATTR_MEM_ENCRYPT)) { >>               pr_info("Memory encryption detected - Disabling default >> IOMMU Passthrough\n"); >>               iommu_set_default_translated(false); >>           } >> diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c >> index 9a15334da208..b466f543dc00 100644 >> --- a/fs/proc/vmcore.c >> +++ b/fs/proc/vmcore.c >> @@ -26,7 +26,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>   #include >>   #include "internal.h" >>   @@ -177,7 +177,7 @@ ssize_t __weak elfcorehdr_read(char *buf, size_t >> count, u64 *ppos) >>    */ >>   ssize_t __weak elfcorehdr_read_notes(char *buf, size_t count, u64 *ppos) >>   { >> -    return read_from_oldmem(buf, count, ppos, 0, mem_encrypt_active()); >> +    return read_from_oldmem(buf, count, ppos, 0, >> prot_guest_has(PATTR_MEM_ENCRYPT)); >>   } >>     /* >> @@ -378,7 +378,7 @@ static ssize_t __read_vmcore(char *buffer, size_t >> buflen, loff_t *fpos, >>                           buflen); >>               start = m->paddr + *fpos - m->offset; >>               tmp = read_from_oldmem(buffer, tsz, &start, >> -                           userbuf, mem_encrypt_active()); >> +                           userbuf, prot_guest_has(PATTR_MEM_ENCRYPT)); >>               if (tmp < 0) >>                   return tmp; >>               buflen -= tsz; >> diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c >> index e50df8d8f87e..2e8dee23a624 100644 >> --- a/kernel/dma/swiotlb.c >> +++ b/kernel/dma/swiotlb.c >> @@ -34,7 +34,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>   #include >>   #ifdef CONFIG_DEBUG_FS >>   #include >> @@ -515,7 +515,7 @@ phys_addr_t swiotlb_tbl_map_single(struct device >> *dev, phys_addr_t orig_addr, >>       if (!mem) >>           panic("Can not allocate SWIOTLB buffer earlier and can't now >> provide you with the DMA bounce buffer"); >>   -    if (mem_encrypt_active()) >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) >>           pr_warn_once("Memory encryption is active and system is using >> DMA bounce buffers\n"); >>         if (mapping_size > alloc_size) { >> From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 544E8C4338F for ; Mon, 9 Aug 2021 22:04:29 +0000 (UTC) Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E320560FC2 for ; Mon, 9 Aug 2021 22:04:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org E320560FC2 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lists.linux-foundation.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 9DEAD40141; Mon, 9 Aug 2021 22:04:28 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Gcb87chS5hXx; Mon, 9 Aug 2021 22:04:25 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp4.osuosl.org (Postfix) with ESMTPS id 979A240297; Mon, 9 Aug 2021 22:04:24 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 7B4C1C001A; Mon, 9 Aug 2021 22:04:24 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 17D35C000E for ; Mon, 9 Aug 2021 22:04:23 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id E3AF140338 for ; Mon, 9 Aug 2021 22:04:22 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp2.osuosl.org (amavisd-new); dkim=pass (1024-bit key) header.d=amd.com Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3vh8aE886oki for ; Mon, 9 Aug 2021 22:04:18 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2067.outbound.protection.outlook.com [40.107.237.67]) by smtp2.osuosl.org (Postfix) with ESMTPS id 115944035D for ; Mon, 9 Aug 2021 22:04:17 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i46opE2vdbKf2ZrSprtprFOfqeG9cuPadsC969ro0jGirLoEqmGv1Pq8Ok7Agr3K0gNJJxkRQ7uEyrdz0yrHhOwzdM61T8KtnXLa9G5uisp5+mR7A//tdBVeUvqNEmOX2+UqNF2+f7BMlZy74/vSdtRFvjyaBb3HTciyEplA4h+vOS3Z6B8sfFvhpSQ8rxnHNUatg0Eo6D/CcU94BG0+iVF50SSmMYnqPB288PGR4XOQZ+O9PuZfkJYnLiJJv6+ctPGqP/I+CE24kxQMUPhCBTOjhFzEG3UzhaGjEypPYQ48tv+nOiOJhT5HM4GVat1JWikkCz0Sg+XAcv0/+taeQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qDDc72GiZm6dfKErrWYvKM6m/ePTnVVLaIb8Yz6Ehk4=; b=hT+0DFcf5clrassD1oRbJSgQ6y78lWxP90zJ+WbC2yEDLpBFh1mm4Xup2dx/Nf1oaA+8KPhAaMgYP2M06znaLrTQxSVV+HoWD3EgxqJoiOhxP7Pq+7QECVurjapITVJ04GCcgR4Z6Cb6C1LQ8YjVl+uQQ1LdrMLEbnpuwcLqRWRsxJrATdZ9SMNrao/uelaMK7S2FSrG+LpfPt++U9XC08JXZ9lErcGAQeO8yrdzCrKJi1TR6etE3FiBZqRDDxNmVQdvdh2pQxuhj0P/jcS+hRZwy/NjI8gpDiTljx9e8LqRE2lXXpx3rfUeFXF2bi6xZDZg1/sfFcehc1jqIsAERQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qDDc72GiZm6dfKErrWYvKM6m/ePTnVVLaIb8Yz6Ehk4=; b=E26kXdjn4tzuqwDepjlftxSfkzQiAIaO7cFrfeWCeKv1ky4fYpeEimh+mtZrp1OI1A0gpmZlrvEllzgCfWxMpCUlsqJr7dNZvy2aDOYq6InaM4LnOKp6B7d1UhMB6c4qyYtSMRA3LsMiw6JCzCDjZjhtVDvNPPzS0CpxONefbjk= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=amd.com; Received: from DM4PR12MB5229.namprd12.prod.outlook.com (2603:10b6:5:398::12) by DM4PR12MB5117.namprd12.prod.outlook.com (2603:10b6:5:390::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.17; Mon, 9 Aug 2021 22:04:14 +0000 Received: from DM4PR12MB5229.namprd12.prod.outlook.com ([fe80::73:2581:970b:3208]) by DM4PR12MB5229.namprd12.prod.outlook.com ([fe80::73:2581:970b:3208%3]) with mapi id 15.20.4394.023; Mon, 9 Aug 2021 22:04:14 +0000 Subject: Re: [PATCH 07/11] treewide: Replace the use of mem_encrypt_active() with prot_guest_has() To: Christophe Leroy , linux-kernel@vger.kernel.org, x86@kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, iommu@lists.linux-foundation.org, kvm@vger.kernel.org, linux-efi@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-graphics-maintainer@vmware.com, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-fsdevel@vger.kernel.org References: <029791b24c6412f9427cfe6ec598156c64395964.1627424774.git.thomas.lendacky@amd.com> Message-ID: Date: Mon, 9 Aug 2021 17:04:11 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 In-Reply-To: Content-Language: en-US X-ClientProxiedBy: SN4PR0501CA0139.namprd05.prod.outlook.com (2603:10b6:803:2c::17) To DM4PR12MB5229.namprd12.prod.outlook.com (2603:10b6:5:398::12) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.236.30.241] (165.204.77.1) by SN4PR0501CA0139.namprd05.prod.outlook.com (2603:10b6:803:2c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.5 via Frontend Transport; Mon, 9 Aug 2021 22:04:12 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a1d08b08-348e-40d7-2dbe-08d95b819fd3 X-MS-TrafficTypeDiagnostic: DM4PR12MB5117: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: m+3JPzPUggX8wii77JpckqdMUuJ42OcNOdsy0s1VqRinMmrGdveqyqqtPHJDVI1dbGHSGb0ceR+5MPYeGPE7ndIXkKzqmVmVv2t3qLJs/ZW4xGV+Q+i5k3ZW2HK1cJQmmSUL2GamnOBrEWprMITi2O2Fjy4Mp5xzoFMEDt4U2PKHjLH7auaM6o6Wjj1vh8qj6Z+MTax0sux9kVrv0wbKq9xHwuZpcEQYzHfa4vyH2mrRRp5JVY1PurS2zUkyR8J2fj0+XJTPIXD8Skpn2bXAuJzcZ3FQcPDF1k3dTEGVEXkYeh1iOkb5Gkv2qJA9Q3ASBxoahMD+G7kPPxZkcArlyC5K7QqJALypMC+bGSF1eJ+ZJj2Y9+yMthNQ5ErI2vIVO8/IwMuwq23LuzWHfDRo4ou6CSz31poq6n0bFC2sHK+R149o5213JkYrh/YamMbV2+QCe8q0V9G8bsvVn54vSEVQnH2v1nEP3Y99T2iIVj+po+zhImZ4vX7WVfHRQdMbayc1vVNqdI2j37KNl4n9Scu8iZ3d888hETBqhlzneGtBJFFJ1r3zO9dxLXJXLiG1oTAT3rr1WoYo378B2uFh9uzjUe4cjF88hLDHornZ5Iwh04uwj89AzWMqFFgm61pjhcm1vUG1pOxiSvPvVVN1UMqWM+0qIUgi0m37iatD+Pv1ZJNqdbXM1aCslM8lV1CZ/CTdnMX3Q+9qP9tXhTswd+5UAi5LG0sIv121xWyMJbjE/qRTaDVRb9uF0ft7LiA9mPAsKWAT5vPte8ZWavnJDKGOLrb5L/+GNfvBxmRRtYI2ORALPGK0Oon9xrMM/SJ9HwW7esfJSWq5G0eHjOpGyw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5229.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(136003)(396003)(376002)(366004)(346002)(921005)(31696002)(2616005)(956004)(6486002)(38100700002)(316002)(2906002)(36756003)(31686004)(86362001)(16576012)(966005)(53546011)(45080400002)(30864003)(478600001)(8936002)(8676002)(5660300002)(66946007)(66476007)(66556008)(26005)(7416002)(7406005)(186003)(54906003)(66574015)(4326008)(83380400001)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?czJtWVR0d28xUTIyNThoMzlvU3V0T0Vhc1lzTHcydkd4N0hxT1JjL0NHZWJI?= =?utf-8?B?blhIdGdON0FXZ3FDQnkvU2R4UUEyRGtKV3hLS1k3SiszbEw3cVdZbGg5L2VH?= =?utf-8?B?V1hFSU5hL1hmSHhvY01LdHVmcnZtZlF3eU5Pc3E4MURUM3krQzJ0WTgzZVVI?= =?utf-8?B?cHN5L0FPNnpaU1RiZ0tUY05iT20xNVJCRmFXN0QvcFM4bkFwOE9xVWdZUmdx?= =?utf-8?B?emZUaVM5MlpKZ2FQOHBBYURrS3JLcFZIYW5Iem1oaUc1ZkxPZE9XZWRDNW1u?= =?utf-8?B?NVdlZWx4NnFrNDdFbytkU2lGUG1ZdkVFeVdRMDB6a2ZQV0l5QXpnZWQrV2hH?= =?utf-8?B?R1hFQTRkU0hSNENWNnpnTStOcEE4STZ5MkRXSmptVkRVL1gvM1lnTG9JUEFY?= =?utf-8?B?MzRmczNDUVVPSWQyNlFEandhbzVBRVFwTDJ2NUZaN0Z6TVpPRFV3eml1ZzNM?= =?utf-8?B?dUtseVdpK1FkT2NWeExabHNvRXJYZDhqOThlWGxmK2hXd0JTam5lRkxwMlZF?= =?utf-8?B?WktLYytncGNyTHNxSElWWVhMTGNYZWxzQlNpbWcrTFF0L1RpQ0ZzY0tkelVn?= =?utf-8?B?S3RhY0FCcUk2R3JIN1RkbjFOL2JNK0pLVStSVHAvcDZHZEZMcUh6QWszN2Nz?= =?utf-8?B?dURXTWhSU0VjajJHaE4vd0RSb005dnlEM2ZhTHhJM0V5RHJyNm5NQkdhOVhk?= =?utf-8?B?dGZreExKZnY5VUovVEpSYi9GRlpMaEZzU2JQK2pNc1lKczBLUU1HRDF2UnMy?= =?utf-8?B?Q0xNN0pzVUZCN3ZoZVZNd204NTV5c1ZIWndGWVEydEErakFsSXlXVUdkMkRh?= =?utf-8?B?cHVWejBDTXJEenZ6dXVqbFVHZVY3aTlJZWc2Smh4RmRpV2owL29NN3QxazVh?= =?utf-8?B?WVMvN0doNWhuZSt2WDhLbzNOdDZiY2dZdWl4U1E5d0lTTzZJNVFLOGdkMmFv?= =?utf-8?B?UnhJdDFlNGxESXBvc1hoT3MyUW1EbW90dkFJeDJkNS9heFN0YzVDQ1NXTFdt?= =?utf-8?B?b0wyUEREQUNMZlV1Tit6eVFYRHBQTGo1QmpDUU84REdBNzJNQ1haZjlVR1Jj?= =?utf-8?B?NzZiWjYrQlJwa2VOVXpPcW5sY2ZpQS9qQkRtdUZ0NWVZM3Yvekdlb1Zyb1A0?= =?utf-8?B?TXZrT3hyS1VpdHd1UGo5TkxuZkRTVWg4dW8xamdTVEhJSUZhZVBvVnJrc1pP?= =?utf-8?B?NjQvOXZxR3BsUDFYVEx5ZVVVTlZ0U09uZHl4dm9DVjJTa0JtYi9rNGlDT3hh?= =?utf-8?B?WjNCU2xxUFBnTUhDZEdwbUNGbTRuYXJINDNBaWlMSFNSL1RlL3piL29pTVBX?= =?utf-8?B?L0FodC9BNTlBT2xJcmE2ZmR3SUd1RXBOVHZDNnJsbU5sZXhDRk14alVFeTBp?= =?utf-8?B?TXVMMjY5L2ZUa01BUzh5eW42Z2pKQ2ROTTk3eTF5aHhUcXFlMGNJVWxsNXkw?= =?utf-8?B?SGZMQTZodmprTzlnaWF0bFlWTmpXeUhxMXlQTFB0djE4R2hNemdTK0RoQjdz?= =?utf-8?B?WlFDWFpoUzdTWTFRbmpHOHpvUDVTOW1ZYWpSSWVQeWRKMzM5MVRWY01oaENr?= =?utf-8?B?KzdiMlJvMXBObTFEcEhkTWNwTEJtNXlLZkxxSWxOUE5jSnhrR25qZ1drOUZN?= =?utf-8?B?UDZpcVJvSEhET0JtaFpjTDQ4SWNLcjdBZDBBa0E4ZXRSVGtZUGFKK1ByV0tJ?= =?utf-8?B?RHh0T1dGMDQ3bG9nZ0JxMG9NODJvc0JRTTFOYjNrYTcyQVRoSE9TRXRCcHJN?= =?utf-8?Q?SDDEmkfuOVtLxQJR4qZvah4PjWqv3hzWzxgYwck?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: a1d08b08-348e-40d7-2dbe-08d95b819fd3 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5229.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2021 22:04:14.2640 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4nhfX73wvO9hcTAWN9QscMsaTxM8C0FcXniu7OsjFycerJJuEK62HlZfWznvt4AHUBScn5VYQjNAIDDgwPXj7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5117 Cc: Andi Kleen , Tianyu Lan , Thomas Zimmermann , Peter Zijlstra , Will Deacon , Dave Hansen , Maarten Lankhorst , Maxime Ripard , David Airlie , Andy Lutomirski , Ingo Molnar , Borislav Petkov , Daniel Vetter , Brijesh Singh , Thomas Gleixner , Dave Young X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Tom Lendacky via iommu Reply-To: Tom Lendacky Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: iommu-bounces@lists.linux-foundation.org Sender: "iommu" T24gOC8yLzIxIDc6NDIgQU0sIENocmlzdG9waGUgTGVyb3kgd3JvdGU6Cj4gCj4gCj4gTGUgMjgv MDcvMjAyMSDDoCAwMDoyNiwgVG9tIExlbmRhY2t5IGEgw6ljcml0wqA6Cj4+IFJlcGxhY2Ugb2Nj dXJyZW5jZXMgb2YgbWVtX2VuY3J5cHRfYWN0aXZlKCkgd2l0aCBjYWxscyB0byBwcm90X2d1ZXN0 X2hhcygpCj4+IHdpdGggdGhlIFBBVFRSX01FTV9FTkNSWVBUIGF0dHJpYnV0ZS4KPiAKPiAKPiBX aGF0IGFib3V0Cj4gaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNv bS8/dXJsPWh0dHBzJTNBJTJGJTJGcGF0Y2h3b3JrLm96bGFicy5vcmclMkZwcm9qZWN0JTJGbGlu dXhwcGMtZGV2JTJGcGF0Y2glMkYyMDIxMDczMDExNDIzMS4yMzQ0NS0xLXdpbGwlNDBrZXJuZWwu b3JnJTJGJmFtcDtkYXRhPTA0JTdDMDElN0N0aG9tYXMubGVuZGFja3klNDBhbWQuY29tJTdDMTE5 OGQ2MjQ2M2UwNGEyN2JlNTkwOGQ5NTViMzA0MzMlN0MzZGQ4OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5 OTRlMTgzZCU3QzAlN0MwJTdDNjM3NjM1MDQ5NjY3MjMzNjEyJTdDVW5rbm93biU3Q1RXRnBiR1pz YjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lM Q0pYVkNJNk1uMCUzRCU3QzEwMDAmYW1wO3NkYXRhPUVycHU0RHUwNXNWWWtZdUFmVGtYZEx2cTQ4 JTJGbGZMUzJxJTJGWlc4REczdEZ3JTNEJmFtcDtyZXNlcnZlZD0wPiA/CgpBaCwgbG9va3MgbGlr ZSB0aGF0IGp1c3Qgd2VudCBpbnRvIHRoZSBQUEMgdHJlZSBhbmQgaXNuJ3QgcGFydCBvZiB0aGUg dGlwCnRyZWUuIEknbGwgaGF2ZSB0byBsb29rIGludG8gaG93IHRvIGhhbmRsZSB0aGF0IG9uZS4K ClRoYW5rcywKVG9tCgo+IAo+IENocmlzdG9waGUKPiAKPiAKPj4KPj4gQ2M6IFRob21hcyBHbGVp eG5lciA8dGdseEBsaW51dHJvbml4LmRlPgo+PiBDYzogSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhh dC5jb20+Cj4+IENjOiBCb3Jpc2xhdiBQZXRrb3YgPGJwQGFsaWVuOC5kZT4KPj4gQ2M6IERhdmUg SGFuc2VuIDxkYXZlLmhhbnNlbkBsaW51eC5pbnRlbC5jb20+Cj4+IENjOiBBbmR5IEx1dG9taXJz a2kgPGx1dG9Aa2VybmVsLm9yZz4KPj4gQ2M6IFBldGVyIFppamxzdHJhIDxwZXRlcnpAaW5mcmFk ZWFkLm9yZz4KPj4gQ2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4KPj4gQ2M6IERh bmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KPj4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxt YWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4+IENjOiBNYXhpbWUgUmlwYXJkIDxt cmlwYXJkQGtlcm5lbC5vcmc+Cj4+IENjOiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5A c3VzZS5kZT4KPj4gQ2M6IFZNd2FyZSBHcmFwaGljcyA8bGludXgtZ3JhcGhpY3MtbWFpbnRhaW5l ckB2bXdhcmUuY29tPgo+PiBDYzogSm9lcmcgUm9lZGVsIDxqb3JvQDhieXRlcy5vcmc+Cj4+IENj OiBXaWxsIERlYWNvbiA8d2lsbEBrZXJuZWwub3JnPgo+PiBDYzogRGF2ZSBZb3VuZyA8ZHlvdW5n QHJlZGhhdC5jb20+Cj4+IENjOiBCYW9xdWFuIEhlIDxiaGVAcmVkaGF0LmNvbT4KPj4gU2lnbmVk LW9mZi1ieTogVG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4KPj4gLS0tCj4+ IMKgIGFyY2gveDg2L2tlcm5lbC9oZWFkNjQuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB8IDQgKystLQo+PiDCoCBhcmNoL3g4Ni9tbS9pb3JlbWFwLmPCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgfCA0ICsrLS0KPj4gwqAgYXJjaC94ODYvbW0vbWVtX2VuY3J5cHQu Y8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCA1ICsrLS0tCj4+IMKgIGFyY2gveDg2L21t L3BhdC9zZXRfbWVtb3J5LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMyArKy0KPj4gwqAgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jIHwgNCArKystCj4+IMKgIGRyaXZl cnMvZ3B1L2RybS9kcm1fY2FjaGUuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDQgKystLQo+ PiDCoCBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuY8KgwqDCoMKgIHwgNCArKy0t Cj4+IMKgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21zZy5jwqDCoMKgwqAgfCA2ICsr Ky0tLQo+PiDCoCBkcml2ZXJzL2lvbW11L2FtZC9pb21tdS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB8IDMgKystCj4+IMKgIGRyaXZlcnMvaW9tbXUvYW1kL2lvbW11X3YyLmPCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHwgMyArKy0KPj4gwqAgZHJpdmVycy9pb21tdS9pb21tdS5jwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMyArKy0KPj4gwqAgZnMvcHJvYy92bWNv cmUuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCA2ICsr Ky0tLQo+PiDCoCBrZXJuZWwvZG1hL3N3aW90bGIuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHwgNCArKy0tCj4+IMKgIDEzIGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlv bnMoKyksIDI0IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVs L2hlYWQ2NC5jIGIvYXJjaC94ODYva2VybmVsL2hlYWQ2NC5jCj4+IGluZGV4IGRlMDE5MDNjMzcz NS4uY2FmZWQ2NDU2ZDQ1IDEwMDY0NAo+PiAtLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZDY0LmMK Pj4gKysrIGIvYXJjaC94ODYva2VybmVsL2hlYWQ2NC5jCj4+IEBAIC0xOSw3ICsxOSw3IEBACj4+ IMKgICNpbmNsdWRlIDxsaW51eC9zdGFydF9rZXJuZWwuaD4KPj4gwqAgI2luY2x1ZGUgPGxpbnV4 L2lvLmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9tZW1ibG9jay5oPgo+PiAtI2luY2x1ZGUgPGxp bnV4L21lbV9lbmNyeXB0Lmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvcHJvdGVjdGVkX2d1ZXN0Lmg+ Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9wZ3RhYmxlLmg+Cj4+IMKgIMKgICNpbmNsdWRlIDxhc20v cHJvY2Vzc29yLmg+Cj4+IEBAIC0yODUsNyArMjg1LDcgQEAgdW5zaWduZWQgbG9uZyBfX2hlYWQg X19zdGFydHVwXzY0KHVuc2lnbmVkIGxvbmcKPj4gcGh5c2FkZHIsCj4+IMKgwqDCoMKgwqDCoCAq IHRoZXJlIGlzIG5vIG5lZWQgdG8gemVybyBpdCBhZnRlciBjaGFuZ2luZyB0aGUgbWVtb3J5IGVu Y3J5cHRpb24KPj4gwqDCoMKgwqDCoMKgICogYXR0cmlidXRlLgo+PiDCoMKgwqDCoMKgwqAgKi8K Pj4gLcKgwqDCoCBpZiAobWVtX2VuY3J5cHRfYWN0aXZlKCkpIHsKPj4gK8KgwqDCoCBpZiAocHJv dF9ndWVzdF9oYXMoUEFUVFJfTUVNX0VOQ1JZUFQpKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB2 YWRkciA9ICh1bnNpZ25lZCBsb25nKV9fc3RhcnRfYnNzX2RlY3J5cHRlZDsKPj4gwqDCoMKgwqDC oMKgwqDCoMKgIHZhZGRyX2VuZCA9ICh1bnNpZ25lZCBsb25nKV9fZW5kX2Jzc19kZWNyeXB0ZWQ7 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBmb3IgKDsgdmFkZHIgPCB2YWRkcl9lbmQ7IHZhZGRyICs9 IFBNRF9TSVpFKSB7Cj4+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9pb3JlbWFwLmMgYi9hcmNo L3g4Ni9tbS9pb3JlbWFwLmMKPj4gaW5kZXggMGYyZDVhY2U1OTg2Li41ZTFjMWY1Y2JiZTggMTAw NjQ0Cj4+IC0tLSBhL2FyY2gveDg2L21tL2lvcmVtYXAuYwo+PiArKysgYi9hcmNoL3g4Ni9tbS9p b3JlbWFwLmMKPj4gQEAgLTY5Myw3ICs2OTMsNyBAQCBzdGF0aWMgYm9vbCBfX2luaXQKPj4gZWFy bHlfbWVtcmVtYXBfaXNfc2V0dXBfZGF0YShyZXNvdXJjZV9zaXplX3QgcGh5c19hZGRyLAo+PiDC oCBib29sIGFyY2hfbWVtcmVtYXBfY2FuX3JhbV9yZW1hcChyZXNvdXJjZV9zaXplX3QgcGh5c19h ZGRyLCB1bnNpZ25lZAo+PiBsb25nIHNpemUsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIGZsYWdzKQo+PiDCoCB7Cj4+IC3CoMKgwqAgaWYgKCFt ZW1fZW5jcnlwdF9hY3RpdmUoKSkKPj4gK8KgwqDCoCBpZiAoIXByb3RfZ3Vlc3RfaGFzKFBBVFRS X01FTV9FTkNSWVBUKSkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiB0cnVlOwo+PiDCoCDC oMKgwqDCoMKgIGlmIChmbGFncyAmIE1FTVJFTUFQX0VOQykKPj4gQEAgLTcyMyw3ICs3MjMsNyBA QCBwZ3Byb3RfdCBfX2luaXQKPj4gZWFybHlfbWVtcmVtYXBfcGdwcm90X2FkanVzdChyZXNvdXJj ZV9zaXplX3QgcGh5c19hZGRyLAo+PiDCoCB7Cj4+IMKgwqDCoMKgwqAgYm9vbCBlbmNyeXB0ZWRf cHJvdDsKPj4gwqAgLcKgwqDCoCBpZiAoIW1lbV9lbmNyeXB0X2FjdGl2ZSgpKQo+PiArwqDCoMKg IGlmICghcHJvdF9ndWVzdF9oYXMoUEFUVFJfTUVNX0VOQ1JZUFQpKQo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgcmV0dXJuIHByb3Q7Cj4+IMKgIMKgwqDCoMKgwqAgZW5jcnlwdGVkX3Byb3QgPSB0cnVl Owo+PiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vbWVtX2VuY3J5cHQuYyBiL2FyY2gveDg2L21t L21lbV9lbmNyeXB0LmMKPj4gaW5kZXggNDUxZGU4ZTg0ZmNlLi4wZjE1MzNkYmU4MWMgMTAwNjQ0 Cj4+IC0tLSBhL2FyY2gveDg2L21tL21lbV9lbmNyeXB0LmMKPj4gKysrIGIvYXJjaC94ODYvbW0v bWVtX2VuY3J5cHQuYwo+PiBAQCAtMzY0LDggKzM2NCw3IEBAIGludCBfX2luaXQgZWFybHlfc2V0 X21lbW9yeV9lbmNyeXB0ZWQodW5zaWduZWQgbG9uZwo+PiB2YWRkciwgdW5zaWduZWQgbG9uZyBz aXplKQo+PiDCoCAvKgo+PiDCoMKgICogU01FIGFuZCBTRVYgYXJlIHZlcnkgc2ltaWxhciBidXQg dGhleSBhcmUgbm90IHRoZSBzYW1lLCBzbyB0aGVyZSBhcmUKPj4gwqDCoCAqIHRpbWVzIHRoYXQg dGhlIGtlcm5lbCB3aWxsIG5lZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBTTUUgYW5kIFNFVi4K Pj4gVGhlCj4+IC0gKiBzbWVfYWN0aXZlKCkgYW5kIHNldl9hY3RpdmUoKSBmdW5jdGlvbnMgYXJl IHVzZWQgZm9yIHRoaXMuwqAgV2hlbiBhCj4+IC0gKiBkaXN0aW5jdGlvbiBpc24ndCBuZWVkZWQs IHRoZSBtZW1fZW5jcnlwdF9hY3RpdmUoKSBmdW5jdGlvbiBjYW4gYmUKPj4gdXNlZC4KPj4gKyAq IHNtZV9hY3RpdmUoKSBhbmQgc2V2X2FjdGl2ZSgpIGZ1bmN0aW9ucyBhcmUgdXNlZCBmb3IgdGhp cy4KPj4gwqDCoCAqCj4+IMKgwqAgKiBUaGUgdHJhbXBvbGluZSBjb2RlIGlzIGEgZ29vZCBleGFt cGxlIGZvciB0aGlzIHJlcXVpcmVtZW50LsKgIEJlZm9yZQo+PiDCoMKgICogcGFnaW5nIGlzIGFj dGl2YXRlZCwgU01FIHdpbGwgYWNjZXNzIGFsbCBtZW1vcnkgYXMgZGVjcnlwdGVkLCBidXQgU0VW Cj4+IEBAIC00NTEsNyArNDUwLDcgQEAgdm9pZCBfX2luaXQgbWVtX2VuY3J5cHRfZnJlZV9kZWNy eXB0ZWRfbWVtKHZvaWQpCj4+IMKgwqDCoMKgwqDCoCAqIFRoZSB1bnVzZWQgbWVtb3J5IHJhbmdl IHdhcyBtYXBwZWQgZGVjcnlwdGVkLCBjaGFuZ2UgdGhlCj4+IGVuY3J5cHRpb24KPj4gwqDCoMKg wqDCoMKgICogYXR0cmlidXRlIGZyb20gZGVjcnlwdGVkIHRvIGVuY3J5cHRlZCBiZWZvcmUgZnJl ZWluZyBpdC4KPj4gwqDCoMKgwqDCoMKgICovCj4+IC3CoMKgwqAgaWYgKG1lbV9lbmNyeXB0X2Fj dGl2ZSgpKSB7Cj4+ICvCoMKgwqAgaWYgKHNtZV9tZV9tYXNrKSB7Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoCByID0gc2V0X21lbW9yeV9lbmNyeXB0ZWQodmFkZHIsIG5wYWdlcyk7Cj4+IMKgwqDCoMKg wqDCoMKgwqDCoCBpZiAocikgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwcl93YXJu KCJmYWlsZWQgdG8gZnJlZSB1bnVzZWQgZGVjcnlwdGVkIHBhZ2VzXG4iKTsKPj4gZGlmZiAtLWdp dCBhL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMgYi9hcmNoL3g4Ni9tbS9wYXQvc2V0X21l bW9yeS5jCj4+IGluZGV4IGFkOGE1YzU4NmEzNS4uNjkyNWYyYmI0YmUxIDEwMDY0NAo+PiAtLS0g YS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jCj4+ICsrKyBiL2FyY2gveDg2L21tL3BhdC9z ZXRfbWVtb3J5LmMKPj4gQEAgLTE4LDYgKzE4LDcgQEAKPj4gwqAgI2luY2x1ZGUgPGxpbnV4L2xp Ym52ZGltbS5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvdm1zdGF0Lmg+Cj4+IMKgICNpbmNsdWRl IDxsaW51eC9rZXJuZWwuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9wcm90ZWN0ZWRfZ3Vlc3QuaD4K Pj4gwqAgwqAgI2luY2x1ZGUgPGFzbS9lODIwL2FwaS5oPgo+PiDCoCAjaW5jbHVkZSA8YXNtL3By b2Nlc3Nvci5oPgo+PiBAQCAtMTk4Niw3ICsxOTg3LDcgQEAgc3RhdGljIGludCBfX3NldF9tZW1v cnlfZW5jX2RlYyh1bnNpZ25lZCBsb25nCj4+IGFkZHIsIGludCBudW1wYWdlcywgYm9vbCBlbmMp Cj4+IMKgwqDCoMKgwqAgaW50IHJldDsKPj4gwqAgwqDCoMKgwqDCoCAvKiBOb3RoaW5nIHRvIGRv IGlmIG1lbW9yeSBlbmNyeXB0aW9uIGlzIG5vdCBhY3RpdmUgKi8KPj4gLcKgwqDCoCBpZiAoIW1l bV9lbmNyeXB0X2FjdGl2ZSgpKQo+PiArwqDCoMKgIGlmICghcHJvdF9ndWVzdF9oYXMoUEFUVFJf TUVNX0VOQ1JZUFQpKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+IMKgIMKgwqDC oMKgwqAgLyogU2hvdWxkIG5vdCBiZSB3b3JraW5nIG9uIHVuYWxpZ25lZCBhZGRyZXNzZXMgKi8K Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwo+ PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwo+PiBpbmRleCBhYmI5 Mjg4OTRlYWMuLjg0MDcyMjQ3MTdkZiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2Rydi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9kcnYuYwo+PiBAQCAtMzgsNiArMzgsNyBAQAo+PiDCoCAjaW5jbHVkZSA8ZHJtL2Ry bV9wcm9iZV9oZWxwZXIuaD4KPj4gwqAgI2luY2x1ZGUgPGxpbnV4L21tdV9ub3RpZmllci5oPgo+ PiDCoCAjaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3Byb3Rl Y3RlZF9ndWVzdC5oPgo+PiDCoCDCoCAjaW5jbHVkZSAiYW1kZ3B1LmgiCj4+IMKgICNpbmNsdWRl ICJhbWRncHVfaXJxLmgiCj4+IEBAIC0xMjM5LDcgKzEyNDAsOCBAQCBzdGF0aWMgaW50IGFtZGdw dV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsCj4+IMKgwqDCoMKgwqDCoCAqIGhvd2V2 ZXIsIFNNRSByZXF1aXJlcyBhbiBpbmRpcmVjdCBJT01NVSBtYXBwaW5nIGJlY2F1c2UgdGhlCj4+ IGVuY3J5cHRpb24KPj4gwqDCoMKgwqDCoMKgICogYml0IGlzIGJleW9uZCB0aGUgRE1BIG1hc2sg b2YgdGhlIGNoaXAuCj4+IMKgwqDCoMKgwqDCoCAqLwo+PiAtwqDCoMKgIGlmIChtZW1fZW5jcnlw dF9hY3RpdmUoKSAmJiAoKGZsYWdzICYgQU1EX0FTSUNfTUFTSykgPT0gQ0hJUF9SQVZFTikpIHsK Pj4gK8KgwqDCoCBpZiAocHJvdF9ndWVzdF9oYXMoUEFUVFJfTUVNX0VOQ1JZUFQpICYmCj4+ICvC oMKgwqDCoMKgwqDCoCAoKGZsYWdzICYgQU1EX0FTSUNfTUFTSykgPT0gQ0hJUF9SQVZFTikpIHsK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGRldl9pbmZvKCZwZGV2LT5kZXYsCj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgIlNNRSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIFJBVkVOXG4iKTsK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PVFNVUFA7Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2NhY2hlLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NhY2hlLmMK Pj4gaW5kZXggNTQ2NTk5ZjE5YTkzLi40ZDAxZDQ0MDEyZmQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fY2FjaGUuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NhY2hl LmMKPj4gQEAgLTMxLDcgKzMxLDcgQEAKPj4gwqAgI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYtbWFw Lmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KPj4gwqAgI2luY2x1ZGUgPGxpbnV4 L2hpZ2htZW0uaD4KPj4gLSNpbmNsdWRlIDxsaW51eC9tZW1fZW5jcnlwdC5oPgo+PiArI2luY2x1 ZGUgPGxpbnV4L3Byb3RlY3RlZF9ndWVzdC5oPgo+PiDCoCAjaW5jbHVkZSA8eGVuL3hlbi5oPgo+ PiDCoCDCoCAjaW5jbHVkZSA8ZHJtL2RybV9jYWNoZS5oPgo+PiBAQCAtMjA0LDcgKzIwNCw3IEBA IGJvb2wgZHJtX25lZWRfc3dpb3RsYihpbnQgZG1hX2JpdHMpCj4+IMKgwqDCoMKgwqDCoCAqIEVu Zm9yY2UgZG1hX2FsbG9jX2NvaGVyZW50IHdoZW4gbWVtb3J5IGVuY3J5cHRpb24gaXMgYWN0aXZl IGFzCj4+IHdlbGwKPj4gwqDCoMKgwqDCoMKgICogZm9yIHRoZSBzYW1lIHJlYXNvbnMgYXMgZm9y IFhlbiBwYXJhdmlydHVhbCBob3N0cy4KPj4gwqDCoMKgwqDCoMKgICovCj4+IC3CoMKgwqAgaWYg KG1lbV9lbmNyeXB0X2FjdGl2ZSgpKQo+PiArwqDCoMKgIGlmIChwcm90X2d1ZXN0X2hhcyhQQVRU Ul9NRU1fRU5DUllQVCkpCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gdHJ1ZTsKPj4gwqAg wqDCoMKgwqDCoCBmb3IgKHRtcCA9IGlvbWVtX3Jlc291cmNlLmNoaWxkOyB0bXA7IHRtcCA9IHRt cC0+c2libGluZykKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2Rydi5jCj4+IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKPj4gaW5kZXgg ZGRlOGIzNWJiOTUwLi4wNmVjOTVhNjUwYmEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2Rydi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2Rydi5jCj4+IEBAIC0yOSw3ICsyOSw3IEBACj4+IMKgICNpbmNsdWRlIDxsaW51eC9kbWEt bWFwcGluZy5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4+IMKgICNpbmNsdWRl IDxsaW51eC9wY2kuaD4KPj4gLSNpbmNsdWRlIDxsaW51eC9tZW1fZW5jcnlwdC5oPgo+PiArI2lu Y2x1ZGUgPGxpbnV4L3Byb3RlY3RlZF9ndWVzdC5oPgo+PiDCoCDCoCAjaW5jbHVkZSA8ZHJtL3R0 bS90dG1fcmFuZ2VfbWFuYWdlci5oPgo+PiDCoCAjaW5jbHVkZSA8ZHJtL2RybV9hcGVydHVyZS5o Pgo+PiBAQCAtNjM0LDcgKzYzNCw3IEBAIHN0YXRpYyBpbnQgdm13X2RtYV9zZWxlY3RfbW9kZShz dHJ1Y3Qgdm13X3ByaXZhdGUKPj4gKmRldl9wcml2KQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgW3Zt d19kbWFfbWFwX2JpbmRdID0gIkdpdmluZyB1cCBETUEgbWFwcGluZ3MgZWFybHkuIn07Cj4+IMKg IMKgwqDCoMKgwqAgLyogVFRNIGN1cnJlbnRseSBkb2Vzbid0IGZ1bGx5IHN1cHBvcnQgU0VWIGVu Y3J5cHRpb24uICovCj4+IC3CoMKgwqAgaWYgKG1lbV9lbmNyeXB0X2FjdGl2ZSgpKQo+PiArwqDC oMKgIGlmIChwcm90X2d1ZXN0X2hhcyhQQVRUUl9NRU1fRU5DUllQVCkpCj4+IMKgwqDCoMKgwqDC oMKgwqDCoCByZXR1cm4gLUVJTlZBTDsKPj4gwqAgwqDCoMKgwqDCoCBpZiAodm13X2ZvcmNlX2Nv aGVyZW50KQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbXNn LmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9tc2cuYwo+PiBpbmRleCAzZDA4 ZjU3MDBiZGIuLjBjNzA1NzNkM2RjZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfbXNnLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf bXNnLmMKPj4gQEAgLTI4LDcgKzI4LDcgQEAKPj4gwqAgI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5o Pgo+PiDCoCAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9z bGFiLmg+Cj4+IC0jaW5jbHVkZSA8bGludXgvbWVtX2VuY3J5cHQuaD4KPj4gKyNpbmNsdWRlIDxs aW51eC9wcm90ZWN0ZWRfZ3Vlc3QuaD4KPj4gwqAgwqAgI2luY2x1ZGUgPGFzbS9oeXBlcnZpc29y Lmg+Cj4+IMKgIEBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgdm13X3Bv cnRfaGJfb3V0KHN0cnVjdAo+PiBycGNfY2hhbm5lbCAqY2hhbm5lbCwKPj4gwqDCoMKgwqDCoCB1 bnNpZ25lZCBsb25nIG1zZ19sZW4gPSBzdHJsZW4obXNnKTsKPj4gwqAgwqDCoMKgwqDCoCAvKiBI QiBwb3J0IGNhbid0IGFjY2VzcyBlbmNyeXB0ZWQgbWVtb3J5LiAqLwo+PiAtwqDCoMKgIGlmICho YiAmJiAhbWVtX2VuY3J5cHRfYWN0aXZlKCkpIHsKPj4gK8KgwqDCoCBpZiAoaGIgJiYgIXByb3Rf Z3Vlc3RfaGFzKFBBVFRSX01FTV9FTkNSWVBUKSkgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgdW5z aWduZWQgbG9uZyBicCA9IGNoYW5uZWwtPmNvb2tpZV9oaWdoOwo+PiDCoCDCoMKgwqDCoMKgwqDC oMKgwqAgc2kgPSAodWludHB0cl90KSBtc2c7Cj4+IEBAIC0yMDgsNyArMjA4LDcgQEAgc3RhdGlj IHVuc2lnbmVkIGxvbmcgdm13X3BvcnRfaGJfaW4oc3RydWN0Cj4+IHJwY19jaGFubmVsICpjaGFu bmVsLCBjaGFyICpyZXBseSwKPj4gwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIHNpLCBkaSwgZWF4 LCBlYngsIGVjeCwgZWR4Owo+PiDCoCDCoMKgwqDCoMKgIC8qIEhCIHBvcnQgY2FuJ3QgYWNjZXNz IGVuY3J5cHRlZCBtZW1vcnkgKi8KPj4gLcKgwqDCoCBpZiAoaGIgJiYgIW1lbV9lbmNyeXB0X2Fj dGl2ZSgpKSB7Cj4+ICvCoMKgwqAgaWYgKGhiICYmICFwcm90X2d1ZXN0X2hhcyhQQVRUUl9NRU1f RU5DUllQVCkpIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcgYnAgPSBjaGFu bmVsLT5jb29raWVfbG93Owo+PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqAgc2kgPSBjaGFubmVsLT5j b29raWVfaGlnaDsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvYW1kL2lvbW11LmMgYi9k cml2ZXJzL2lvbW11L2FtZC9pb21tdS5jCj4+IGluZGV4IDgxMWE0OWE5NWQwNC4uZGVmNjNhOGRl YWI0IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2lvbW11L2FtZC9pb21tdS5jCj4+ICsrKyBiL2Ry aXZlcnMvaW9tbXUvYW1kL2lvbW11LmMKPj4gQEAgLTMxLDYgKzMxLDcgQEAKPj4gwqAgI2luY2x1 ZGUgPGxpbnV4L2lycWRvbWFpbi5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+Cj4+ IMKgICNpbmNsdWRlIDxsaW51eC9pby1wZ3RhYmxlLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvcHJv dGVjdGVkX2d1ZXN0Lmg+Cj4+IMKgICNpbmNsdWRlIDxhc20vaXJxX3JlbWFwcGluZy5oPgo+PiDC oCAjaW5jbHVkZSA8YXNtL2lvX2FwaWMuaD4KPj4gwqAgI2luY2x1ZGUgPGFzbS9hcGljLmg+Cj4+ IEBAIC0yMTc4LDcgKzIxNzksNyBAQCBzdGF0aWMgaW50IGFtZF9pb21tdV9kZWZfZG9tYWluX3R5 cGUoc3RydWN0IGRldmljZQo+PiAqZGV2KQo+PiDCoMKgwqDCoMKgwqAgKiBhY3RpdmUsIGJlY2F1 c2Ugc29tZSBvZiB0aG9zZSBkZXZpY2VzIChBTUQgR1BVcykgZG9uJ3QgaGF2ZSB0aGUKPj4gwqDC oMKgwqDCoMKgICogZW5jcnlwdGlvbiBiaXQgaW4gdGhlaXIgRE1BLW1hc2sgYW5kIHJlcXVpcmUg cmVtYXBwaW5nLgo+PiDCoMKgwqDCoMKgwqAgKi8KPj4gLcKgwqDCoCBpZiAoIW1lbV9lbmNyeXB0 X2FjdGl2ZSgpICYmIGRldl9kYXRhLT5pb21tdV92MikKPj4gK8KgwqDCoCBpZiAoIXByb3RfZ3Vl c3RfaGFzKFBBVFRSX01FTV9FTkNSWVBUKSAmJiBkZXZfZGF0YS0+aW9tbXVfdjIpCj4+IMKgwqDC oMKgwqDCoMKgwqDCoCByZXR1cm4gSU9NTVVfRE9NQUlOX0lERU5USVRZOwo+PiDCoCDCoMKgwqDC oMKgIHJldHVybiAwOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9hbWQvaW9tbXVfdjIu YyBiL2RyaXZlcnMvaW9tbXUvYW1kL2lvbW11X3YyLmMKPj4gaW5kZXggZjhkNGFkNDIxZTA3Li5h YzM1OWJjOTg1MjMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvaW9tbXUvYW1kL2lvbW11X3YyLmMK Pj4gKysrIGIvZHJpdmVycy9pb21tdS9hbWQvaW9tbXVfdjIuYwo+PiBAQCAtMTYsNiArMTYsNyBA QAo+PiDCoCAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvcGNp Lmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9nZnAuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9wcm90 ZWN0ZWRfZ3Vlc3QuaD4KPj4gwqAgwqAgI2luY2x1ZGUgImFtZF9pb21tdS5oIgo+PiDCoCBAQCAt NzQxLDcgKzc0Miw3IEBAIGludCBhbWRfaW9tbXVfaW5pdF9kZXZpY2Uoc3RydWN0IHBjaV9kZXYg KnBkZXYsCj4+IGludCBwYXNpZHMpCj4+IMKgwqDCoMKgwqDCoCAqIFdoZW4gbWVtb3J5IGVuY3J5 cHRpb24gaXMgYWN0aXZlIHRoZSBkZXZpY2UgaXMgbGlrZWx5IG5vdCBpbiBhCj4+IMKgwqDCoMKg wqDCoCAqIGRpcmVjdC1tYXBwZWQgZG9tYWluLiBGb3JiaWQgdXNpbmcgSU9NTVV2MiBmdW5jdGlv bmFsaXR5IGZvciBub3cuCj4+IMKgwqDCoMKgwqDCoCAqLwo+PiAtwqDCoMKgIGlmIChtZW1fZW5j cnlwdF9hY3RpdmUoKSkKPj4gK8KgwqDCoCBpZiAocHJvdF9ndWVzdF9oYXMoUEFUVFJfTUVNX0VO Q1JZUFQpKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9ERVY7Cj4+IMKgIMKgwqDC oMKgwqAgaWYgKCFhbWRfaW9tbXVfdjJfc3VwcG9ydGVkKCkpCj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2lvbW11L2lvbW11LmMgYi9kcml2ZXJzL2lvbW11L2lvbW11LmMKPj4gaW5kZXggNTQxOWM0 YjlmMjdhLi5kZGJlZGIxYjViNmIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvaW9tbXUvaW9tbXUu Ywo+PiArKysgYi9kcml2ZXJzL2lvbW11L2lvbW11LmMKPj4gQEAgLTIzLDYgKzIzLDcgQEAKPj4g wqAgI2luY2x1ZGUgPGxpbnV4L3Byb3BlcnR5Lmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9mc2wv bWMuaD4KPj4gwqAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+PiArI2luY2x1ZGUgPGxpbnV4 L3Byb3RlY3RlZF9ndWVzdC5oPgo+PiDCoCAjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL2lvbW11Lmg+ Cj4+IMKgIMKgIHN0YXRpYyBzdHJ1Y3Qga3NldCAqaW9tbXVfZ3JvdXBfa3NldDsKPj4gQEAgLTEy Nyw3ICsxMjgsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBpb21tdV9zdWJzeXNfaW5pdCh2b2lkKQo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgZWxzZQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp b21tdV9zZXRfZGVmYXVsdF90cmFuc2xhdGVkKGZhbHNlKTsKPj4gwqAgLcKgwqDCoMKgwqDCoMKg IGlmIChpb21tdV9kZWZhdWx0X3Bhc3N0aHJvdWdoKCkgJiYgbWVtX2VuY3J5cHRfYWN0aXZlKCkp IHsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmIChpb21tdV9kZWZhdWx0X3Bhc3N0aHJvdWdoKCkgJiYK Pj4gcHJvdF9ndWVzdF9oYXMoUEFUVFJfTUVNX0VOQ1JZUFQpKSB7Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHByX2luZm8oIk1lbW9yeSBlbmNyeXB0aW9uIGRldGVjdGVkIC0gRGlzYWJs aW5nIGRlZmF1bHQKPj4gSU9NTVUgUGFzc3Rocm91Z2hcbiIpOwo+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBpb21tdV9zZXRfZGVmYXVsdF90cmFuc2xhdGVkKGZhbHNlKTsKPj4gwqDCoMKg wqDCoMKgwqDCoMKgIH0KPj4gZGlmZiAtLWdpdCBhL2ZzL3Byb2Mvdm1jb3JlLmMgYi9mcy9wcm9j L3ZtY29yZS5jCj4+IGluZGV4IDlhMTUzMzRkYTIwOC4uYjQ2NmY1NDNkYzAwIDEwMDY0NAo+PiAt LS0gYS9mcy9wcm9jL3ZtY29yZS5jCj4+ICsrKyBiL2ZzL3Byb2Mvdm1jb3JlLmMKPj4gQEAgLTI2 LDcgKzI2LDcgQEAKPj4gwqAgI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KPj4gwqAgI2luY2x1 ZGUgPGxpbnV4L3BhZ2VtYXAuaD4KPj4gwqAgI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KPj4g LSNpbmNsdWRlIDxsaW51eC9tZW1fZW5jcnlwdC5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3Byb3Rl Y3RlZF9ndWVzdC5oPgo+PiDCoCAjaW5jbHVkZSA8YXNtL2lvLmg+Cj4+IMKgICNpbmNsdWRlICJp bnRlcm5hbC5oIgo+PiDCoCBAQCAtMTc3LDcgKzE3Nyw3IEBAIHNzaXplX3QgX193ZWFrIGVsZmNv cmVoZHJfcmVhZChjaGFyICpidWYsIHNpemVfdAo+PiBjb3VudCwgdTY0ICpwcG9zKQo+PiDCoMKg ICovCj4+IMKgIHNzaXplX3QgX193ZWFrIGVsZmNvcmVoZHJfcmVhZF9ub3RlcyhjaGFyICpidWYs IHNpemVfdCBjb3VudCwgdTY0ICpwcG9zKQo+PiDCoCB7Cj4+IC3CoMKgwqAgcmV0dXJuIHJlYWRf ZnJvbV9vbGRtZW0oYnVmLCBjb3VudCwgcHBvcywgMCwgbWVtX2VuY3J5cHRfYWN0aXZlKCkpOwo+ PiArwqDCoMKgIHJldHVybiByZWFkX2Zyb21fb2xkbWVtKGJ1ZiwgY291bnQsIHBwb3MsIDAsCj4+ IHByb3RfZ3Vlc3RfaGFzKFBBVFRSX01FTV9FTkNSWVBUKSk7Cj4+IMKgIH0KPj4gwqAgwqAgLyoK Pj4gQEAgLTM3OCw3ICszNzgsNyBAQCBzdGF0aWMgc3NpemVfdCBfX3JlYWRfdm1jb3JlKGNoYXIg KmJ1ZmZlciwgc2l6ZV90Cj4+IGJ1ZmxlbiwgbG9mZl90ICpmcG9zLAo+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZsZW4pOwo+PiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzdGFydCA9IG0tPnBhZGRyICsgKmZwb3MgLSBtLT5vZmZzZXQ7 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRtcCA9IHJlYWRfZnJvbV9vbGRtZW0oYnVm ZmVyLCB0c3osICZzdGFydCwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgdXNlcmJ1ZiwgbWVtX2VuY3J5cHRfYWN0aXZlKCkpOwo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1c2VyYnVm LCBwcm90X2d1ZXN0X2hhcyhQQVRUUl9NRU1fRU5DUllQVCkpOwo+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBpZiAodG1wIDwgMCkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCByZXR1cm4gdG1wOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZsZW4gLT0g dHN6Owo+PiBkaWZmIC0tZ2l0IGEva2VybmVsL2RtYS9zd2lvdGxiLmMgYi9rZXJuZWwvZG1hL3N3 aW90bGIuYwo+PiBpbmRleCBlNTBkZjhkOGY4N2UuLjJlOGRlZTIzYTYyNCAxMDA2NDQKPj4gLS0t IGEva2VybmVsL2RtYS9zd2lvdGxiLmMKPj4gKysrIGIva2VybmVsL2RtYS9zd2lvdGxiLmMKPj4g QEAgLTM0LDcgKzM0LDcgQEAKPj4gwqAgI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KPj4gwqAg I2luY2x1ZGUgPGxpbnV4L2dmcC5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3Qu aD4KPj4gLSNpbmNsdWRlIDxsaW51eC9tZW1fZW5jcnlwdC5oPgo+PiArI2luY2x1ZGUgPGxpbnV4 L3Byb3RlY3RlZF9ndWVzdC5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvc2V0X21lbW9yeS5oPgo+ PiDCoCAjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCj4+IMKgICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2Zz Lmg+Cj4+IEBAIC01MTUsNyArNTE1LDcgQEAgcGh5c19hZGRyX3Qgc3dpb3RsYl90YmxfbWFwX3Np bmdsZShzdHJ1Y3QgZGV2aWNlCj4+ICpkZXYsIHBoeXNfYWRkcl90IG9yaWdfYWRkciwKPj4gwqDC oMKgwqDCoCBpZiAoIW1lbSkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHBhbmljKCJDYW4gbm90IGFs bG9jYXRlIFNXSU9UTEIgYnVmZmVyIGVhcmxpZXIgYW5kIGNhbid0IG5vdwo+PiBwcm92aWRlIHlv dSB3aXRoIHRoZSBETUEgYm91bmNlIGJ1ZmZlciIpOwo+PiDCoCAtwqDCoMKgIGlmIChtZW1fZW5j cnlwdF9hY3RpdmUoKSkKPj4gK8KgwqDCoCBpZiAocHJvdF9ndWVzdF9oYXMoUEFUVFJfTUVNX0VO Q1JZUFQpKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcHJfd2Fybl9vbmNlKCJNZW1vcnkgZW5jcnlw dGlvbiBpcyBhY3RpdmUgYW5kIHN5c3RlbSBpcyB1c2luZwo+PiBETUEgYm91bmNlIGJ1ZmZlcnNc biIpOwo+PiDCoCDCoMKgwqDCoMKgIGlmIChtYXBwaW5nX3NpemUgPiBhbGxvY19zaXplKSB7Cj4+ Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlvbW11IG1h aWxpbmcgbGlzdAppb21tdUBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3Rz LmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9pb21tdQ== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 26E95C4320A for ; Mon, 9 Aug 2021 22:04:23 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D3EE860FC2 for ; Mon, 9 Aug 2021 22:04:22 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org D3EE860FC2 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3348289DA8; Mon, 9 Aug 2021 22:04:19 +0000 (UTC) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2061.outbound.protection.outlook.com [40.107.237.61]) by gabe.freedesktop.org (Postfix) with ESMTPS id DDF7289DA6; Mon, 9 Aug 2021 22:04:17 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i46opE2vdbKf2ZrSprtprFOfqeG9cuPadsC969ro0jGirLoEqmGv1Pq8Ok7Agr3K0gNJJxkRQ7uEyrdz0yrHhOwzdM61T8KtnXLa9G5uisp5+mR7A//tdBVeUvqNEmOX2+UqNF2+f7BMlZy74/vSdtRFvjyaBb3HTciyEplA4h+vOS3Z6B8sfFvhpSQ8rxnHNUatg0Eo6D/CcU94BG0+iVF50SSmMYnqPB288PGR4XOQZ+O9PuZfkJYnLiJJv6+ctPGqP/I+CE24kxQMUPhCBTOjhFzEG3UzhaGjEypPYQ48tv+nOiOJhT5HM4GVat1JWikkCz0Sg+XAcv0/+taeQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qDDc72GiZm6dfKErrWYvKM6m/ePTnVVLaIb8Yz6Ehk4=; b=hT+0DFcf5clrassD1oRbJSgQ6y78lWxP90zJ+WbC2yEDLpBFh1mm4Xup2dx/Nf1oaA+8KPhAaMgYP2M06znaLrTQxSVV+HoWD3EgxqJoiOhxP7Pq+7QECVurjapITVJ04GCcgR4Z6Cb6C1LQ8YjVl+uQQ1LdrMLEbnpuwcLqRWRsxJrATdZ9SMNrao/uelaMK7S2FSrG+LpfPt++U9XC08JXZ9lErcGAQeO8yrdzCrKJi1TR6etE3FiBZqRDDxNmVQdvdh2pQxuhj0P/jcS+hRZwy/NjI8gpDiTljx9e8LqRE2lXXpx3rfUeFXF2bi6xZDZg1/sfFcehc1jqIsAERQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qDDc72GiZm6dfKErrWYvKM6m/ePTnVVLaIb8Yz6Ehk4=; b=E26kXdjn4tzuqwDepjlftxSfkzQiAIaO7cFrfeWCeKv1ky4fYpeEimh+mtZrp1OI1A0gpmZlrvEllzgCfWxMpCUlsqJr7dNZvy2aDOYq6InaM4LnOKp6B7d1UhMB6c4qyYtSMRA3LsMiw6JCzCDjZjhtVDvNPPzS0CpxONefbjk= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=amd.com; Received: from DM4PR12MB5229.namprd12.prod.outlook.com (2603:10b6:5:398::12) by DM4PR12MB5117.namprd12.prod.outlook.com (2603:10b6:5:390::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.17; Mon, 9 Aug 2021 22:04:14 +0000 Received: from DM4PR12MB5229.namprd12.prod.outlook.com ([fe80::73:2581:970b:3208]) by DM4PR12MB5229.namprd12.prod.outlook.com ([fe80::73:2581:970b:3208%3]) with mapi id 15.20.4394.023; Mon, 9 Aug 2021 22:04:14 +0000 Subject: Re: [PATCH 07/11] treewide: Replace the use of mem_encrypt_active() with prot_guest_has() To: Christophe Leroy , linux-kernel@vger.kernel.org, x86@kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, iommu@lists.linux-foundation.org, kvm@vger.kernel.org, linux-efi@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-graphics-maintainer@vmware.com, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-fsdevel@vger.kernel.org Cc: Sathyanarayanan Kuppuswamy , Andi Kleen , Tianyu Lan , Daniel Vetter , Baoquan He , Peter Zijlstra , Thomas Zimmermann , Joerg Roedel , Dave Hansen , Maarten Lankhorst , Maxime Ripard , David Airlie , Dave Young , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Brijesh Singh , Thomas Gleixner , Will Deacon References: <029791b24c6412f9427cfe6ec598156c64395964.1627424774.git.thomas.lendacky@amd.com> From: Tom Lendacky Message-ID: Date: Mon, 9 Aug 2021 17:04:11 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SN4PR0501CA0139.namprd05.prod.outlook.com (2603:10b6:803:2c::17) To DM4PR12MB5229.namprd12.prod.outlook.com (2603:10b6:5:398::12) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.236.30.241] (165.204.77.1) by SN4PR0501CA0139.namprd05.prod.outlook.com (2603:10b6:803:2c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.5 via Frontend Transport; Mon, 9 Aug 2021 22:04:12 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a1d08b08-348e-40d7-2dbe-08d95b819fd3 X-MS-TrafficTypeDiagnostic: DM4PR12MB5117: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: m+3JPzPUggX8wii77JpckqdMUuJ42OcNOdsy0s1VqRinMmrGdveqyqqtPHJDVI1dbGHSGb0ceR+5MPYeGPE7ndIXkKzqmVmVv2t3qLJs/ZW4xGV+Q+i5k3ZW2HK1cJQmmSUL2GamnOBrEWprMITi2O2Fjy4Mp5xzoFMEDt4U2PKHjLH7auaM6o6Wjj1vh8qj6Z+MTax0sux9kVrv0wbKq9xHwuZpcEQYzHfa4vyH2mrRRp5JVY1PurS2zUkyR8J2fj0+XJTPIXD8Skpn2bXAuJzcZ3FQcPDF1k3dTEGVEXkYeh1iOkb5Gkv2qJA9Q3ASBxoahMD+G7kPPxZkcArlyC5K7QqJALypMC+bGSF1eJ+ZJj2Y9+yMthNQ5ErI2vIVO8/IwMuwq23LuzWHfDRo4ou6CSz31poq6n0bFC2sHK+R149o5213JkYrh/YamMbV2+QCe8q0V9G8bsvVn54vSEVQnH2v1nEP3Y99T2iIVj+po+zhImZ4vX7WVfHRQdMbayc1vVNqdI2j37KNl4n9Scu8iZ3d888hETBqhlzneGtBJFFJ1r3zO9dxLXJXLiG1oTAT3rr1WoYo378B2uFh9uzjUe4cjF88hLDHornZ5Iwh04uwj89AzWMqFFgm61pjhcm1vUG1pOxiSvPvVVN1UMqWM+0qIUgi0m37iatD+Pv1ZJNqdbXM1aCslM8lV1CZ/CTdnMX3Q+9qP9tXhTswd+5UAi5LG0sIv121xWyMJbjE/qRTaDVRb9uF0ft7LiA9mPAsKWAT5vPte8ZWavnJDKGOLrb5L/+GNfvBxmRRtYI2ORALPGK0Oon9xrMM/SJ9HwW7esfJSWq5G0eHjOpGyw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5229.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(136003)(396003)(376002)(366004)(346002)(921005)(31696002)(2616005)(956004)(6486002)(38100700002)(316002)(2906002)(36756003)(31686004)(86362001)(16576012)(966005)(53546011)(45080400002)(30864003)(478600001)(8936002)(8676002)(5660300002)(66946007)(66476007)(66556008)(26005)(7416002)(7406005)(186003)(54906003)(66574015)(4326008)(83380400001)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?czJtWVR0d28xUTIyNThoMzlvU3V0T0Vhc1lzTHcydkd4N0hxT1JjL0NHZWJI?= =?utf-8?B?blhIdGdON0FXZ3FDQnkvU2R4UUEyRGtKV3hLS1k3SiszbEw3cVdZbGg5L2VH?= =?utf-8?B?V1hFSU5hL1hmSHhvY01LdHVmcnZtZlF3eU5Pc3E4MURUM3krQzJ0WTgzZVVI?= =?utf-8?B?cHN5L0FPNnpaU1RiZ0tUY05iT20xNVJCRmFXN0QvcFM4bkFwOE9xVWdZUmdx?= =?utf-8?B?emZUaVM5MlpKZ2FQOHBBYURrS3JLcFZIYW5Iem1oaUc1ZkxPZE9XZWRDNW1u?= =?utf-8?B?NVdlZWx4NnFrNDdFbytkU2lGUG1ZdkVFeVdRMDB6a2ZQV0l5QXpnZWQrV2hH?= =?utf-8?B?R1hFQTRkU0hSNENWNnpnTStOcEE4STZ5MkRXSmptVkRVL1gvM1lnTG9JUEFY?= =?utf-8?B?MzRmczNDUVVPSWQyNlFEandhbzVBRVFwTDJ2NUZaN0Z6TVpPRFV3eml1ZzNM?= =?utf-8?B?dUtseVdpK1FkT2NWeExabHNvRXJYZDhqOThlWGxmK2hXd0JTam5lRkxwMlZF?= =?utf-8?B?WktLYytncGNyTHNxSElWWVhMTGNYZWxzQlNpbWcrTFF0L1RpQ0ZzY0tkelVn?= =?utf-8?B?S3RhY0FCcUk2R3JIN1RkbjFOL2JNK0pLVStSVHAvcDZHZEZMcUh6QWszN2Nz?= =?utf-8?B?dURXTWhSU0VjajJHaE4vd0RSb005dnlEM2ZhTHhJM0V5RHJyNm5NQkdhOVhk?= =?utf-8?B?dGZreExKZnY5VUovVEpSYi9GRlpMaEZzU2JQK2pNc1lKczBLUU1HRDF2UnMy?= =?utf-8?B?Q0xNN0pzVUZCN3ZoZVZNd204NTV5c1ZIWndGWVEydEErakFsSXlXVUdkMkRh?= =?utf-8?B?cHVWejBDTXJEenZ6dXVqbFVHZVY3aTlJZWc2Smh4RmRpV2owL29NN3QxazVh?= =?utf-8?B?WVMvN0doNWhuZSt2WDhLbzNOdDZiY2dZdWl4U1E5d0lTTzZJNVFLOGdkMmFv?= =?utf-8?B?UnhJdDFlNGxESXBvc1hoT3MyUW1EbW90dkFJeDJkNS9heFN0YzVDQ1NXTFdt?= =?utf-8?B?b0wyUEREQUNMZlV1Tit6eVFYRHBQTGo1QmpDUU84REdBNzJNQ1haZjlVR1Jj?= =?utf-8?B?NzZiWjYrQlJwa2VOVXpPcW5sY2ZpQS9qQkRtdUZ0NWVZM3Yvekdlb1Zyb1A0?= =?utf-8?B?TXZrT3hyS1VpdHd1UGo5TkxuZkRTVWg4dW8xamdTVEhJSUZhZVBvVnJrc1pP?= =?utf-8?B?NjQvOXZxR3BsUDFYVEx5ZVVVTlZ0U09uZHl4dm9DVjJTa0JtYi9rNGlDT3hh?= =?utf-8?B?WjNCU2xxUFBnTUhDZEdwbUNGbTRuYXJINDNBaWlMSFNSL1RlL3piL29pTVBX?= =?utf-8?B?L0FodC9BNTlBT2xJcmE2ZmR3SUd1RXBOVHZDNnJsbU5sZXhDRk14alVFeTBp?= =?utf-8?B?TXVMMjY5L2ZUa01BUzh5eW42Z2pKQ2ROTTk3eTF5aHhUcXFlMGNJVWxsNXkw?= =?utf-8?B?SGZMQTZodmprTzlnaWF0bFlWTmpXeUhxMXlQTFB0djE4R2hNemdTK0RoQjdz?= =?utf-8?B?WlFDWFpoUzdTWTFRbmpHOHpvUDVTOW1ZYWpSSWVQeWRKMzM5MVRWY01oaENr?= =?utf-8?B?KzdiMlJvMXBObTFEcEhkTWNwTEJtNXlLZkxxSWxOUE5jSnhrR25qZ1drOUZN?= =?utf-8?B?UDZpcVJvSEhET0JtaFpjTDQ4SWNLcjdBZDBBa0E4ZXRSVGtZUGFKK1ByV0tJ?= =?utf-8?B?RHh0T1dGMDQ3bG9nZ0JxMG9NODJvc0JRTTFOYjNrYTcyQVRoSE9TRXRCcHJN?= =?utf-8?Q?SDDEmkfuOVtLxQJR4qZvah4PjWqv3hzWzxgYwck?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: a1d08b08-348e-40d7-2dbe-08d95b819fd3 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5229.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2021 22:04:14.2640 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4nhfX73wvO9hcTAWN9QscMsaTxM8C0FcXniu7OsjFycerJJuEK62HlZfWznvt4AHUBScn5VYQjNAIDDgwPXj7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5117 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On 8/2/21 7:42 AM, Christophe Leroy wrote: > > > Le 28/07/2021 à 00:26, Tom Lendacky a écrit : >> Replace occurrences of mem_encrypt_active() with calls to prot_guest_has() >> with the PATTR_MEM_ENCRYPT attribute. > > > What about > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatchwork.ozlabs.org%2Fproject%2Flinuxppc-dev%2Fpatch%2F20210730114231.23445-1-will%40kernel.org%2F&data=04%7C01%7Cthomas.lendacky%40amd.com%7C1198d62463e04a27be5908d955b30433%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637635049667233612%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Erpu4Du05sVYkYuAfTkXdLvq48%2FlfLS2q%2FZW8DG3tFw%3D&reserved=0> ? Ah, looks like that just went into the PPC tree and isn't part of the tip tree. I'll have to look into how to handle that one. Thanks, Tom > > Christophe > > >> >> Cc: Thomas Gleixner >> Cc: Ingo Molnar >> Cc: Borislav Petkov >> Cc: Dave Hansen >> Cc: Andy Lutomirski >> Cc: Peter Zijlstra >> Cc: David Airlie >> Cc: Daniel Vetter >> Cc: Maarten Lankhorst >> Cc: Maxime Ripard >> Cc: Thomas Zimmermann >> Cc: VMware Graphics >> Cc: Joerg Roedel >> Cc: Will Deacon >> Cc: Dave Young >> Cc: Baoquan He >> Signed-off-by: Tom Lendacky >> --- >>   arch/x86/kernel/head64.c                | 4 ++-- >>   arch/x86/mm/ioremap.c                   | 4 ++-- >>   arch/x86/mm/mem_encrypt.c               | 5 ++--- >>   arch/x86/mm/pat/set_memory.c            | 3 ++- >>   drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 +++- >>   drivers/gpu/drm/drm_cache.c             | 4 ++-- >>   drivers/gpu/drm/vmwgfx/vmwgfx_drv.c     | 4 ++-- >>   drivers/gpu/drm/vmwgfx/vmwgfx_msg.c     | 6 +++--- >>   drivers/iommu/amd/iommu.c               | 3 ++- >>   drivers/iommu/amd/iommu_v2.c            | 3 ++- >>   drivers/iommu/iommu.c                   | 3 ++- >>   fs/proc/vmcore.c                        | 6 +++--- >>   kernel/dma/swiotlb.c                    | 4 ++-- >>   13 files changed, 29 insertions(+), 24 deletions(-) >> >> diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c >> index de01903c3735..cafed6456d45 100644 >> --- a/arch/x86/kernel/head64.c >> +++ b/arch/x86/kernel/head64.c >> @@ -19,7 +19,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>   #include >>     #include >> @@ -285,7 +285,7 @@ unsigned long __head __startup_64(unsigned long >> physaddr, >>        * there is no need to zero it after changing the memory encryption >>        * attribute. >>        */ >> -    if (mem_encrypt_active()) { >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) { >>           vaddr = (unsigned long)__start_bss_decrypted; >>           vaddr_end = (unsigned long)__end_bss_decrypted; >>           for (; vaddr < vaddr_end; vaddr += PMD_SIZE) { >> diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c >> index 0f2d5ace5986..5e1c1f5cbbe8 100644 >> --- a/arch/x86/mm/ioremap.c >> +++ b/arch/x86/mm/ioremap.c >> @@ -693,7 +693,7 @@ static bool __init >> early_memremap_is_setup_data(resource_size_t phys_addr, >>   bool arch_memremap_can_ram_remap(resource_size_t phys_addr, unsigned >> long size, >>                    unsigned long flags) >>   { >> -    if (!mem_encrypt_active()) >> +    if (!prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return true; >>         if (flags & MEMREMAP_ENC) >> @@ -723,7 +723,7 @@ pgprot_t __init >> early_memremap_pgprot_adjust(resource_size_t phys_addr, >>   { >>       bool encrypted_prot; >>   -    if (!mem_encrypt_active()) >> +    if (!prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return prot; >>         encrypted_prot = true; >> diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c >> index 451de8e84fce..0f1533dbe81c 100644 >> --- a/arch/x86/mm/mem_encrypt.c >> +++ b/arch/x86/mm/mem_encrypt.c >> @@ -364,8 +364,7 @@ int __init early_set_memory_encrypted(unsigned long >> vaddr, unsigned long size) >>   /* >>    * SME and SEV are very similar but they are not the same, so there are >>    * times that the kernel will need to distinguish between SME and SEV. >> The >> - * sme_active() and sev_active() functions are used for this.  When a >> - * distinction isn't needed, the mem_encrypt_active() function can be >> used. >> + * sme_active() and sev_active() functions are used for this. >>    * >>    * The trampoline code is a good example for this requirement.  Before >>    * paging is activated, SME will access all memory as decrypted, but SEV >> @@ -451,7 +450,7 @@ void __init mem_encrypt_free_decrypted_mem(void) >>        * The unused memory range was mapped decrypted, change the >> encryption >>        * attribute from decrypted to encrypted before freeing it. >>        */ >> -    if (mem_encrypt_active()) { >> +    if (sme_me_mask) { >>           r = set_memory_encrypted(vaddr, npages); >>           if (r) { >>               pr_warn("failed to free unused decrypted pages\n"); >> diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c >> index ad8a5c586a35..6925f2bb4be1 100644 >> --- a/arch/x86/mm/pat/set_memory.c >> +++ b/arch/x86/mm/pat/set_memory.c >> @@ -18,6 +18,7 @@ >>   #include >>   #include >>   #include >> +#include >>     #include >>   #include >> @@ -1986,7 +1987,7 @@ static int __set_memory_enc_dec(unsigned long >> addr, int numpages, bool enc) >>       int ret; >>         /* Nothing to do if memory encryption is not active */ >> -    if (!mem_encrypt_active()) >> +    if (!prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return 0; >>         /* Should not be working on unaligned addresses */ >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> index abb928894eac..8407224717df 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >> @@ -38,6 +38,7 @@ >>   #include >>   #include >>   #include >> +#include >>     #include "amdgpu.h" >>   #include "amdgpu_irq.h" >> @@ -1239,7 +1240,8 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, >>        * however, SME requires an indirect IOMMU mapping because the >> encryption >>        * bit is beyond the DMA mask of the chip. >>        */ >> -    if (mem_encrypt_active() && ((flags & AMD_ASIC_MASK) == CHIP_RAVEN)) { >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT) && >> +        ((flags & AMD_ASIC_MASK) == CHIP_RAVEN)) { >>           dev_info(&pdev->dev, >>                "SME is not compatible with RAVEN\n"); >>           return -ENOTSUPP; >> diff --git a/drivers/gpu/drm/drm_cache.c b/drivers/gpu/drm/drm_cache.c >> index 546599f19a93..4d01d44012fd 100644 >> --- a/drivers/gpu/drm/drm_cache.c >> +++ b/drivers/gpu/drm/drm_cache.c >> @@ -31,7 +31,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>   #include >>     #include >> @@ -204,7 +204,7 @@ bool drm_need_swiotlb(int dma_bits) >>        * Enforce dma_alloc_coherent when memory encryption is active as >> well >>        * for the same reasons as for Xen paravirtual hosts. >>        */ >> -    if (mem_encrypt_active()) >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return true; >>         for (tmp = iomem_resource.child; tmp; tmp = tmp->sibling) >> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> index dde8b35bb950..06ec95a650ba 100644 >> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> @@ -29,7 +29,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>     #include >>   #include >> @@ -634,7 +634,7 @@ static int vmw_dma_select_mode(struct vmw_private >> *dev_priv) >>           [vmw_dma_map_bind] = "Giving up DMA mappings early."}; >>         /* TTM currently doesn't fully support SEV encryption. */ >> -    if (mem_encrypt_active()) >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return -EINVAL; >>         if (vmw_force_coherent) >> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c >> b/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c >> index 3d08f5700bdb..0c70573d3dce 100644 >> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c >> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c >> @@ -28,7 +28,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>     #include >>   @@ -153,7 +153,7 @@ static unsigned long vmw_port_hb_out(struct >> rpc_channel *channel, >>       unsigned long msg_len = strlen(msg); >>         /* HB port can't access encrypted memory. */ >> -    if (hb && !mem_encrypt_active()) { >> +    if (hb && !prot_guest_has(PATTR_MEM_ENCRYPT)) { >>           unsigned long bp = channel->cookie_high; >>             si = (uintptr_t) msg; >> @@ -208,7 +208,7 @@ static unsigned long vmw_port_hb_in(struct >> rpc_channel *channel, char *reply, >>       unsigned long si, di, eax, ebx, ecx, edx; >>         /* HB port can't access encrypted memory */ >> -    if (hb && !mem_encrypt_active()) { >> +    if (hb && !prot_guest_has(PATTR_MEM_ENCRYPT)) { >>           unsigned long bp = channel->cookie_low; >>             si = channel->cookie_high; >> diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c >> index 811a49a95d04..def63a8deab4 100644 >> --- a/drivers/iommu/amd/iommu.c >> +++ b/drivers/iommu/amd/iommu.c >> @@ -31,6 +31,7 @@ >>   #include >>   #include >>   #include >> +#include >>   #include >>   #include >>   #include >> @@ -2178,7 +2179,7 @@ static int amd_iommu_def_domain_type(struct device >> *dev) >>        * active, because some of those devices (AMD GPUs) don't have the >>        * encryption bit in their DMA-mask and require remapping. >>        */ >> -    if (!mem_encrypt_active() && dev_data->iommu_v2) >> +    if (!prot_guest_has(PATTR_MEM_ENCRYPT) && dev_data->iommu_v2) >>           return IOMMU_DOMAIN_IDENTITY; >>         return 0; >> diff --git a/drivers/iommu/amd/iommu_v2.c b/drivers/iommu/amd/iommu_v2.c >> index f8d4ad421e07..ac359bc98523 100644 >> --- a/drivers/iommu/amd/iommu_v2.c >> +++ b/drivers/iommu/amd/iommu_v2.c >> @@ -16,6 +16,7 @@ >>   #include >>   #include >>   #include >> +#include >>     #include "amd_iommu.h" >>   @@ -741,7 +742,7 @@ int amd_iommu_init_device(struct pci_dev *pdev, >> int pasids) >>        * When memory encryption is active the device is likely not in a >>        * direct-mapped domain. Forbid using IOMMUv2 functionality for now. >>        */ >> -    if (mem_encrypt_active()) >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) >>           return -ENODEV; >>         if (!amd_iommu_v2_supported()) >> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c >> index 5419c4b9f27a..ddbedb1b5b6b 100644 >> --- a/drivers/iommu/iommu.c >> +++ b/drivers/iommu/iommu.c >> @@ -23,6 +23,7 @@ >>   #include >>   #include >>   #include >> +#include >>   #include >>     static struct kset *iommu_group_kset; >> @@ -127,7 +128,7 @@ static int __init iommu_subsys_init(void) >>           else >>               iommu_set_default_translated(false); >>   -        if (iommu_default_passthrough() && mem_encrypt_active()) { >> +        if (iommu_default_passthrough() && >> prot_guest_has(PATTR_MEM_ENCRYPT)) { >>               pr_info("Memory encryption detected - Disabling default >> IOMMU Passthrough\n"); >>               iommu_set_default_translated(false); >>           } >> diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c >> index 9a15334da208..b466f543dc00 100644 >> --- a/fs/proc/vmcore.c >> +++ b/fs/proc/vmcore.c >> @@ -26,7 +26,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>   #include >>   #include "internal.h" >>   @@ -177,7 +177,7 @@ ssize_t __weak elfcorehdr_read(char *buf, size_t >> count, u64 *ppos) >>    */ >>   ssize_t __weak elfcorehdr_read_notes(char *buf, size_t count, u64 *ppos) >>   { >> -    return read_from_oldmem(buf, count, ppos, 0, mem_encrypt_active()); >> +    return read_from_oldmem(buf, count, ppos, 0, >> prot_guest_has(PATTR_MEM_ENCRYPT)); >>   } >>     /* >> @@ -378,7 +378,7 @@ static ssize_t __read_vmcore(char *buffer, size_t >> buflen, loff_t *fpos, >>                           buflen); >>               start = m->paddr + *fpos - m->offset; >>               tmp = read_from_oldmem(buffer, tsz, &start, >> -                           userbuf, mem_encrypt_active()); >> +                           userbuf, prot_guest_has(PATTR_MEM_ENCRYPT)); >>               if (tmp < 0) >>                   return tmp; >>               buflen -= tsz; >> diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c >> index e50df8d8f87e..2e8dee23a624 100644 >> --- a/kernel/dma/swiotlb.c >> +++ b/kernel/dma/swiotlb.c >> @@ -34,7 +34,7 @@ >>   #include >>   #include >>   #include >> -#include >> +#include >>   #include >>   #ifdef CONFIG_DEBUG_FS >>   #include >> @@ -515,7 +515,7 @@ phys_addr_t swiotlb_tbl_map_single(struct device >> *dev, phys_addr_t orig_addr, >>       if (!mem) >>           panic("Can not allocate SWIOTLB buffer earlier and can't now >> provide you with the DMA bounce buffer"); >>   -    if (mem_encrypt_active()) >> +    if (prot_guest_has(PATTR_MEM_ENCRYPT)) >>           pr_warn_once("Memory encryption is active and system is using >> DMA bounce buffers\n"); >>         if (mapping_size > alloc_size) { >> From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-bn8nam12on2053.outbound.protection.outlook.com ([40.107.237.53] helo=NAM12-BN8-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mDDNc-0022xw-8E for kexec@lists.infradead.org; Mon, 09 Aug 2021 22:04:24 +0000 Subject: Re: [PATCH 07/11] treewide: Replace the use of mem_encrypt_active() with prot_guest_has() References: <029791b24c6412f9427cfe6ec598156c64395964.1627424774.git.thomas.lendacky@amd.com> From: Tom Lendacky Message-ID: Date: Mon, 9 Aug 2021 17:04:11 -0500 In-Reply-To: Content-Language: en-US MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: Christophe Leroy , linux-kernel@vger.kernel.org, x86@kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, iommu@lists.linux-foundation.org, kvm@vger.kernel.org, linux-efi@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-graphics-maintainer@vmware.com, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-fsdevel@vger.kernel.org Cc: Sathyanarayanan Kuppuswamy , Andi Kleen , Tianyu Lan , Daniel Vetter , Baoquan He , Peter Zijlstra , Thomas Zimmermann , Joerg Roedel , Dave Hansen , Maarten Lankhorst , Maxime Ripard , David Airlie , Dave Young , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Brijesh Singh , Thomas Gleixner , Will Deacon T24gOC8yLzIxIDc6NDIgQU0sIENocmlzdG9waGUgTGVyb3kgd3JvdGU6Cj4gCj4gCj4gTGUgMjgv MDcvMjAyMSDDoCAwMDoyNiwgVG9tIExlbmRhY2t5IGEgw6ljcml0wqA6Cj4+IFJlcGxhY2Ugb2Nj dXJyZW5jZXMgb2YgbWVtX2VuY3J5cHRfYWN0aXZlKCkgd2l0aCBjYWxscyB0byBwcm90X2d1ZXN0 X2hhcygpCj4+IHdpdGggdGhlIFBBVFRSX01FTV9FTkNSWVBUIGF0dHJpYnV0ZS4KPiAKPiAKPiBX aGF0IGFib3V0Cj4gaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNv bS8/dXJsPWh0dHBzJTNBJTJGJTJGcGF0Y2h3b3JrLm96bGFicy5vcmclMkZwcm9qZWN0JTJGbGlu dXhwcGMtZGV2JTJGcGF0Y2glMkYyMDIxMDczMDExNDIzMS4yMzQ0NS0xLXdpbGwlNDBrZXJuZWwu b3JnJTJGJmFtcDtkYXRhPTA0JTdDMDElN0N0aG9tYXMubGVuZGFja3klNDBhbWQuY29tJTdDMTE5 OGQ2MjQ2M2UwNGEyN2JlNTkwOGQ5NTViMzA0MzMlN0MzZGQ4OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5 OTRlMTgzZCU3QzAlN0MwJTdDNjM3NjM1MDQ5NjY3MjMzNjEyJTdDVW5rbm93biU3Q1RXRnBiR1pz YjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lM Q0pYVkNJNk1uMCUzRCU3QzEwMDAmYW1wO3NkYXRhPUVycHU0RHUwNXNWWWtZdUFmVGtYZEx2cTQ4 JTJGbGZMUzJxJTJGWlc4REczdEZ3JTNEJmFtcDtyZXNlcnZlZD0wPiA/CgpBaCwgbG9va3MgbGlr ZSB0aGF0IGp1c3Qgd2VudCBpbnRvIHRoZSBQUEMgdHJlZSBhbmQgaXNuJ3QgcGFydCBvZiB0aGUg dGlwCnRyZWUuIEknbGwgaGF2ZSB0byBsb29rIGludG8gaG93IHRvIGhhbmRsZSB0aGF0IG9uZS4K ClRoYW5rcywKVG9tCgo+IAo+IENocmlzdG9waGUKPiAKPiAKPj4KPj4gQ2M6IFRob21hcyBHbGVp eG5lciA8dGdseEBsaW51dHJvbml4LmRlPgo+PiBDYzogSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhh dC5jb20+Cj4+IENjOiBCb3Jpc2xhdiBQZXRrb3YgPGJwQGFsaWVuOC5kZT4KPj4gQ2M6IERhdmUg SGFuc2VuIDxkYXZlLmhhbnNlbkBsaW51eC5pbnRlbC5jb20+Cj4+IENjOiBBbmR5IEx1dG9taXJz a2kgPGx1dG9Aa2VybmVsLm9yZz4KPj4gQ2M6IFBldGVyIFppamxzdHJhIDxwZXRlcnpAaW5mcmFk ZWFkLm9yZz4KPj4gQ2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4KPj4gQ2M6IERh bmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KPj4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxt YWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4+IENjOiBNYXhpbWUgUmlwYXJkIDxt cmlwYXJkQGtlcm5lbC5vcmc+Cj4+IENjOiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5A c3VzZS5kZT4KPj4gQ2M6IFZNd2FyZSBHcmFwaGljcyA8bGludXgtZ3JhcGhpY3MtbWFpbnRhaW5l ckB2bXdhcmUuY29tPgo+PiBDYzogSm9lcmcgUm9lZGVsIDxqb3JvQDhieXRlcy5vcmc+Cj4+IENj OiBXaWxsIERlYWNvbiA8d2lsbEBrZXJuZWwub3JnPgo+PiBDYzogRGF2ZSBZb3VuZyA8ZHlvdW5n QHJlZGhhdC5jb20+Cj4+IENjOiBCYW9xdWFuIEhlIDxiaGVAcmVkaGF0LmNvbT4KPj4gU2lnbmVk LW9mZi1ieTogVG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4KPj4gLS0tCj4+ IMKgIGFyY2gveDg2L2tlcm5lbC9oZWFkNjQuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB8IDQgKystLQo+PiDCoCBhcmNoL3g4Ni9tbS9pb3JlbWFwLmPCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgfCA0ICsrLS0KPj4gwqAgYXJjaC94ODYvbW0vbWVtX2VuY3J5cHQu Y8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCA1ICsrLS0tCj4+IMKgIGFyY2gveDg2L21t L3BhdC9zZXRfbWVtb3J5LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMyArKy0KPj4gwqAgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jIHwgNCArKystCj4+IMKgIGRyaXZl cnMvZ3B1L2RybS9kcm1fY2FjaGUuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDQgKystLQo+ PiDCoCBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuY8KgwqDCoMKgIHwgNCArKy0t Cj4+IMKgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21zZy5jwqDCoMKgwqAgfCA2ICsr Ky0tLQo+PiDCoCBkcml2ZXJzL2lvbW11L2FtZC9pb21tdS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB8IDMgKystCj4+IMKgIGRyaXZlcnMvaW9tbXUvYW1kL2lvbW11X3YyLmPCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHwgMyArKy0KPj4gwqAgZHJpdmVycy9pb21tdS9pb21tdS5jwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMyArKy0KPj4gwqAgZnMvcHJvYy92bWNv cmUuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCA2ICsr Ky0tLQo+PiDCoCBrZXJuZWwvZG1hL3N3aW90bGIuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHwgNCArKy0tCj4+IMKgIDEzIGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlv bnMoKyksIDI0IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVs L2hlYWQ2NC5jIGIvYXJjaC94ODYva2VybmVsL2hlYWQ2NC5jCj4+IGluZGV4IGRlMDE5MDNjMzcz NS4uY2FmZWQ2NDU2ZDQ1IDEwMDY0NAo+PiAtLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZDY0LmMK Pj4gKysrIGIvYXJjaC94ODYva2VybmVsL2hlYWQ2NC5jCj4+IEBAIC0xOSw3ICsxOSw3IEBACj4+ IMKgICNpbmNsdWRlIDxsaW51eC9zdGFydF9rZXJuZWwuaD4KPj4gwqAgI2luY2x1ZGUgPGxpbnV4 L2lvLmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9tZW1ibG9jay5oPgo+PiAtI2luY2x1ZGUgPGxp bnV4L21lbV9lbmNyeXB0Lmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvcHJvdGVjdGVkX2d1ZXN0Lmg+ Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9wZ3RhYmxlLmg+Cj4+IMKgIMKgICNpbmNsdWRlIDxhc20v cHJvY2Vzc29yLmg+Cj4+IEBAIC0yODUsNyArMjg1LDcgQEAgdW5zaWduZWQgbG9uZyBfX2hlYWQg X19zdGFydHVwXzY0KHVuc2lnbmVkIGxvbmcKPj4gcGh5c2FkZHIsCj4+IMKgwqDCoMKgwqDCoCAq IHRoZXJlIGlzIG5vIG5lZWQgdG8gemVybyBpdCBhZnRlciBjaGFuZ2luZyB0aGUgbWVtb3J5IGVu Y3J5cHRpb24KPj4gwqDCoMKgwqDCoMKgICogYXR0cmlidXRlLgo+PiDCoMKgwqDCoMKgwqAgKi8K Pj4gLcKgwqDCoCBpZiAobWVtX2VuY3J5cHRfYWN0aXZlKCkpIHsKPj4gK8KgwqDCoCBpZiAocHJv dF9ndWVzdF9oYXMoUEFUVFJfTUVNX0VOQ1JZUFQpKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB2 YWRkciA9ICh1bnNpZ25lZCBsb25nKV9fc3RhcnRfYnNzX2RlY3J5cHRlZDsKPj4gwqDCoMKgwqDC oMKgwqDCoMKgIHZhZGRyX2VuZCA9ICh1bnNpZ25lZCBsb25nKV9fZW5kX2Jzc19kZWNyeXB0ZWQ7 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBmb3IgKDsgdmFkZHIgPCB2YWRkcl9lbmQ7IHZhZGRyICs9 IFBNRF9TSVpFKSB7Cj4+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9pb3JlbWFwLmMgYi9hcmNo L3g4Ni9tbS9pb3JlbWFwLmMKPj4gaW5kZXggMGYyZDVhY2U1OTg2Li41ZTFjMWY1Y2JiZTggMTAw NjQ0Cj4+IC0tLSBhL2FyY2gveDg2L21tL2lvcmVtYXAuYwo+PiArKysgYi9hcmNoL3g4Ni9tbS9p b3JlbWFwLmMKPj4gQEAgLTY5Myw3ICs2OTMsNyBAQCBzdGF0aWMgYm9vbCBfX2luaXQKPj4gZWFy bHlfbWVtcmVtYXBfaXNfc2V0dXBfZGF0YShyZXNvdXJjZV9zaXplX3QgcGh5c19hZGRyLAo+PiDC oCBib29sIGFyY2hfbWVtcmVtYXBfY2FuX3JhbV9yZW1hcChyZXNvdXJjZV9zaXplX3QgcGh5c19h ZGRyLCB1bnNpZ25lZAo+PiBsb25nIHNpemUsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIGZsYWdzKQo+PiDCoCB7Cj4+IC3CoMKgwqAgaWYgKCFt ZW1fZW5jcnlwdF9hY3RpdmUoKSkKPj4gK8KgwqDCoCBpZiAoIXByb3RfZ3Vlc3RfaGFzKFBBVFRS X01FTV9FTkNSWVBUKSkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiB0cnVlOwo+PiDCoCDC oMKgwqDCoMKgIGlmIChmbGFncyAmIE1FTVJFTUFQX0VOQykKPj4gQEAgLTcyMyw3ICs3MjMsNyBA QCBwZ3Byb3RfdCBfX2luaXQKPj4gZWFybHlfbWVtcmVtYXBfcGdwcm90X2FkanVzdChyZXNvdXJj ZV9zaXplX3QgcGh5c19hZGRyLAo+PiDCoCB7Cj4+IMKgwqDCoMKgwqAgYm9vbCBlbmNyeXB0ZWRf cHJvdDsKPj4gwqAgLcKgwqDCoCBpZiAoIW1lbV9lbmNyeXB0X2FjdGl2ZSgpKQo+PiArwqDCoMKg IGlmICghcHJvdF9ndWVzdF9oYXMoUEFUVFJfTUVNX0VOQ1JZUFQpKQo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgcmV0dXJuIHByb3Q7Cj4+IMKgIMKgwqDCoMKgwqAgZW5jcnlwdGVkX3Byb3QgPSB0cnVl Owo+PiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vbWVtX2VuY3J5cHQuYyBiL2FyY2gveDg2L21t L21lbV9lbmNyeXB0LmMKPj4gaW5kZXggNDUxZGU4ZTg0ZmNlLi4wZjE1MzNkYmU4MWMgMTAwNjQ0 Cj4+IC0tLSBhL2FyY2gveDg2L21tL21lbV9lbmNyeXB0LmMKPj4gKysrIGIvYXJjaC94ODYvbW0v bWVtX2VuY3J5cHQuYwo+PiBAQCAtMzY0LDggKzM2NCw3IEBAIGludCBfX2luaXQgZWFybHlfc2V0 X21lbW9yeV9lbmNyeXB0ZWQodW5zaWduZWQgbG9uZwo+PiB2YWRkciwgdW5zaWduZWQgbG9uZyBz aXplKQo+PiDCoCAvKgo+PiDCoMKgICogU01FIGFuZCBTRVYgYXJlIHZlcnkgc2ltaWxhciBidXQg dGhleSBhcmUgbm90IHRoZSBzYW1lLCBzbyB0aGVyZSBhcmUKPj4gwqDCoCAqIHRpbWVzIHRoYXQg dGhlIGtlcm5lbCB3aWxsIG5lZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBTTUUgYW5kIFNFVi4K Pj4gVGhlCj4+IC0gKiBzbWVfYWN0aXZlKCkgYW5kIHNldl9hY3RpdmUoKSBmdW5jdGlvbnMgYXJl IHVzZWQgZm9yIHRoaXMuwqAgV2hlbiBhCj4+IC0gKiBkaXN0aW5jdGlvbiBpc24ndCBuZWVkZWQs IHRoZSBtZW1fZW5jcnlwdF9hY3RpdmUoKSBmdW5jdGlvbiBjYW4gYmUKPj4gdXNlZC4KPj4gKyAq IHNtZV9hY3RpdmUoKSBhbmQgc2V2X2FjdGl2ZSgpIGZ1bmN0aW9ucyBhcmUgdXNlZCBmb3IgdGhp cy4KPj4gwqDCoCAqCj4+IMKgwqAgKiBUaGUgdHJhbXBvbGluZSBjb2RlIGlzIGEgZ29vZCBleGFt cGxlIGZvciB0aGlzIHJlcXVpcmVtZW50LsKgIEJlZm9yZQo+PiDCoMKgICogcGFnaW5nIGlzIGFj dGl2YXRlZCwgU01FIHdpbGwgYWNjZXNzIGFsbCBtZW1vcnkgYXMgZGVjcnlwdGVkLCBidXQgU0VW Cj4+IEBAIC00NTEsNyArNDUwLDcgQEAgdm9pZCBfX2luaXQgbWVtX2VuY3J5cHRfZnJlZV9kZWNy eXB0ZWRfbWVtKHZvaWQpCj4+IMKgwqDCoMKgwqDCoCAqIFRoZSB1bnVzZWQgbWVtb3J5IHJhbmdl IHdhcyBtYXBwZWQgZGVjcnlwdGVkLCBjaGFuZ2UgdGhlCj4+IGVuY3J5cHRpb24KPj4gwqDCoMKg wqDCoMKgICogYXR0cmlidXRlIGZyb20gZGVjcnlwdGVkIHRvIGVuY3J5cHRlZCBiZWZvcmUgZnJl ZWluZyBpdC4KPj4gwqDCoMKgwqDCoMKgICovCj4+IC3CoMKgwqAgaWYgKG1lbV9lbmNyeXB0X2Fj dGl2ZSgpKSB7Cj4+ICvCoMKgwqAgaWYgKHNtZV9tZV9tYXNrKSB7Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoCByID0gc2V0X21lbW9yeV9lbmNyeXB0ZWQodmFkZHIsIG5wYWdlcyk7Cj4+IMKgwqDCoMKg wqDCoMKgwqDCoCBpZiAocikgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwcl93YXJu KCJmYWlsZWQgdG8gZnJlZSB1bnVzZWQgZGVjcnlwdGVkIHBhZ2VzXG4iKTsKPj4gZGlmZiAtLWdp dCBhL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMgYi9hcmNoL3g4Ni9tbS9wYXQvc2V0X21l bW9yeS5jCj4+IGluZGV4IGFkOGE1YzU4NmEzNS4uNjkyNWYyYmI0YmUxIDEwMDY0NAo+PiAtLS0g YS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jCj4+ICsrKyBiL2FyY2gveDg2L21tL3BhdC9z ZXRfbWVtb3J5LmMKPj4gQEAgLTE4LDYgKzE4LDcgQEAKPj4gwqAgI2luY2x1ZGUgPGxpbnV4L2xp Ym52ZGltbS5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvdm1zdGF0Lmg+Cj4+IMKgICNpbmNsdWRl IDxsaW51eC9rZXJuZWwuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9wcm90ZWN0ZWRfZ3Vlc3QuaD4K Pj4gwqAgwqAgI2luY2x1ZGUgPGFzbS9lODIwL2FwaS5oPgo+PiDCoCAjaW5jbHVkZSA8YXNtL3By b2Nlc3Nvci5oPgo+PiBAQCAtMTk4Niw3ICsxOTg3LDcgQEAgc3RhdGljIGludCBfX3NldF9tZW1v cnlfZW5jX2RlYyh1bnNpZ25lZCBsb25nCj4+IGFkZHIsIGludCBudW1wYWdlcywgYm9vbCBlbmMp Cj4+IMKgwqDCoMKgwqAgaW50IHJldDsKPj4gwqAgwqDCoMKgwqDCoCAvKiBOb3RoaW5nIHRvIGRv IGlmIG1lbW9yeSBlbmNyeXB0aW9uIGlzIG5vdCBhY3RpdmUgKi8KPj4gLcKgwqDCoCBpZiAoIW1l bV9lbmNyeXB0X2FjdGl2ZSgpKQo+PiArwqDCoMKgIGlmICghcHJvdF9ndWVzdF9oYXMoUEFUVFJf TUVNX0VOQ1JZUFQpKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+IMKgIMKgwqDC oMKgwqAgLyogU2hvdWxkIG5vdCBiZSB3b3JraW5nIG9uIHVuYWxpZ25lZCBhZGRyZXNzZXMgKi8K Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwo+ PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwo+PiBpbmRleCBhYmI5 Mjg4OTRlYWMuLjg0MDcyMjQ3MTdkZiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2Rydi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9kcnYuYwo+PiBAQCAtMzgsNiArMzgsNyBAQAo+PiDCoCAjaW5jbHVkZSA8ZHJtL2Ry bV9wcm9iZV9oZWxwZXIuaD4KPj4gwqAgI2luY2x1ZGUgPGxpbnV4L21tdV9ub3RpZmllci5oPgo+ PiDCoCAjaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3Byb3Rl Y3RlZF9ndWVzdC5oPgo+PiDCoCDCoCAjaW5jbHVkZSAiYW1kZ3B1LmgiCj4+IMKgICNpbmNsdWRl ICJhbWRncHVfaXJxLmgiCj4+IEBAIC0xMjM5LDcgKzEyNDAsOCBAQCBzdGF0aWMgaW50IGFtZGdw dV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsCj4+IMKgwqDCoMKgwqDCoCAqIGhvd2V2 ZXIsIFNNRSByZXF1aXJlcyBhbiBpbmRpcmVjdCBJT01NVSBtYXBwaW5nIGJlY2F1c2UgdGhlCj4+ IGVuY3J5cHRpb24KPj4gwqDCoMKgwqDCoMKgICogYml0IGlzIGJleW9uZCB0aGUgRE1BIG1hc2sg b2YgdGhlIGNoaXAuCj4+IMKgwqDCoMKgwqDCoCAqLwo+PiAtwqDCoMKgIGlmIChtZW1fZW5jcnlw dF9hY3RpdmUoKSAmJiAoKGZsYWdzICYgQU1EX0FTSUNfTUFTSykgPT0gQ0hJUF9SQVZFTikpIHsK Pj4gK8KgwqDCoCBpZiAocHJvdF9ndWVzdF9oYXMoUEFUVFJfTUVNX0VOQ1JZUFQpICYmCj4+ICvC oMKgwqDCoMKgwqDCoCAoKGZsYWdzICYgQU1EX0FTSUNfTUFTSykgPT0gQ0hJUF9SQVZFTikpIHsK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGRldl9pbmZvKCZwZGV2LT5kZXYsCj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgIlNNRSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIFJBVkVOXG4iKTsK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PVFNVUFA7Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2NhY2hlLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NhY2hlLmMK Pj4gaW5kZXggNTQ2NTk5ZjE5YTkzLi40ZDAxZDQ0MDEyZmQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fY2FjaGUuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NhY2hl LmMKPj4gQEAgLTMxLDcgKzMxLDcgQEAKPj4gwqAgI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYtbWFw Lmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KPj4gwqAgI2luY2x1ZGUgPGxpbnV4 L2hpZ2htZW0uaD4KPj4gLSNpbmNsdWRlIDxsaW51eC9tZW1fZW5jcnlwdC5oPgo+PiArI2luY2x1 ZGUgPGxpbnV4L3Byb3RlY3RlZF9ndWVzdC5oPgo+PiDCoCAjaW5jbHVkZSA8eGVuL3hlbi5oPgo+ PiDCoCDCoCAjaW5jbHVkZSA8ZHJtL2RybV9jYWNoZS5oPgo+PiBAQCAtMjA0LDcgKzIwNCw3IEBA IGJvb2wgZHJtX25lZWRfc3dpb3RsYihpbnQgZG1hX2JpdHMpCj4+IMKgwqDCoMKgwqDCoCAqIEVu Zm9yY2UgZG1hX2FsbG9jX2NvaGVyZW50IHdoZW4gbWVtb3J5IGVuY3J5cHRpb24gaXMgYWN0aXZl IGFzCj4+IHdlbGwKPj4gwqDCoMKgwqDCoMKgICogZm9yIHRoZSBzYW1lIHJlYXNvbnMgYXMgZm9y IFhlbiBwYXJhdmlydHVhbCBob3N0cy4KPj4gwqDCoMKgwqDCoMKgICovCj4+IC3CoMKgwqAgaWYg KG1lbV9lbmNyeXB0X2FjdGl2ZSgpKQo+PiArwqDCoMKgIGlmIChwcm90X2d1ZXN0X2hhcyhQQVRU Ul9NRU1fRU5DUllQVCkpCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gdHJ1ZTsKPj4gwqAg wqDCoMKgwqDCoCBmb3IgKHRtcCA9IGlvbWVtX3Jlc291cmNlLmNoaWxkOyB0bXA7IHRtcCA9IHRt cC0+c2libGluZykKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2Rydi5jCj4+IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKPj4gaW5kZXgg ZGRlOGIzNWJiOTUwLi4wNmVjOTVhNjUwYmEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2Rydi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2Rydi5jCj4+IEBAIC0yOSw3ICsyOSw3IEBACj4+IMKgICNpbmNsdWRlIDxsaW51eC9kbWEt bWFwcGluZy5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4+IMKgICNpbmNsdWRl IDxsaW51eC9wY2kuaD4KPj4gLSNpbmNsdWRlIDxsaW51eC9tZW1fZW5jcnlwdC5oPgo+PiArI2lu Y2x1ZGUgPGxpbnV4L3Byb3RlY3RlZF9ndWVzdC5oPgo+PiDCoCDCoCAjaW5jbHVkZSA8ZHJtL3R0 bS90dG1fcmFuZ2VfbWFuYWdlci5oPgo+PiDCoCAjaW5jbHVkZSA8ZHJtL2RybV9hcGVydHVyZS5o Pgo+PiBAQCAtNjM0LDcgKzYzNCw3IEBAIHN0YXRpYyBpbnQgdm13X2RtYV9zZWxlY3RfbW9kZShz dHJ1Y3Qgdm13X3ByaXZhdGUKPj4gKmRldl9wcml2KQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgW3Zt d19kbWFfbWFwX2JpbmRdID0gIkdpdmluZyB1cCBETUEgbWFwcGluZ3MgZWFybHkuIn07Cj4+IMKg IMKgwqDCoMKgwqAgLyogVFRNIGN1cnJlbnRseSBkb2Vzbid0IGZ1bGx5IHN1cHBvcnQgU0VWIGVu Y3J5cHRpb24uICovCj4+IC3CoMKgwqAgaWYgKG1lbV9lbmNyeXB0X2FjdGl2ZSgpKQo+PiArwqDC oMKgIGlmIChwcm90X2d1ZXN0X2hhcyhQQVRUUl9NRU1fRU5DUllQVCkpCj4+IMKgwqDCoMKgwqDC oMKgwqDCoCByZXR1cm4gLUVJTlZBTDsKPj4gwqAgwqDCoMKgwqDCoCBpZiAodm13X2ZvcmNlX2Nv aGVyZW50KQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbXNn LmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9tc2cuYwo+PiBpbmRleCAzZDA4 ZjU3MDBiZGIuLjBjNzA1NzNkM2RjZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfbXNnLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf bXNnLmMKPj4gQEAgLTI4LDcgKzI4LDcgQEAKPj4gwqAgI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5o Pgo+PiDCoCAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9z bGFiLmg+Cj4+IC0jaW5jbHVkZSA8bGludXgvbWVtX2VuY3J5cHQuaD4KPj4gKyNpbmNsdWRlIDxs aW51eC9wcm90ZWN0ZWRfZ3Vlc3QuaD4KPj4gwqAgwqAgI2luY2x1ZGUgPGFzbS9oeXBlcnZpc29y Lmg+Cj4+IMKgIEBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgdm13X3Bv cnRfaGJfb3V0KHN0cnVjdAo+PiBycGNfY2hhbm5lbCAqY2hhbm5lbCwKPj4gwqDCoMKgwqDCoCB1 bnNpZ25lZCBsb25nIG1zZ19sZW4gPSBzdHJsZW4obXNnKTsKPj4gwqAgwqDCoMKgwqDCoCAvKiBI QiBwb3J0IGNhbid0IGFjY2VzcyBlbmNyeXB0ZWQgbWVtb3J5LiAqLwo+PiAtwqDCoMKgIGlmICho YiAmJiAhbWVtX2VuY3J5cHRfYWN0aXZlKCkpIHsKPj4gK8KgwqDCoCBpZiAoaGIgJiYgIXByb3Rf Z3Vlc3RfaGFzKFBBVFRSX01FTV9FTkNSWVBUKSkgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgdW5z aWduZWQgbG9uZyBicCA9IGNoYW5uZWwtPmNvb2tpZV9oaWdoOwo+PiDCoCDCoMKgwqDCoMKgwqDC oMKgwqAgc2kgPSAodWludHB0cl90KSBtc2c7Cj4+IEBAIC0yMDgsNyArMjA4LDcgQEAgc3RhdGlj IHVuc2lnbmVkIGxvbmcgdm13X3BvcnRfaGJfaW4oc3RydWN0Cj4+IHJwY19jaGFubmVsICpjaGFu bmVsLCBjaGFyICpyZXBseSwKPj4gwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIHNpLCBkaSwgZWF4 LCBlYngsIGVjeCwgZWR4Owo+PiDCoCDCoMKgwqDCoMKgIC8qIEhCIHBvcnQgY2FuJ3QgYWNjZXNz IGVuY3J5cHRlZCBtZW1vcnkgKi8KPj4gLcKgwqDCoCBpZiAoaGIgJiYgIW1lbV9lbmNyeXB0X2Fj dGl2ZSgpKSB7Cj4+ICvCoMKgwqAgaWYgKGhiICYmICFwcm90X2d1ZXN0X2hhcyhQQVRUUl9NRU1f RU5DUllQVCkpIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcgYnAgPSBjaGFu bmVsLT5jb29raWVfbG93Owo+PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqAgc2kgPSBjaGFubmVsLT5j b29raWVfaGlnaDsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvYW1kL2lvbW11LmMgYi9k cml2ZXJzL2lvbW11L2FtZC9pb21tdS5jCj4+IGluZGV4IDgxMWE0OWE5NWQwNC4uZGVmNjNhOGRl YWI0IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2lvbW11L2FtZC9pb21tdS5jCj4+ICsrKyBiL2Ry aXZlcnMvaW9tbXUvYW1kL2lvbW11LmMKPj4gQEAgLTMxLDYgKzMxLDcgQEAKPj4gwqAgI2luY2x1 ZGUgPGxpbnV4L2lycWRvbWFpbi5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+Cj4+ IMKgICNpbmNsdWRlIDxsaW51eC9pby1wZ3RhYmxlLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvcHJv dGVjdGVkX2d1ZXN0Lmg+Cj4+IMKgICNpbmNsdWRlIDxhc20vaXJxX3JlbWFwcGluZy5oPgo+PiDC oCAjaW5jbHVkZSA8YXNtL2lvX2FwaWMuaD4KPj4gwqAgI2luY2x1ZGUgPGFzbS9hcGljLmg+Cj4+ IEBAIC0yMTc4LDcgKzIxNzksNyBAQCBzdGF0aWMgaW50IGFtZF9pb21tdV9kZWZfZG9tYWluX3R5 cGUoc3RydWN0IGRldmljZQo+PiAqZGV2KQo+PiDCoMKgwqDCoMKgwqAgKiBhY3RpdmUsIGJlY2F1 c2Ugc29tZSBvZiB0aG9zZSBkZXZpY2VzIChBTUQgR1BVcykgZG9uJ3QgaGF2ZSB0aGUKPj4gwqDC oMKgwqDCoMKgICogZW5jcnlwdGlvbiBiaXQgaW4gdGhlaXIgRE1BLW1hc2sgYW5kIHJlcXVpcmUg cmVtYXBwaW5nLgo+PiDCoMKgwqDCoMKgwqAgKi8KPj4gLcKgwqDCoCBpZiAoIW1lbV9lbmNyeXB0 X2FjdGl2ZSgpICYmIGRldl9kYXRhLT5pb21tdV92MikKPj4gK8KgwqDCoCBpZiAoIXByb3RfZ3Vl c3RfaGFzKFBBVFRSX01FTV9FTkNSWVBUKSAmJiBkZXZfZGF0YS0+aW9tbXVfdjIpCj4+IMKgwqDC oMKgwqDCoMKgwqDCoCByZXR1cm4gSU9NTVVfRE9NQUlOX0lERU5USVRZOwo+PiDCoCDCoMKgwqDC oMKgIHJldHVybiAwOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9hbWQvaW9tbXVfdjIu YyBiL2RyaXZlcnMvaW9tbXUvYW1kL2lvbW11X3YyLmMKPj4gaW5kZXggZjhkNGFkNDIxZTA3Li5h YzM1OWJjOTg1MjMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvaW9tbXUvYW1kL2lvbW11X3YyLmMK Pj4gKysrIGIvZHJpdmVycy9pb21tdS9hbWQvaW9tbXVfdjIuYwo+PiBAQCAtMTYsNiArMTYsNyBA QAo+PiDCoCAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvcGNp Lmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9nZnAuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9wcm90 ZWN0ZWRfZ3Vlc3QuaD4KPj4gwqAgwqAgI2luY2x1ZGUgImFtZF9pb21tdS5oIgo+PiDCoCBAQCAt NzQxLDcgKzc0Miw3IEBAIGludCBhbWRfaW9tbXVfaW5pdF9kZXZpY2Uoc3RydWN0IHBjaV9kZXYg KnBkZXYsCj4+IGludCBwYXNpZHMpCj4+IMKgwqDCoMKgwqDCoCAqIFdoZW4gbWVtb3J5IGVuY3J5 cHRpb24gaXMgYWN0aXZlIHRoZSBkZXZpY2UgaXMgbGlrZWx5IG5vdCBpbiBhCj4+IMKgwqDCoMKg wqDCoCAqIGRpcmVjdC1tYXBwZWQgZG9tYWluLiBGb3JiaWQgdXNpbmcgSU9NTVV2MiBmdW5jdGlv bmFsaXR5IGZvciBub3cuCj4+IMKgwqDCoMKgwqDCoCAqLwo+PiAtwqDCoMKgIGlmIChtZW1fZW5j cnlwdF9hY3RpdmUoKSkKPj4gK8KgwqDCoCBpZiAocHJvdF9ndWVzdF9oYXMoUEFUVFJfTUVNX0VO Q1JZUFQpKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9ERVY7Cj4+IMKgIMKgwqDC oMKgwqAgaWYgKCFhbWRfaW9tbXVfdjJfc3VwcG9ydGVkKCkpCj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2lvbW11L2lvbW11LmMgYi9kcml2ZXJzL2lvbW11L2lvbW11LmMKPj4gaW5kZXggNTQxOWM0 YjlmMjdhLi5kZGJlZGIxYjViNmIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvaW9tbXUvaW9tbXUu Ywo+PiArKysgYi9kcml2ZXJzL2lvbW11L2lvbW11LmMKPj4gQEAgLTIzLDYgKzIzLDcgQEAKPj4g wqAgI2luY2x1ZGUgPGxpbnV4L3Byb3BlcnR5Lmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9mc2wv bWMuaD4KPj4gwqAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+PiArI2luY2x1ZGUgPGxpbnV4 L3Byb3RlY3RlZF9ndWVzdC5oPgo+PiDCoCAjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL2lvbW11Lmg+ Cj4+IMKgIMKgIHN0YXRpYyBzdHJ1Y3Qga3NldCAqaW9tbXVfZ3JvdXBfa3NldDsKPj4gQEAgLTEy Nyw3ICsxMjgsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBpb21tdV9zdWJzeXNfaW5pdCh2b2lkKQo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgZWxzZQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp b21tdV9zZXRfZGVmYXVsdF90cmFuc2xhdGVkKGZhbHNlKTsKPj4gwqAgLcKgwqDCoMKgwqDCoMKg IGlmIChpb21tdV9kZWZhdWx0X3Bhc3N0aHJvdWdoKCkgJiYgbWVtX2VuY3J5cHRfYWN0aXZlKCkp IHsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmIChpb21tdV9kZWZhdWx0X3Bhc3N0aHJvdWdoKCkgJiYK Pj4gcHJvdF9ndWVzdF9oYXMoUEFUVFJfTUVNX0VOQ1JZUFQpKSB7Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHByX2luZm8oIk1lbW9yeSBlbmNyeXB0aW9uIGRldGVjdGVkIC0gRGlzYWJs aW5nIGRlZmF1bHQKPj4gSU9NTVUgUGFzc3Rocm91Z2hcbiIpOwo+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBpb21tdV9zZXRfZGVmYXVsdF90cmFuc2xhdGVkKGZhbHNlKTsKPj4gwqDCoMKg wqDCoMKgwqDCoMKgIH0KPj4gZGlmZiAtLWdpdCBhL2ZzL3Byb2Mvdm1jb3JlLmMgYi9mcy9wcm9j L3ZtY29yZS5jCj4+IGluZGV4IDlhMTUzMzRkYTIwOC4uYjQ2NmY1NDNkYzAwIDEwMDY0NAo+PiAt LS0gYS9mcy9wcm9jL3ZtY29yZS5jCj4+ICsrKyBiL2ZzL3Byb2Mvdm1jb3JlLmMKPj4gQEAgLTI2 LDcgKzI2LDcgQEAKPj4gwqAgI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KPj4gwqAgI2luY2x1 ZGUgPGxpbnV4L3BhZ2VtYXAuaD4KPj4gwqAgI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KPj4g LSNpbmNsdWRlIDxsaW51eC9tZW1fZW5jcnlwdC5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3Byb3Rl Y3RlZF9ndWVzdC5oPgo+PiDCoCAjaW5jbHVkZSA8YXNtL2lvLmg+Cj4+IMKgICNpbmNsdWRlICJp bnRlcm5hbC5oIgo+PiDCoCBAQCAtMTc3LDcgKzE3Nyw3IEBAIHNzaXplX3QgX193ZWFrIGVsZmNv cmVoZHJfcmVhZChjaGFyICpidWYsIHNpemVfdAo+PiBjb3VudCwgdTY0ICpwcG9zKQo+PiDCoMKg ICovCj4+IMKgIHNzaXplX3QgX193ZWFrIGVsZmNvcmVoZHJfcmVhZF9ub3RlcyhjaGFyICpidWYs IHNpemVfdCBjb3VudCwgdTY0ICpwcG9zKQo+PiDCoCB7Cj4+IC3CoMKgwqAgcmV0dXJuIHJlYWRf ZnJvbV9vbGRtZW0oYnVmLCBjb3VudCwgcHBvcywgMCwgbWVtX2VuY3J5cHRfYWN0aXZlKCkpOwo+ PiArwqDCoMKgIHJldHVybiByZWFkX2Zyb21fb2xkbWVtKGJ1ZiwgY291bnQsIHBwb3MsIDAsCj4+ IHByb3RfZ3Vlc3RfaGFzKFBBVFRSX01FTV9FTkNSWVBUKSk7Cj4+IMKgIH0KPj4gwqAgwqAgLyoK Pj4gQEAgLTM3OCw3ICszNzgsNyBAQCBzdGF0aWMgc3NpemVfdCBfX3JlYWRfdm1jb3JlKGNoYXIg KmJ1ZmZlciwgc2l6ZV90Cj4+IGJ1ZmxlbiwgbG9mZl90ICpmcG9zLAo+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZsZW4pOwo+PiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzdGFydCA9IG0tPnBhZGRyICsgKmZwb3MgLSBtLT5vZmZzZXQ7 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRtcCA9IHJlYWRfZnJvbV9vbGRtZW0oYnVm ZmVyLCB0c3osICZzdGFydCwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgdXNlcmJ1ZiwgbWVtX2VuY3J5cHRfYWN0aXZlKCkpOwo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1c2VyYnVm LCBwcm90X2d1ZXN0X2hhcyhQQVRUUl9NRU1fRU5DUllQVCkpOwo+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBpZiAodG1wIDwgMCkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCByZXR1cm4gdG1wOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZsZW4gLT0g dHN6Owo+PiBkaWZmIC0tZ2l0IGEva2VybmVsL2RtYS9zd2lvdGxiLmMgYi9rZXJuZWwvZG1hL3N3 aW90bGIuYwo+PiBpbmRleCBlNTBkZjhkOGY4N2UuLjJlOGRlZTIzYTYyNCAxMDA2NDQKPj4gLS0t IGEva2VybmVsL2RtYS9zd2lvdGxiLmMKPj4gKysrIGIva2VybmVsL2RtYS9zd2lvdGxiLmMKPj4g QEAgLTM0LDcgKzM0LDcgQEAKPj4gwqAgI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KPj4gwqAg I2luY2x1ZGUgPGxpbnV4L2dmcC5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3Qu aD4KPj4gLSNpbmNsdWRlIDxsaW51eC9tZW1fZW5jcnlwdC5oPgo+PiArI2luY2x1ZGUgPGxpbnV4 L3Byb3RlY3RlZF9ndWVzdC5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvc2V0X21lbW9yeS5oPgo+ PiDCoCAjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCj4+IMKgICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2Zz Lmg+Cj4+IEBAIC01MTUsNyArNTE1LDcgQEAgcGh5c19hZGRyX3Qgc3dpb3RsYl90YmxfbWFwX3Np bmdsZShzdHJ1Y3QgZGV2aWNlCj4+ICpkZXYsIHBoeXNfYWRkcl90IG9yaWdfYWRkciwKPj4gwqDC oMKgwqDCoCBpZiAoIW1lbSkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHBhbmljKCJDYW4gbm90IGFs bG9jYXRlIFNXSU9UTEIgYnVmZmVyIGVhcmxpZXIgYW5kIGNhbid0IG5vdwo+PiBwcm92aWRlIHlv dSB3aXRoIHRoZSBETUEgYm91bmNlIGJ1ZmZlciIpOwo+PiDCoCAtwqDCoMKgIGlmIChtZW1fZW5j cnlwdF9hY3RpdmUoKSkKPj4gK8KgwqDCoCBpZiAocHJvdF9ndWVzdF9oYXMoUEFUVFJfTUVNX0VO Q1JZUFQpKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcHJfd2Fybl9vbmNlKCJNZW1vcnkgZW5jcnlw dGlvbiBpcyBhY3RpdmUgYW5kIHN5c3RlbSBpcyB1c2luZwo+PiBETUEgYm91bmNlIGJ1ZmZlcnNc biIpOwo+PiDCoCDCoMKgwqDCoMKgIGlmIChtYXBwaW5nX3NpemUgPiBhbGxvY19zaXplKSB7Cj4+ CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwprZXhlYyBt YWlsaW5nIGxpc3QKa2V4ZWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2tleGVjCg==