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,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 42D34C433B4 for ; Fri, 14 May 2021 16:26:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1CA7661454 for ; Fri, 14 May 2021 16:26:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231132AbhENQ1L (ORCPT ); Fri, 14 May 2021 12:27:11 -0400 Received: from mail-dm6nam11on2077.outbound.protection.outlook.com ([40.107.223.77]:1504 "EHLO NAM11-DM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S230009AbhENQ1L (ORCPT ); Fri, 14 May 2021 12:27:11 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L+J7BKru/LHyOheOiuvU/3dIJzeqQOofJHBwCk+Ey/qGsELhauXduuH87iehQZXIdZ+tyaEKfOIhkVlX6yKmpzqM2QKuNxr6oEXoU/9QsdAJLUB74YlskI1VYS7cQi0kWpxYwY+uzfyOH1lNS/UQMxyDWE/hM41w8IU7dyeCNKlr+bgaI4SYXEyJJW3+ezJMHwOi4/5n3eTI1vZdSg1ynldtXbs3rzRhzIKv1D2EtVakd6T3TOIlsln/yk4Sksf5OgDc+AFJ8C3H5b18uhci1vS6tZB0QBg1Ipndk65FYQptRQZz5uymbLdeyao9TuIQ726o4mi4nZ+0Rs8yhHCFDQ== 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=FLefIJ7Ir0hQOTK8dckLiHD4bu3iboS0zM7Sc5QjvDE=; b=fIScZSS2lXn7G15J31QjSL2pWPFqnKHIlMAwQzKkGInKQKx6BEDjuPQ5/JLURg6ksU+uW6XLPVUSY+T4DKgNpkP6X+nvJ0diSPuHlOgqDQnfaa9bhzsXSF+/IcYj6bprwAbicMKLkTKjGMbmJnhVcTqa6R3KuF2ljmV18QCWdxUHg5Tz8tkAz1FY4suiU70XKeMTpuV4cmyuSW78v/UZoC4UQ4kvcXvHkhEjngRgmSsY0wHft2rAycjhny7HIM78j7xNpXYHZdAy59WoqQRihWaJeQ6AVbtcxXBvNG094iFLtlYG9PluA+xguH9a2+PthMrKG/TbmtTwSqf4W3L9Mw== 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=FLefIJ7Ir0hQOTK8dckLiHD4bu3iboS0zM7Sc5QjvDE=; b=DAP0PWTSYefunXs2Ln34tiDH15VgaDTnuRubqv0xt84BsDcNhWvTCaUMbR95d2FfOPAmOc6aKvifGIxyUMQ95MxFavqjDUKhw7VL3IVTH65mre9ipy5zEEjuZm9zptwKis4bq8Skg4QgW5YW9U4Df6OoxthJt8ohlKvdaouF3mI= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=amd.com; Received: from BN9PR12MB5129.namprd12.prod.outlook.com (2603:10b6:408:136::12) by BN9PR12MB5322.namprd12.prod.outlook.com (2603:10b6:408:103::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.27; Fri, 14 May 2021 16:25:58 +0000 Received: from BN9PR12MB5129.namprd12.prod.outlook.com ([fe80::3c78:e58b:fba7:b8dd]) by BN9PR12MB5129.namprd12.prod.outlook.com ([fe80::3c78:e58b:fba7:b8dd%6]) with mapi id 15.20.4129.028; Fri, 14 May 2021 16:25:58 +0000 Subject: Re: [PATCH v7 05/16] drm/amdgpu: Handle IOMMU enabled case. To: Andrey Grodzovsky , dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, linux-pci@vger.kernel.org, ckoenig.leichtzumerken@gmail.com, daniel.vetter@ffwll.ch, Harry.Wentland@amd.com Cc: Alexander.Deucher@amd.com, gregkh@linuxfoundation.org, helgaas@kernel.org References: <20210512142648.666476-1-andrey.grodzovsky@amd.com> <20210512142648.666476-6-andrey.grodzovsky@amd.com> <996a4ded-08da-7c27-5e79-6b408d8c43b0@amd.com> From: Felix Kuehling Message-ID: <32b61077-f760-8fe0-c00f-256a97d2977e@amd.com> Date: Fri, 14 May 2021 12:25:56 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 In-Reply-To: <996a4ded-08da-7c27-5e79-6b408d8c43b0@amd.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US X-Originating-IP: [142.116.138.207] X-ClientProxiedBy: YTXPR0101CA0036.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00::49) To BN9PR12MB5129.namprd12.prod.outlook.com (2603:10b6:408:136::12) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.2.100] (142.116.138.207) by YTXPR0101CA0036.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00::49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.31 via Frontend Transport; Fri, 14 May 2021 16:25:57 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 410ec3dc-085c-4b06-3775-08d916f4f4ac X-MS-TrafficTypeDiagnostic: BN9PR12MB5322: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1923; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ynwJraYuKwxHfn7w856uK8eE1hrXl0fZ4jhdvGfRhzQJ8PzJd7J2f+Ua3oHr4DthxeSuUHzGN1ZXALEdHbggBGMvCl87V0JsunbpIb+++dVQ0vAqd3Kxbo0Bx17fsqiZC7yQPHR12kvzKiGbPi2RUoniq1pR5GYaAmMT05UYuaTU+Byqh4jk+DpuJE4yGpTm0kMpdbhkWHc9+SO3jFkvFPrEJl7EPJ2Eumr1vZTsxOZc6Yt6TD1eDDGq0JYUVjzBtek4r9ZM3EL4gEEwLu1rT95z5kOxuM7HMi2J0nXxLSrS4V8gKpTNCBLaZ0zccPBeaDOUca7mxKdYMl/AiUOtzqCz2tGV2WWjFkTiOIy2k5uZdB51BxN2NBrrwar5aNRBOp7FnQe0UQ7W3toZJIhDX1QtSO+nPfAkUNEn7R16mRPd1bAleEtN+1CJflX/jozRr5bQ2juxx0mCZCEOHPvD7KLJlAEhs2Y7q5HxYqAIZwh/rd/YSXFT7zI/EYhwaO0knWf1/3AkwHgsei1W+VU/wAQi+ZR1JSDsphvNWjLNqMTFD+v2OdZkCuJNBqzMgfxXoObsZz4lllsw5debn5LClIrq2/WGwqMBsHcnXL9mLmlvnjAcFHR0rgATLDS81MXOBrtVvY7PCxtlJmzvNSW8Ci1hJi+sLMSN9FNL1x9lBfqaE2l7AYYzUiD5uPKWmt4l X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5129.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(396003)(346002)(366004)(376002)(136003)(31686004)(16576012)(4326008)(5660300002)(2616005)(6636002)(26005)(8936002)(316002)(31696002)(83380400001)(956004)(38100700002)(53546011)(8676002)(6486002)(44832011)(478600001)(66476007)(66556008)(186003)(2906002)(16526019)(30864003)(66946007)(86362001)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?MXhiY1MxTE1nWWQxTDlmaWdGazFpbU1CQ3hKSnMrSWFIcy9wbHM3K01FZ1lq?= =?utf-8?B?UmVyd1Fwa3pIR2trTGg5dTdIYzVYckRzZmduMHdXT3VEQ0RTeXY0eVVmU2Vw?= =?utf-8?B?UzUrT0t0N2IvS244TUZLdTA2T2NzUW1iZmJCeDkyZGRWSGZlb3g0OHkrT3dO?= =?utf-8?B?VjhQNERUa3o0WlFlOTRMMlh0V2IzN0JnYm1nV3JDdXFaazN5c3FUcEM1dFVl?= =?utf-8?B?M2laeExkaFNIV0Y5MmJUTGxZcndscGphVk5iQlJ4NEtaU0JVNkRmNkFjY3Zu?= =?utf-8?B?dFVsODU5aUtFakNYejdCYi8xYUVEOFJNajhtQWMvbU1ia3FqQWxSYXJKM0Fu?= =?utf-8?B?T0owSzVLQ1dYR2UyQVE5N1NkWXh0R2EyREh5b2h6OTlTem54RlJOZzI3NURT?= =?utf-8?B?M3BoK01kWENIVWxMa2dqUXEvNkRNYUdiMmtZLzU4UnQwUWsyQi9tNG90V1Jt?= =?utf-8?B?VE12ZnBJZjhNV0xHeHdwR24wMDl4NGR4aDQvS2s0QVF1QUxkWUg5RnNDaURE?= =?utf-8?B?Y1UwMDROSHdFZTEvQ3JTaG9vOFJCcGc0U0dZYVZkcjhCYWxkOWxpbXE2OVpS?= =?utf-8?B?ejcrTW5USTlvVVRRb1VuYVZnd3o0eWpxci9iMXByT0JVRmVkVWFxMERmTjFv?= =?utf-8?B?Z3Z5NHpMM25ITkN5Vkhuc2xrZTJOdGFPcTE0RktueGpwdDFYRnZ1MmQ3Rm9P?= =?utf-8?B?amx1RjRLd1BVN3Z4UFpSTytvL2hEaEwxdEpZTGhpZGs2ZENQaHB2STlSam9R?= =?utf-8?B?YjRwNFUrTklkR0pERmxieUtMeE9lWUxtUXJKaW1TWVdsd0Q3Z0tiRUhhZlRB?= =?utf-8?B?dXVGVjUxbFNSQm5LT00wYmZCeGRET2wxQ3FQN256aG5XUDBmRktrMnVMRTJN?= =?utf-8?B?SEVUVTRld3RSeUNFS2pJbGtYS3ZmTStGUkhQVWdweHQvSHd1ek5ueWMwWXFm?= =?utf-8?B?TkRSS2pyWEpRMndiUFdqd0xEeVRwSjVDemVWeFNEd3Nrc04yeHB6SkpDR0Ni?= =?utf-8?B?QmYrTzlEaHFheFdYa3lnbjVkeTRkRGtvRW5nMlduN2prVnRXTUF6RFlqY2li?= =?utf-8?B?cDJONzdUWnloSG9EVGlzWU1nNzN1VG0yTFdwYyt4dHRFY0hERjZYblh3MWNV?= =?utf-8?B?OVJHWDRqTndlakMwMnlCOEpOVmV0QVVTc3FmUEgrQ2lqZ0FIZVB6Vk1vTmZ2?= =?utf-8?B?M0FEMUpOZ3EweHA2b2xYc3lmMXhCa0w5YkZhVjlJNFZ3ZmFhaHBRM21RcWdz?= =?utf-8?B?KzgyRkpCZUhYdFp6N0JhV0dHNWNNVkJKdkFTVXlBbjBxanFrQjNnYXQ1cE9M?= =?utf-8?B?K2FZWUc5ZVpPUllpdEFjZldmK0pISlBidVlmTUhxaGNaVWdOLzh3ZkszUWdq?= =?utf-8?B?R0U5R0ZpbWJxNkl3K0J2U212dmcxN0FnTm5yK25pdlVHK2lMcTBDSnI0Z25i?= =?utf-8?B?R0NGWXdZVTFjRDFKWEV5VkZoYnNQN1VmWFEwZENsSGY2ZERGVXBBYmVlaFdk?= =?utf-8?B?RWFLK05oWnJ4WnlkaVY5bDZ5YUdFT2U2U0pYNWpKQU5PWFlzU0FrdUtzQk1h?= =?utf-8?B?UUVMYmdtY1drN0syOW1hZkpEZzhZS0tLRzJ4UUkyVm5GTUg0a2lnSFQ5M2xv?= =?utf-8?B?WExPUnFhRWZIcWFycHJwRm4vaWlxdW8rRU52c2JCdWJNNFNMSk1FZVdxejV5?= =?utf-8?B?dDhCODNBaVZCc1N3K2Z3K2x3elVOMWJzSHB5V2VOcUVJdzFnc1AzR3hyZ3FP?= =?utf-8?B?eXlVZWY5NllXV2ovampMOU9GOGl3WVAxRjAva3U5ZDBLMXgrYWVkbkRzS0ZZ?= =?utf-8?B?RHFzbEpxVXBnUE1LcWNWUT09?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 410ec3dc-085c-4b06-3775-08d916f4f4ac X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5129.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2021 16:25:58.4295 (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: LMShVe+mdA3YpCdUzP0Rwzw830LiMJf/EV+S1IoE0NxPswVRhOxNfKV5AMipJAv8Y62MAUsWD5gGvWhVW2jmDw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR12MB5322 Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org Maybe this patch needs a better explanation how the GART and IH changes relate to IOMMU or what's the problem this is meant to fix. Just looking at the patch I don't see the connection. Looks like just a bunch of refactoring to me. Regards,   Felix Am 2021-05-14 um 10:41 a.m. schrieb Andrey Grodzovsky: > Ping > > Andrey > > On 2021-05-12 10:26 a.m., Andrey Grodzovsky wrote: >> Handle all DMA IOMMU gropup related dependencies before the >> group is removed. >> >> v5: Drop IOMMU notifier and switch to lockless call to ttm_tt_unpopulate >> v6: Drop the BO unamp list >> v7: >> Drop amdgpu_gart_fini >> In amdgpu_ih_ring_fini do uncinditional  check (!ih->ring) >> to avoid freeing uniniitalized rings. >> Call amdgpu_ih_ring_fini unconditionally. >> >> Signed-off-by: Andrey Grodzovsky >> --- >>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |  4 ++-- >>   drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c   | 14 +------------- >>   drivers/gpu/drm/amd/amdgpu/amdgpu_gart.h   |  2 +- >>   drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c     |  6 ++++-- >>   drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c    |  5 +++++ >>   drivers/gpu/drm/amd/amdgpu/cik_ih.c        |  1 - >>   drivers/gpu/drm/amd/amdgpu/cz_ih.c         |  1 - >>   drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c     |  1 - >>   drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c      |  1 - >>   drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c      |  1 - >>   drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c      |  1 - >>   drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c      |  1 - >>   drivers/gpu/drm/amd/amdgpu/iceland_ih.c    |  1 - >>   drivers/gpu/drm/amd/amdgpu/navi10_ih.c     |  4 ---- >>   drivers/gpu/drm/amd/amdgpu/si_ih.c         |  1 - >>   drivers/gpu/drm/amd/amdgpu/tonga_ih.c      |  1 - >>   drivers/gpu/drm/amd/amdgpu/vega10_ih.c     |  4 ---- >>   drivers/gpu/drm/amd/amdgpu/vega20_ih.c     |  4 ---- >>   18 files changed, 13 insertions(+), 40 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> index 18598eda18f6..a0bff4713672 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> @@ -3256,7 +3256,6 @@ static const struct attribute >> *amdgpu_dev_attributes[] = { >>       NULL >>   }; >>   - >>   /** >>    * amdgpu_device_init - initialize the driver >>    * >> @@ -3698,12 +3697,13 @@ void amdgpu_device_fini_hw(struct >> amdgpu_device *adev) >>           amdgpu_ucode_sysfs_fini(adev); >>       sysfs_remove_files(&adev->dev->kobj, amdgpu_dev_attributes); >>   - >>       amdgpu_fbdev_fini(adev); >>         amdgpu_irq_fini_hw(adev); >>         amdgpu_device_ip_fini_early(adev); >> + >> +    amdgpu_gart_dummy_page_fini(adev); >>   } >>     void amdgpu_device_fini_sw(struct amdgpu_device *adev) >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c >> index c5a9a4fb10d2..6460cf723f0a 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c >> @@ -92,7 +92,7 @@ static int amdgpu_gart_dummy_page_init(struct >> amdgpu_device *adev) >>    * >>    * Frees the dummy page used by the driver (all asics). >>    */ >> -static void amdgpu_gart_dummy_page_fini(struct amdgpu_device *adev) >> +void amdgpu_gart_dummy_page_fini(struct amdgpu_device *adev) >>   { >>       if (!adev->dummy_page_addr) >>           return; >> @@ -365,15 +365,3 @@ int amdgpu_gart_init(struct amdgpu_device *adev) >>         return 0; >>   } >> - >> -/** >> - * amdgpu_gart_fini - tear down the driver info for managing the gart >> - * >> - * @adev: amdgpu_device pointer >> - * >> - * Tear down the gart driver info and free the dummy page (all asics). >> - */ >> -void amdgpu_gart_fini(struct amdgpu_device *adev) >> -{ >> -    amdgpu_gart_dummy_page_fini(adev); >> -} >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.h >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.h >> index a25fe97b0196..030b9d4c736a 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.h >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.h >> @@ -57,7 +57,7 @@ void amdgpu_gart_table_vram_free(struct >> amdgpu_device *adev); >>   int amdgpu_gart_table_vram_pin(struct amdgpu_device *adev); >>   void amdgpu_gart_table_vram_unpin(struct amdgpu_device *adev); >>   int amdgpu_gart_init(struct amdgpu_device *adev); >> -void amdgpu_gart_fini(struct amdgpu_device *adev); >> +void amdgpu_gart_dummy_page_fini(struct amdgpu_device *adev); >>   int amdgpu_gart_unbind(struct amdgpu_device *adev, uint64_t offset, >>                  int pages); >>   int amdgpu_gart_map(struct amdgpu_device *adev, uint64_t offset, >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c >> index faaa6aa2faaf..433469ace6f4 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c >> @@ -115,9 +115,11 @@ int amdgpu_ih_ring_init(struct amdgpu_device >> *adev, struct amdgpu_ih_ring *ih, >>    */ >>   void amdgpu_ih_ring_fini(struct amdgpu_device *adev, struct >> amdgpu_ih_ring *ih) >>   { >> + >> +    if (!ih->ring) >> +        return; >> + >>       if (ih->use_bus_addr) { >> -        if (!ih->ring) >> -            return; >>             /* add 8 bytes for the rptr/wptr shadows and >>            * add them to the end of the ring allocation. >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c >> index 233b64dab94b..32ce0e679dc7 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c >> @@ -361,6 +361,11 @@ void amdgpu_irq_fini_hw(struct amdgpu_device *adev) >>           if (!amdgpu_device_has_dc_support(adev)) >>               flush_work(&adev->hotplug_work); >>       } >> + >> +    amdgpu_ih_ring_fini(adev, &adev->irq.ih_soft); >> +    amdgpu_ih_ring_fini(adev, &adev->irq.ih); >> +    amdgpu_ih_ring_fini(adev, &adev->irq.ih1); >> +    amdgpu_ih_ring_fini(adev, &adev->irq.ih2); >>   } >>     /** >> diff --git a/drivers/gpu/drm/amd/amdgpu/cik_ih.c >> b/drivers/gpu/drm/amd/amdgpu/cik_ih.c >> index 183d44a6583c..df385ffc9768 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/cik_ih.c >> +++ b/drivers/gpu/drm/amd/amdgpu/cik_ih.c >> @@ -310,7 +310,6 @@ static int cik_ih_sw_fini(void *handle) >>       struct amdgpu_device *adev = (struct amdgpu_device *)handle; >>         amdgpu_irq_fini_sw(adev); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih); >>       amdgpu_irq_remove_domain(adev); >>         return 0; >> diff --git a/drivers/gpu/drm/amd/amdgpu/cz_ih.c >> b/drivers/gpu/drm/amd/amdgpu/cz_ih.c >> index d32743949003..b8c47e0cf37a 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/cz_ih.c >> +++ b/drivers/gpu/drm/amd/amdgpu/cz_ih.c >> @@ -302,7 +302,6 @@ static int cz_ih_sw_fini(void *handle) >>       struct amdgpu_device *adev = (struct amdgpu_device *)handle; >>         amdgpu_irq_fini_sw(adev); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih); >>       amdgpu_irq_remove_domain(adev); >>         return 0; >> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c >> b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c >> index 2bfd620576f2..5e8bfcdd422e 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c >> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c >> @@ -954,7 +954,6 @@ static int gmc_v10_0_sw_init(void *handle) >>   static void gmc_v10_0_gart_fini(struct amdgpu_device *adev) >>   { >>       amdgpu_gart_table_vram_free(adev); >> -    amdgpu_gart_fini(adev); >>   } >>     static int gmc_v10_0_sw_fini(void *handle) >> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c >> b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c >> index 405d6ad09022..0e81e03e9b49 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c >> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c >> @@ -898,7 +898,6 @@ static int gmc_v6_0_sw_fini(void *handle) >>       amdgpu_vm_manager_fini(adev); >>       amdgpu_gart_table_vram_free(adev); >>       amdgpu_bo_fini(adev); >> -    amdgpu_gart_fini(adev); >>       release_firmware(adev->gmc.fw); >>       adev->gmc.fw = NULL; >>   diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c >> b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c >> index 210ada2289ec..0795ea736573 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c >> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c >> @@ -1085,7 +1085,6 @@ static int gmc_v7_0_sw_fini(void *handle) >>       kfree(adev->gmc.vm_fault_info); >>       amdgpu_gart_table_vram_free(adev); >>       amdgpu_bo_fini(adev); >> -    amdgpu_gart_fini(adev); >>       release_firmware(adev->gmc.fw); >>       adev->gmc.fw = NULL; >>   diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c >> b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c >> index c1bd190841f8..dbf2e5472069 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c >> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c >> @@ -1194,7 +1194,6 @@ static int gmc_v8_0_sw_fini(void *handle) >>       kfree(adev->gmc.vm_fault_info); >>       amdgpu_gart_table_vram_free(adev); >>       amdgpu_bo_fini(adev); >> -    amdgpu_gart_fini(adev); >>       release_firmware(adev->gmc.fw); >>       adev->gmc.fw = NULL; >>   diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c >> b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c >> index c82d82da2c73..5ed0adae05cf 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c >> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c >> @@ -1601,7 +1601,6 @@ static int gmc_v9_0_sw_fini(void *handle) >>       amdgpu_gart_table_vram_free(adev); >>       amdgpu_bo_unref(&adev->gmc.pdb0_bo); >>       amdgpu_bo_fini(adev); >> -    amdgpu_gart_fini(adev); >>         return 0; >>   } >> diff --git a/drivers/gpu/drm/amd/amdgpu/iceland_ih.c >> b/drivers/gpu/drm/amd/amdgpu/iceland_ih.c >> index da96c6013477..ddfe4eaeea05 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/iceland_ih.c >> +++ b/drivers/gpu/drm/amd/amdgpu/iceland_ih.c >> @@ -301,7 +301,6 @@ static int iceland_ih_sw_fini(void *handle) >>       struct amdgpu_device *adev = (struct amdgpu_device *)handle; >>         amdgpu_irq_fini_sw(adev); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih); >>       amdgpu_irq_remove_domain(adev); >>         return 0; >> diff --git a/drivers/gpu/drm/amd/amdgpu/navi10_ih.c >> b/drivers/gpu/drm/amd/amdgpu/navi10_ih.c >> index 5eea4550b856..941d464a2b47 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/navi10_ih.c >> +++ b/drivers/gpu/drm/amd/amdgpu/navi10_ih.c >> @@ -570,10 +570,6 @@ static int navi10_ih_sw_fini(void *handle) >>       struct amdgpu_device *adev = (struct amdgpu_device *)handle; >>         amdgpu_irq_fini_sw(adev); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih_soft); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih2); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih1); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih); >>         return 0; >>   } >> diff --git a/drivers/gpu/drm/amd/amdgpu/si_ih.c >> b/drivers/gpu/drm/amd/amdgpu/si_ih.c >> index 751307f3252c..9a24f17a5750 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/si_ih.c >> +++ b/drivers/gpu/drm/amd/amdgpu/si_ih.c >> @@ -176,7 +176,6 @@ static int si_ih_sw_fini(void *handle) >>       struct amdgpu_device *adev = (struct amdgpu_device *)handle; >>         amdgpu_irq_fini_sw(adev); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih); >>         return 0; >>   } >> diff --git a/drivers/gpu/drm/amd/amdgpu/tonga_ih.c >> b/drivers/gpu/drm/amd/amdgpu/tonga_ih.c >> index 973d80ec7f6c..b08905d1c00f 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/tonga_ih.c >> +++ b/drivers/gpu/drm/amd/amdgpu/tonga_ih.c >> @@ -313,7 +313,6 @@ static int tonga_ih_sw_fini(void *handle) >>       struct amdgpu_device *adev = (struct amdgpu_device *)handle; >>         amdgpu_irq_fini_sw(adev); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih); >>       amdgpu_irq_remove_domain(adev); >>         return 0; >> diff --git a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c >> b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c >> index dead9c2fbd4c..32ec4b8e806a 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c >> +++ b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c >> @@ -514,10 +514,6 @@ static int vega10_ih_sw_fini(void *handle) >>       struct amdgpu_device *adev = (struct amdgpu_device *)handle; >>         amdgpu_irq_fini_sw(adev); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih_soft); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih2); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih1); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih); >>         return 0; >>   } >> diff --git a/drivers/gpu/drm/amd/amdgpu/vega20_ih.c >> b/drivers/gpu/drm/amd/amdgpu/vega20_ih.c >> index 58993ae1fe11..f51dfc38ac65 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/vega20_ih.c >> +++ b/drivers/gpu/drm/amd/amdgpu/vega20_ih.c >> @@ -566,10 +566,6 @@ static int vega20_ih_sw_fini(void *handle) >>       struct amdgpu_device *adev = (struct amdgpu_device *)handle; >>         amdgpu_irq_fini_sw(adev); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih_soft); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih2); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih1); >> -    amdgpu_ih_ring_fini(adev, &adev->irq.ih); >>         return 0; >>   } >> 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, 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 21EAEC433ED for ; Fri, 14 May 2021 16:26:07 +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 B9E5161454 for ; Fri, 14 May 2021 16:26:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B9E5161454 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 774936EF3F; Fri, 14 May 2021 16:26:02 +0000 (UTC) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2041.outbound.protection.outlook.com [40.107.223.41]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9725F6E20C; Fri, 14 May 2021 16:26:00 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L+J7BKru/LHyOheOiuvU/3dIJzeqQOofJHBwCk+Ey/qGsELhauXduuH87iehQZXIdZ+tyaEKfOIhkVlX6yKmpzqM2QKuNxr6oEXoU/9QsdAJLUB74YlskI1VYS7cQi0kWpxYwY+uzfyOH1lNS/UQMxyDWE/hM41w8IU7dyeCNKlr+bgaI4SYXEyJJW3+ezJMHwOi4/5n3eTI1vZdSg1ynldtXbs3rzRhzIKv1D2EtVakd6T3TOIlsln/yk4Sksf5OgDc+AFJ8C3H5b18uhci1vS6tZB0QBg1Ipndk65FYQptRQZz5uymbLdeyao9TuIQ726o4mi4nZ+0Rs8yhHCFDQ== 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=FLefIJ7Ir0hQOTK8dckLiHD4bu3iboS0zM7Sc5QjvDE=; b=fIScZSS2lXn7G15J31QjSL2pWPFqnKHIlMAwQzKkGInKQKx6BEDjuPQ5/JLURg6ksU+uW6XLPVUSY+T4DKgNpkP6X+nvJ0diSPuHlOgqDQnfaa9bhzsXSF+/IcYj6bprwAbicMKLkTKjGMbmJnhVcTqa6R3KuF2ljmV18QCWdxUHg5Tz8tkAz1FY4suiU70XKeMTpuV4cmyuSW78v/UZoC4UQ4kvcXvHkhEjngRgmSsY0wHft2rAycjhny7HIM78j7xNpXYHZdAy59WoqQRihWaJeQ6AVbtcxXBvNG094iFLtlYG9PluA+xguH9a2+PthMrKG/TbmtTwSqf4W3L9Mw== 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=FLefIJ7Ir0hQOTK8dckLiHD4bu3iboS0zM7Sc5QjvDE=; b=DAP0PWTSYefunXs2Ln34tiDH15VgaDTnuRubqv0xt84BsDcNhWvTCaUMbR95d2FfOPAmOc6aKvifGIxyUMQ95MxFavqjDUKhw7VL3IVTH65mre9ipy5zEEjuZm9zptwKis4bq8Skg4QgW5YW9U4Df6OoxthJt8ohlKvdaouF3mI= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=amd.com; Received: from BN9PR12MB5129.namprd12.prod.outlook.com (2603:10b6:408:136::12) by BN9PR12MB5322.namprd12.prod.outlook.com (2603:10b6:408:103::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.27; Fri, 14 May 2021 16:25:58 +0000 Received: from BN9PR12MB5129.namprd12.prod.outlook.com ([fe80::3c78:e58b:fba7:b8dd]) by BN9PR12MB5129.namprd12.prod.outlook.com ([fe80::3c78:e58b:fba7:b8dd%6]) with mapi id 15.20.4129.028; Fri, 14 May 2021 16:25:58 +0000 Subject: Re: [PATCH v7 05/16] drm/amdgpu: Handle IOMMU enabled case. To: Andrey Grodzovsky , dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, linux-pci@vger.kernel.org, ckoenig.leichtzumerken@gmail.com, daniel.vetter@ffwll.ch, Harry.Wentland@amd.com References: <20210512142648.666476-1-andrey.grodzovsky@amd.com> <20210512142648.666476-6-andrey.grodzovsky@amd.com> <996a4ded-08da-7c27-5e79-6b408d8c43b0@amd.com> From: Felix Kuehling Message-ID: <32b61077-f760-8fe0-c00f-256a97d2977e@amd.com> Date: Fri, 14 May 2021 12:25:56 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 In-Reply-To: <996a4ded-08da-7c27-5e79-6b408d8c43b0@amd.com> Content-Language: en-US X-Originating-IP: [142.116.138.207] X-ClientProxiedBy: YTXPR0101CA0036.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00::49) To BN9PR12MB5129.namprd12.prod.outlook.com (2603:10b6:408:136::12) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.2.100] (142.116.138.207) by YTXPR0101CA0036.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00::49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.31 via Frontend Transport; Fri, 14 May 2021 16:25:57 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 410ec3dc-085c-4b06-3775-08d916f4f4ac X-MS-TrafficTypeDiagnostic: BN9PR12MB5322: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1923; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ynwJraYuKwxHfn7w856uK8eE1hrXl0fZ4jhdvGfRhzQJ8PzJd7J2f+Ua3oHr4DthxeSuUHzGN1ZXALEdHbggBGMvCl87V0JsunbpIb+++dVQ0vAqd3Kxbo0Bx17fsqiZC7yQPHR12kvzKiGbPi2RUoniq1pR5GYaAmMT05UYuaTU+Byqh4jk+DpuJE4yGpTm0kMpdbhkWHc9+SO3jFkvFPrEJl7EPJ2Eumr1vZTsxOZc6Yt6TD1eDDGq0JYUVjzBtek4r9ZM3EL4gEEwLu1rT95z5kOxuM7HMi2J0nXxLSrS4V8gKpTNCBLaZ0zccPBeaDOUca7mxKdYMl/AiUOtzqCz2tGV2WWjFkTiOIy2k5uZdB51BxN2NBrrwar5aNRBOp7FnQe0UQ7W3toZJIhDX1QtSO+nPfAkUNEn7R16mRPd1bAleEtN+1CJflX/jozRr5bQ2juxx0mCZCEOHPvD7KLJlAEhs2Y7q5HxYqAIZwh/rd/YSXFT7zI/EYhwaO0knWf1/3AkwHgsei1W+VU/wAQi+ZR1JSDsphvNWjLNqMTFD+v2OdZkCuJNBqzMgfxXoObsZz4lllsw5debn5LClIrq2/WGwqMBsHcnXL9mLmlvnjAcFHR0rgATLDS81MXOBrtVvY7PCxtlJmzvNSW8Ci1hJi+sLMSN9FNL1x9lBfqaE2l7AYYzUiD5uPKWmt4l X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR12MB5129.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(396003)(346002)(366004)(376002)(136003)(31686004)(16576012)(4326008)(5660300002)(2616005)(6636002)(26005)(8936002)(316002)(31696002)(83380400001)(956004)(38100700002)(53546011)(8676002)(6486002)(44832011)(478600001)(66476007)(66556008)(186003)(2906002)(16526019)(30864003)(66946007)(86362001)(36756003)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?MXhiY1MxTE1nWWQxTDlmaWdGazFpbU1CQ3hKSnMrSWFIcy9wbHM3K01FZ1lq?= =?utf-8?B?UmVyd1Fwa3pIR2trTGg5dTdIYzVYckRzZmduMHdXT3VEQ0RTeXY0eVVmU2Vw?= =?utf-8?B?UzUrT0t0N2IvS244TUZLdTA2T2NzUW1iZmJCeDkyZGRWSGZlb3g0OHkrT3dO?= =?utf-8?B?VjhQNERUa3o0WlFlOTRMMlh0V2IzN0JnYm1nV3JDdXFaazN5c3FUcEM1dFVl?= =?utf-8?B?M2laeExkaFNIV0Y5MmJUTGxZcndscGphVk5iQlJ4NEtaU0JVNkRmNkFjY3Zu?= =?utf-8?B?dFVsODU5aUtFakNYejdCYi8xYUVEOFJNajhtQWMvbU1ia3FqQWxSYXJKM0Fu?= =?utf-8?B?T0owSzVLQ1dYR2UyQVE5N1NkWXh0R2EyREh5b2h6OTlTem54RlJOZzI3NURT?= =?utf-8?B?M3BoK01kWENIVWxMa2dqUXEvNkRNYUdiMmtZLzU4UnQwUWsyQi9tNG90V1Jt?= =?utf-8?B?VE12ZnBJZjhNV0xHeHdwR24wMDl4NGR4aDQvS2s0QVF1QUxkWUg5RnNDaURE?= =?utf-8?B?Y1UwMDROSHdFZTEvQ3JTaG9vOFJCcGc0U0dZYVZkcjhCYWxkOWxpbXE2OVpS?= =?utf-8?B?ejcrTW5USTlvVVRRb1VuYVZnd3o0eWpxci9iMXByT0JVRmVkVWFxMERmTjFv?= =?utf-8?B?Z3Z5NHpMM25ITkN5Vkhuc2xrZTJOdGFPcTE0RktueGpwdDFYRnZ1MmQ3Rm9P?= =?utf-8?B?amx1RjRLd1BVN3Z4UFpSTytvL2hEaEwxdEpZTGhpZGs2ZENQaHB2STlSam9R?= =?utf-8?B?YjRwNFUrTklkR0pERmxieUtMeE9lWUxtUXJKaW1TWVdsd0Q3Z0tiRUhhZlRB?= =?utf-8?B?dXVGVjUxbFNSQm5LT00wYmZCeGRET2wxQ3FQN256aG5XUDBmRktrMnVMRTJN?= =?utf-8?B?SEVUVTRld3RSeUNFS2pJbGtYS3ZmTStGUkhQVWdweHQvSHd1ek5ueWMwWXFm?= =?utf-8?B?TkRSS2pyWEpRMndiUFdqd0xEeVRwSjVDemVWeFNEd3Nrc04yeHB6SkpDR0Ni?= =?utf-8?B?QmYrTzlEaHFheFdYa3lnbjVkeTRkRGtvRW5nMlduN2prVnRXTUF6RFlqY2li?= =?utf-8?B?cDJONzdUWnloSG9EVGlzWU1nNzN1VG0yTFdwYyt4dHRFY0hERjZYblh3MWNV?= =?utf-8?B?OVJHWDRqTndlakMwMnlCOEpOVmV0QVVTc3FmUEgrQ2lqZ0FIZVB6Vk1vTmZ2?= =?utf-8?B?M0FEMUpOZ3EweHA2b2xYc3lmMXhCa0w5YkZhVjlJNFZ3ZmFhaHBRM21RcWdz?= =?utf-8?B?KzgyRkpCZUhYdFp6N0JhV0dHNWNNVkJKdkFTVXlBbjBxanFrQjNnYXQ1cE9M?= =?utf-8?B?K2FZWUc5ZVpPUllpdEFjZldmK0pISlBidVlmTUhxaGNaVWdOLzh3ZkszUWdq?= =?utf-8?B?R0U5R0ZpbWJxNkl3K0J2U212dmcxN0FnTm5yK25pdlVHK2lMcTBDSnI0Z25i?= =?utf-8?B?R0NGWXdZVTFjRDFKWEV5VkZoYnNQN1VmWFEwZENsSGY2ZERGVXBBYmVlaFdk?= =?utf-8?B?RWFLK05oWnJ4WnlkaVY5bDZ5YUdFT2U2U0pYNWpKQU5PWFlzU0FrdUtzQk1h?= =?utf-8?B?UUVMYmdtY1drN0syOW1hZkpEZzhZS0tLRzJ4UUkyVm5GTUg0a2lnSFQ5M2xv?= =?utf-8?B?WExPUnFhRWZIcWFycHJwRm4vaWlxdW8rRU52c2JCdWJNNFNMSk1FZVdxejV5?= =?utf-8?B?dDhCODNBaVZCc1N3K2Z3K2x3elVOMWJzSHB5V2VOcUVJdzFnc1AzR3hyZ3FP?= =?utf-8?B?eXlVZWY5NllXV2ovampMOU9GOGl3WVAxRjAva3U5ZDBLMXgrYWVkbkRzS0ZZ?= =?utf-8?B?RHFzbEpxVXBnUE1LcWNWUT09?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 410ec3dc-085c-4b06-3775-08d916f4f4ac X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5129.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2021 16:25:58.4295 (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: LMShVe+mdA3YpCdUzP0Rwzw830LiMJf/EV+S1IoE0NxPswVRhOxNfKV5AMipJAv8Y62MAUsWD5gGvWhVW2jmDw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR12MB5322 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alexander.Deucher@amd.com, gregkh@linuxfoundation.org, helgaas@kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" TWF5YmUgdGhpcyBwYXRjaCBuZWVkcyBhIGJldHRlciBleHBsYW5hdGlvbiBob3cgdGhlIEdBUlQg YW5kIElIIGNoYW5nZXMKcmVsYXRlIHRvIElPTU1VIG9yIHdoYXQncyB0aGUgcHJvYmxlbSB0aGlz IGlzIG1lYW50IHRvIGZpeC4gSnVzdCBsb29raW5nCmF0IHRoZSBwYXRjaCBJIGRvbid0IHNlZSB0 aGUgY29ubmVjdGlvbi4gTG9va3MgbGlrZSBqdXN0IGEgYnVuY2ggb2YKcmVmYWN0b3JpbmcgdG8g bWUuCgpSZWdhcmRzLArCoCBGZWxpeAoKCkFtIDIwMjEtMDUtMTQgdW0gMTA6NDEgYS5tLiBzY2hy aWViIEFuZHJleSBHcm9kem92c2t5Ogo+IFBpbmcKPgo+IEFuZHJleQo+Cj4gT24gMjAyMS0wNS0x MiAxMDoyNiBhLm0uLCBBbmRyZXkgR3JvZHpvdnNreSB3cm90ZToKPj4gSGFuZGxlIGFsbCBETUEg SU9NTVUgZ3JvcHVwIHJlbGF0ZWQgZGVwZW5kZW5jaWVzIGJlZm9yZSB0aGUKPj4gZ3JvdXAgaXMg cmVtb3ZlZC4KPj4KPj4gdjU6IERyb3AgSU9NTVUgbm90aWZpZXIgYW5kIHN3aXRjaCB0byBsb2Nr bGVzcyBjYWxsIHRvIHR0bV90dF91bnBvcHVsYXRlCj4+IHY2OiBEcm9wIHRoZSBCTyB1bmFtcCBs aXN0Cj4+IHY3Ogo+PiBEcm9wIGFtZGdwdV9nYXJ0X2ZpbmkKPj4gSW4gYW1kZ3B1X2loX3Jpbmdf ZmluaSBkbyB1bmNpbmRpdGlvbmFswqAgY2hlY2sgKCFpaC0+cmluZykKPj4gdG8gYXZvaWQgZnJl ZWluZyB1bmluaWl0YWxpemVkIHJpbmdzLgo+PiBDYWxsIGFtZGdwdV9paF9yaW5nX2ZpbmkgdW5j b25kaXRpb25hbGx5Lgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBBbmRyZXkgR3JvZHpvdnNreSA8YW5k cmV5Lmdyb2R6b3Zza3lAYW1kLmNvbT4KPj4gLS0tCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyB8wqAgNCArKy0tCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmPCoMKgIHwgMTQgKy0tLS0tLS0tLS0tLS0KPj4gwqAgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQuaMKgwqAgfMKgIDIgKy0KPj4gwqAg ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2loLmPCoMKgwqDCoCB8wqAgNiArKysr LS0KPj4gwqAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lycS5jwqDCoMKgIHzC oCA1ICsrKysrCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19paC5jwqDCoMKg wqDCoMKgwqAgfMKgIDEgLQo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jel9paC5j wqDCoMKgwqDCoMKgwqDCoCB8wqAgMSAtCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2dtY192MTBfMC5jwqDCoMKgwqAgfMKgIDEgLQo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nbWNfdjZfMC5jwqDCoMKgwqDCoCB8wqAgMSAtCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2dtY192N18wLmPCoMKgwqDCoMKgIHzCoCAxIC0KPj4gwqAgZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuY8KgwqDCoMKgwqAgfMKgIDEgLQo+PiDCoCBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jwqDCoMKgwqDCoCB8wqAgMSAtCj4+IMKgIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2ljZWxhbmRfaWguY8KgwqDCoCB8wqAgMSAtCj4+IMKg IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25hdmkxMF9paC5jwqDCoMKgwqAgfMKgIDQgLS0t LQo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zaV9paC5jwqDCoMKgwqDCoMKgwqDC oCB8wqAgMSAtCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3RvbmdhX2loLmPCoMKg wqDCoMKgIHzCoCAxIC0KPj4gwqAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmVnYTEwX2lo LmPCoMKgwqDCoCB8wqAgNCAtLS0tCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zl Z2EyMF9paC5jwqDCoMKgwqAgfMKgIDQgLS0tLQo+PiDCoCAxOCBmaWxlcyBjaGFuZ2VkLCAxMyBp bnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+PiBpbmRleCAxODU5OGVkYTE4ZjYuLmEwYmZmNDcx MzY3MiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rl dmljZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2Uu Ywo+PiBAQCAtMzI1Niw3ICszMjU2LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUK Pj4gKmFtZGdwdV9kZXZfYXR0cmlidXRlc1tdID0gewo+PiDCoMKgwqDCoMKgIE5VTEwKPj4gwqAg fTsKPj4gwqAgLQo+PiDCoCAvKioKPj4gwqDCoCAqIGFtZGdwdV9kZXZpY2VfaW5pdCAtIGluaXRp YWxpemUgdGhlIGRyaXZlcgo+PiDCoMKgICoKPj4gQEAgLTM2OTgsMTIgKzM2OTcsMTMgQEAgdm9p ZCBhbWRncHVfZGV2aWNlX2ZpbmlfaHcoc3RydWN0Cj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCBhbWRncHVfdWNvZGVfc3lzZnNfZmluaShhZGV2KTsKPj4gwqDC oMKgwqDCoCBzeXNmc19yZW1vdmVfZmlsZXMoJmFkZXYtPmRldi0+a29iaiwgYW1kZ3B1X2Rldl9h dHRyaWJ1dGVzKTsKPj4gwqAgLQo+PiDCoMKgwqDCoMKgIGFtZGdwdV9mYmRldl9maW5pKGFkZXYp Owo+PiDCoCDCoMKgwqDCoMKgIGFtZGdwdV9pcnFfZmluaV9odyhhZGV2KTsKPj4gwqAgwqDCoMKg wqDCoCBhbWRncHVfZGV2aWNlX2lwX2ZpbmlfZWFybHkoYWRldik7Cj4+ICsKPj4gK8KgwqDCoCBh bWRncHVfZ2FydF9kdW1teV9wYWdlX2ZpbmkoYWRldik7Cj4+IMKgIH0KPj4gwqAgwqAgdm9pZCBh bWRncHVfZGV2aWNlX2Zpbmlfc3coc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2FydC5jCj4+IGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQuYwo+PiBpbmRleCBjNWE5YTRmYjEw ZDIuLjY0NjBjZjcyM2YwYSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2dhcnQuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfZ2FydC5jCj4+IEBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2dhcnRfZHVt bXlfcGFnZV9pbml0KHN0cnVjdAo+PiBhbWRncHVfZGV2aWNlICphZGV2KQo+PiDCoMKgICoKPj4g wqDCoCAqIEZyZWVzIHRoZSBkdW1teSBwYWdlIHVzZWQgYnkgdGhlIGRyaXZlciAoYWxsIGFzaWNz KS4KPj4gwqDCoCAqLwo+PiAtc3RhdGljIHZvaWQgYW1kZ3B1X2dhcnRfZHVtbXlfcGFnZV9maW5p KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+PiArdm9pZCBhbWRncHVfZ2FydF9kdW1teV9w YWdlX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4+IMKgIHsKPj4gwqDCoMKgwqDC oCBpZiAoIWFkZXYtPmR1bW15X3BhZ2VfYWRkcikKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVy bjsKPj4gQEAgLTM2NSwxNSArMzY1LDMgQEAgaW50IGFtZGdwdV9nYXJ0X2luaXQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCj4+IMKgIMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+IMKgIH0KPj4g LQo+PiAtLyoqCj4+IC0gKiBhbWRncHVfZ2FydF9maW5pIC0gdGVhciBkb3duIHRoZSBkcml2ZXIg aW5mbyBmb3IgbWFuYWdpbmcgdGhlIGdhcnQKPj4gLSAqCj4+IC0gKiBAYWRldjogYW1kZ3B1X2Rl dmljZSBwb2ludGVyCj4+IC0gKgo+PiAtICogVGVhciBkb3duIHRoZSBnYXJ0IGRyaXZlciBpbmZv IGFuZCBmcmVlIHRoZSBkdW1teSBwYWdlIChhbGwgYXNpY3MpLgo+PiAtICovCj4+IC12b2lkIGFt ZGdwdV9nYXJ0X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4+IC17Cj4+IC3CoMKg wqAgYW1kZ3B1X2dhcnRfZHVtbXlfcGFnZV9maW5pKGFkZXYpOwo+PiAtfQo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQuaAo+PiBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmgKPj4gaW5kZXggYTI1ZmU5N2IwMTk2Li4w MzBiOWQ0YzczNmEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9nYXJ0LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dh cnQuaAo+PiBAQCAtNTcsNyArNTcsNyBAQCB2b2lkIGFtZGdwdV9nYXJ0X3RhYmxlX3ZyYW1fZnJl ZShzdHJ1Y3QKPj4gYW1kZ3B1X2RldmljZSAqYWRldik7Cj4+IMKgIGludCBhbWRncHVfZ2FydF90 YWJsZV92cmFtX3BpbihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4+IMKgIHZvaWQgYW1k Z3B1X2dhcnRfdGFibGVfdnJhbV91bnBpbihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4+ IMKgIGludCBhbWRncHVfZ2FydF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKPj4g LXZvaWQgYW1kZ3B1X2dhcnRfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4+ICt2 b2lkIGFtZGdwdV9nYXJ0X2R1bW15X3BhZ2VfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dik7Cj4+IMKgIGludCBhbWRncHVfZ2FydF91bmJpbmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsIHVpbnQ2NF90IG9mZnNldCwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg aW50IHBhZ2VzKTsKPj4gwqAgaW50IGFtZGdwdV9nYXJ0X21hcChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwgdWludDY0X3Qgb2Zmc2V0LAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2loLmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfaWguYwo+PiBpbmRleCBmYWFhNmFhMmZhYWYuLjQzMzQ2OWFjZTZmNCAxMDA2NDQKPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2loLmMKPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2loLmMKPj4gQEAgLTExNSw5ICsxMTUsMTEg QEAgaW50IGFtZGdwdV9paF9yaW5nX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UKPj4gKmFkZXYs IHN0cnVjdCBhbWRncHVfaWhfcmluZyAqaWgsCj4+IMKgwqAgKi8KPj4gwqAgdm9pZCBhbWRncHVf aWhfcmluZ19maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QKPj4gYW1kZ3B1 X2loX3JpbmcgKmloKQo+PiDCoCB7Cj4+ICsKPj4gK8KgwqDCoCBpZiAoIWloLT5yaW5nKQo+PiAr wqDCoMKgwqDCoMKgwqAgcmV0dXJuOwo+PiArCj4+IMKgwqDCoMKgwqAgaWYgKGloLT51c2VfYnVz X2FkZHIpIHsKPj4gLcKgwqDCoMKgwqDCoMKgIGlmICghaWgtPnJpbmcpCj4+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHJldHVybjsKPj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIGFkZCA4IGJ5 dGVzIGZvciB0aGUgcnB0ci93cHRyIHNoYWRvd3MgYW5kCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg ICogYWRkIHRoZW0gdG8gdGhlIGVuZCBvZiB0aGUgcmluZyBhbGxvY2F0aW9uLgo+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lycS5jCj4+IGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lycS5jCj4+IGluZGV4IDIzM2I2NGRhYjk0Yi4u MzJjZTBlNjc5ZGM3IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfaXJxLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ly cS5jCj4+IEBAIC0zNjEsNiArMzYxLDExIEBAIHZvaWQgYW1kZ3B1X2lycV9maW5pX2h3KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFhbWRncHVf ZGV2aWNlX2hhc19kY19zdXBwb3J0KGFkZXYpKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBmbHVzaF93b3JrKCZhZGV2LT5ob3RwbHVnX3dvcmspOwo+PiDCoMKgwqDCoMKgIH0KPj4gKwo+ PiArwqDCoMKgIGFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldiwgJmFkZXYtPmlycS5paF9zb2Z0KTsK Pj4gK8KgwqDCoCBhbWRncHVfaWhfcmluZ19maW5pKGFkZXYsICZhZGV2LT5pcnEuaWgpOwo+PiAr wqDCoMKgIGFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldiwgJmFkZXYtPmlycS5paDEpOwo+PiArwqDC oMKgIGFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldiwgJmFkZXYtPmlycS5paDIpOwo+PiDCoCB9Cj4+ IMKgIMKgIC8qKgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lr X2loLmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtfaWguYwo+PiBpbmRleCAx ODNkNDRhNjU4M2MuLmRmMzg1ZmZjOTc2OCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvY2lrX2loLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Y2lrX2loLmMKPj4gQEAgLTMxMCw3ICszMTAsNiBAQCBzdGF0aWMgaW50IGNpa19paF9zd19maW5p KHZvaWQgKmhhbmRsZSkKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9 IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKPj4gwqAgwqDCoMKgwqDCoCBhbWRncHVf aXJxX2Zpbmlfc3coYWRldik7Cj4+IC3CoMKgwqAgYW1kZ3B1X2loX3JpbmdfZmluaShhZGV2LCAm YWRldi0+aXJxLmloKTsKPj4gwqDCoMKgwqDCoCBhbWRncHVfaXJxX3JlbW92ZV9kb21haW4oYWRl dik7Cj4+IMKgIMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9jel9paC5jCj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Y3pfaWguYwo+PiBpbmRleCBkMzI3NDM5NDkwMDMuLmI4YzQ3ZTBjZjM3YSAxMDA2NDQKPj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY3pfaWguYwo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9jel9paC5jCj4+IEBAIC0zMDIsNyArMzAyLDYgQEAgc3RhdGljIGlu dCBjel9paF9zd19maW5pKHZvaWQgKmhhbmRsZSkKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKPj4gwqAgwqDC oMKgwqDCoCBhbWRncHVfaXJxX2Zpbmlfc3coYWRldik7Cj4+IC3CoMKgwqAgYW1kZ3B1X2loX3Jp bmdfZmluaShhZGV2LCAmYWRldi0+aXJxLmloKTsKPj4gwqDCoMKgwqDCoCBhbWRncHVfaXJxX3Jl bW92ZV9kb21haW4oYWRldik7Cj4+IMKgIMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjEwXzAuYwo+PiBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2dtY192MTBfMC5jCj4+IGluZGV4IDJiZmQ2MjA1NzZmMi4uNWU4 YmZjZGQ0MjJlIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNf djEwXzAuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjEwXzAuYwo+ PiBAQCAtOTU0LDcgKzk1NCw2IEBAIHN0YXRpYyBpbnQgZ21jX3YxMF8wX3N3X2luaXQodm9pZCAq aGFuZGxlKQo+PiDCoCBzdGF0aWMgdm9pZCBnbWNfdjEwXzBfZ2FydF9maW5pKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KQo+PiDCoCB7Cj4+IMKgwqDCoMKgwqAgYW1kZ3B1X2dhcnRfdGFibGVf dnJhbV9mcmVlKGFkZXYpOwo+PiAtwqDCoMKgIGFtZGdwdV9nYXJ0X2ZpbmkoYWRldik7Cj4+IMKg IH0KPj4gwqAgwqAgc3RhdGljIGludCBnbWNfdjEwXzBfc3dfZmluaSh2b2lkICpoYW5kbGUpCj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5jCj4+IGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAuYwo+PiBpbmRleCA0MDVkNmFkMDkw MjIuLjBlODFlMDNlOWI0OSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZ21jX3Y2XzAuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZf MC5jCj4+IEBAIC04OTgsNyArODk4LDYgQEAgc3RhdGljIGludCBnbWNfdjZfMF9zd19maW5pKHZv aWQgKmhhbmRsZSkKPj4gwqDCoMKgwqDCoCBhbWRncHVfdm1fbWFuYWdlcl9maW5pKGFkZXYpOwo+ PiDCoMKgwqDCoMKgIGFtZGdwdV9nYXJ0X3RhYmxlX3ZyYW1fZnJlZShhZGV2KTsKPj4gwqDCoMKg wqDCoCBhbWRncHVfYm9fZmluaShhZGV2KTsKPj4gLcKgwqDCoCBhbWRncHVfZ2FydF9maW5pKGFk ZXYpOwo+PiDCoMKgwqDCoMKgIHJlbGVhc2VfZmlybXdhcmUoYWRldi0+Z21jLmZ3KTsKPj4gwqDC oMKgwqDCoCBhZGV2LT5nbWMuZncgPSBOVUxMOwo+PiDCoCBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2dtY192N18wLmMKPj4gaW5kZXggMjEwYWRhMjI4OWVjLi4wNzk1ZWE3MzY1NzMgMTAwNjQ0 Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMKPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYwo+PiBAQCAtMTA4NSw3ICsxMDg1 LDYgQEAgc3RhdGljIGludCBnbWNfdjdfMF9zd19maW5pKHZvaWQgKmhhbmRsZSkKPj4gwqDCoMKg wqDCoCBrZnJlZShhZGV2LT5nbWMudm1fZmF1bHRfaW5mbyk7Cj4+IMKgwqDCoMKgwqAgYW1kZ3B1 X2dhcnRfdGFibGVfdnJhbV9mcmVlKGFkZXYpOwo+PiDCoMKgwqDCoMKgIGFtZGdwdV9ib19maW5p KGFkZXYpOwo+PiAtwqDCoMKgIGFtZGdwdV9nYXJ0X2ZpbmkoYWRldik7Cj4+IMKgwqDCoMKgwqAg cmVsZWFzZV9maXJtd2FyZShhZGV2LT5nbWMuZncpOwo+PiDCoMKgwqDCoMKgIGFkZXYtPmdtYy5m dyA9IE5VTEw7Cj4+IMKgIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9n bWNfdjhfMC5jCj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYwo+PiBp bmRleCBjMWJkMTkwODQxZjguLmRiZjJlNTQ3MjA2OSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nbWNfdjhfMC5jCj4+IEBAIC0xMTk0LDcgKzExOTQsNiBAQCBzdGF0aWMgaW50IGdt Y192OF8wX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQo+PiDCoMKgwqDCoMKgIGtmcmVlKGFkZXYtPmdt Yy52bV9mYXVsdF9pbmZvKTsKPj4gwqDCoMKgwqDCoCBhbWRncHVfZ2FydF90YWJsZV92cmFtX2Zy ZWUoYWRldik7Cj4+IMKgwqDCoMKgwqAgYW1kZ3B1X2JvX2ZpbmkoYWRldik7Cj4+IC3CoMKgwqAg YW1kZ3B1X2dhcnRfZmluaShhZGV2KTsKPj4gwqDCoMKgwqDCoCByZWxlYXNlX2Zpcm13YXJlKGFk ZXYtPmdtYy5mdyk7Cj4+IMKgwqDCoMKgwqAgYWRldi0+Z21jLmZ3ID0gTlVMTDsKPj4gwqAgZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmMKPj4gYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jCj4+IGluZGV4IGM4MmQ4MmRhMmM3My4u NWVkMGFkYWUwNWNmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9n bWNfdjlfMC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmMK Pj4gQEAgLTE2MDEsNyArMTYwMSw2IEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfc3dfZmluaSh2b2lk ICpoYW5kbGUpCj4+IMKgwqDCoMKgwqAgYW1kZ3B1X2dhcnRfdGFibGVfdnJhbV9mcmVlKGFkZXYp Owo+PiDCoMKgwqDCoMKgIGFtZGdwdV9ib191bnJlZigmYWRldi0+Z21jLnBkYjBfYm8pOwo+PiDC oMKgwqDCoMKgIGFtZGdwdV9ib19maW5pKGFkZXYpOwo+PiAtwqDCoMKgIGFtZGdwdV9nYXJ0X2Zp bmkoYWRldik7Cj4+IMKgIMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+IMKgIH0KPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2ljZWxhbmRfaWguYwo+PiBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2ljZWxhbmRfaWguYwo+PiBpbmRleCBkYTk2YzYwMTM0NzcuLmRk ZmU0ZWFlZWEwNSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvaWNl bGFuZF9paC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2ljZWxhbmRfaWgu Ywo+PiBAQCAtMzAxLDcgKzMwMSw2IEBAIHN0YXRpYyBpbnQgaWNlbGFuZF9paF9zd19maW5pKHZv aWQgKmhhbmRsZSkKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKPj4gwqAgwqDCoMKgwqDCoCBhbWRncHVfaXJx X2Zpbmlfc3coYWRldik7Cj4+IC3CoMKgwqAgYW1kZ3B1X2loX3JpbmdfZmluaShhZGV2LCAmYWRl di0+aXJxLmloKTsKPj4gwqDCoMKgwqDCoCBhbWRncHVfaXJxX3JlbW92ZV9kb21haW4oYWRldik7 Cj4+IMKgIMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9uYXZpMTBfaWguYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L25hdmkxMF9paC5jCj4+IGluZGV4IDVlZWE0NTUwYjg1Ni4uOTQxZDQ2NGEyYjQ3IDEwMDY0NAo+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYXZpMTBfaWguYwo+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYXZpMTBfaWguYwo+PiBAQCAtNTcwLDEwICs1NzAs NiBAQCBzdGF0aWMgaW50IG5hdmkxMF9paF9zd19maW5pKHZvaWQgKmhhbmRsZSkKPj4gwqDCoMKg wqDCoCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq KWhhbmRsZTsKPj4gwqAgwqDCoMKgwqDCoCBhbWRncHVfaXJxX2Zpbmlfc3coYWRldik7Cj4+IC3C oMKgwqAgYW1kZ3B1X2loX3JpbmdfZmluaShhZGV2LCAmYWRldi0+aXJxLmloX3NvZnQpOwo+PiAt wqDCoMKgIGFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldiwgJmFkZXYtPmlycS5paDIpOwo+PiAtwqDC oMKgIGFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldiwgJmFkZXYtPmlycS5paDEpOwo+PiAtwqDCoMKg IGFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldiwgJmFkZXYtPmlycS5paCk7Cj4+IMKgIMKgwqDCoMKg wqAgcmV0dXJuIDA7Cj4+IMKgIH0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3NpX2loLmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zaV9paC5jCj4+ IGluZGV4IDc1MTMwN2YzMjUyYy4uOWEyNGYxN2E1NzUwIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9zaV9paC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3NpX2loLmMKPj4gQEAgLTE3Niw3ICsxNzYsNiBAQCBzdGF0aWMgaW50IHNpX2loX3N3 X2Zpbmkodm9pZCAqaGFuZGxlKQo+PiDCoMKgwqDCoMKgIHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwo+PiDCoCDCoMKgwqDCoMKgIGFt ZGdwdV9pcnFfZmluaV9zdyhhZGV2KTsKPj4gLcKgwqDCoCBhbWRncHVfaWhfcmluZ19maW5pKGFk ZXYsICZhZGV2LT5pcnEuaWgpOwo+PiDCoCDCoMKgwqDCoMKgIHJldHVybiAwOwo+PiDCoCB9Cj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS90b25nYV9paC5jCj4+IGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdG9uZ2FfaWguYwo+PiBpbmRleCA5NzNkODBlYzdm NmMuLmIwODkwNWQxYzAwZiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvdG9uZ2FfaWguYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS90b25nYV9p aC5jCj4+IEBAIC0zMTMsNyArMzEzLDYgQEAgc3RhdGljIGludCB0b25nYV9paF9zd19maW5pKHZv aWQgKmhhbmRsZSkKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKPj4gwqAgwqDCoMKgwqDCoCBhbWRncHVfaXJx X2Zpbmlfc3coYWRldik7Cj4+IC3CoMKgwqAgYW1kZ3B1X2loX3JpbmdfZmluaShhZGV2LCAmYWRl di0+aXJxLmloKTsKPj4gwqDCoMKgwqDCoCBhbWRncHVfaXJxX3JlbW92ZV9kb21haW4oYWRldik7 Cj4+IMKgIMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS92ZWdhMTBfaWguYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L3ZlZ2ExMF9paC5jCj4+IGluZGV4IGRlYWQ5YzJmYmQ0Yy4uMzJlYzRiOGU4MDZhIDEwMDY0NAo+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92ZWdhMTBfaWguYwo+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92ZWdhMTBfaWguYwo+PiBAQCAtNTE0LDEwICs1MTQs NiBAQCBzdGF0aWMgaW50IHZlZ2ExMF9paF9zd19maW5pKHZvaWQgKmhhbmRsZSkKPj4gwqDCoMKg wqDCoCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq KWhhbmRsZTsKPj4gwqAgwqDCoMKgwqDCoCBhbWRncHVfaXJxX2Zpbmlfc3coYWRldik7Cj4+IC3C oMKgwqAgYW1kZ3B1X2loX3JpbmdfZmluaShhZGV2LCAmYWRldi0+aXJxLmloX3NvZnQpOwo+PiAt wqDCoMKgIGFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldiwgJmFkZXYtPmlycS5paDIpOwo+PiAtwqDC oMKgIGFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldiwgJmFkZXYtPmlycS5paDEpOwo+PiAtwqDCoMKg IGFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldiwgJmFkZXYtPmlycS5paCk7Cj4+IMKgIMKgwqDCoMKg wqAgcmV0dXJuIDA7Cj4+IMKgIH0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3ZlZ2EyMF9paC5jCj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmVnYTIw X2loLmMKPj4gaW5kZXggNTg5OTNhZTFmZTExLi5mNTFkZmMzOGFjNjUgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZlZ2EyMF9paC5jCj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L3ZlZ2EyMF9paC5jCj4+IEBAIC01NjYsMTAgKzU2Niw2IEBAIHN0 YXRpYyBpbnQgdmVnYTIwX2loX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQo+PiDCoMKgwqDCoMKgIHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxl Owo+PiDCoCDCoMKgwqDCoMKgIGFtZGdwdV9pcnFfZmluaV9zdyhhZGV2KTsKPj4gLcKgwqDCoCBh bWRncHVfaWhfcmluZ19maW5pKGFkZXYsICZhZGV2LT5pcnEuaWhfc29mdCk7Cj4+IC3CoMKgwqAg YW1kZ3B1X2loX3JpbmdfZmluaShhZGV2LCAmYWRldi0+aXJxLmloMik7Cj4+IC3CoMKgwqAgYW1k Z3B1X2loX3JpbmdfZmluaShhZGV2LCAmYWRldi0+aXJxLmloMSk7Cj4+IC3CoMKgwqAgYW1kZ3B1 X2loX3JpbmdfZmluaShhZGV2LCAmYWRldi0+aXJxLmloKTsKPj4gwqAgwqDCoMKgwqDCoCByZXR1 cm4gMDsKPj4gwqAgfQo+PgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK