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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 76B25CD4F3D for ; Fri, 22 May 2026 08:08:58 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C849010E199; Fri, 22 May 2026 08:08:57 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.b="PCT/EjH+"; dkim-atps=neutral Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010064.outbound.protection.outlook.com [52.101.201.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7149710E02C; Fri, 22 May 2026 08:08:56 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oFZe2hzLoBaN0jNaMRMnABuzyMmwfo5Wptev15gGj1PgfcxeqDpXXAs0PceIDCVMerhCC+kb2Kov+aSSHRjB48hZgbz6rgdji/Q3KRSDpUWSNnymWzl8UQKKFn3ZzDXUYyIhjsov8jaltXolS6O7kyK8fem3cJmZ6IYk5d3a+CTINJvyKPOnrM4xUuAJMX7NuIq+80gNU1tLkQdnKHj+5vcDMr0VW5gvGdGjoYqhd1mPDtFKztXhab7edXE4nWKRKtM77kSO7dG6uwNHfKoe68YI/tZwlNPJAMy63GYzxEauBwqMqTuyBsao+0aZp/rgZT9k0hKqOPy/o7BEkAtzRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PK+nwwrpwnmp6whvIkoctKmXDToHcmbrG4oaYV8yGLQ=; b=SqgyLDpArUT82+oZxZnToOlp/iBD2s8dhQfzWZyDdaEMXW5XGV5ibJ75d1K7D/F1ECwhONhNHTelmK0407M8eCdzT9Ng8uODIx8Vc+zprOair3NuvcKTaemNud5rJsa+0ZN1/V8MPExlorOktfTSpgUZOHvKoIXhaWEYP4ovTrP3+BCrxLIJKRTfVt6Y2ml+ENL1k58SfMvEFB/2Xc2qVLGH2tgD9APKbpJbElFhnaNe41XT1ZZ/1NoKwa1GFe3t5NoMM5wRtDuhomqUYl5pLNXMgRFxt+t3+eNRBX+oN0VYBL6AGYbvvC5iAMH54MOX5wgkUmh6K0U45gHxgP8Caw== 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=PK+nwwrpwnmp6whvIkoctKmXDToHcmbrG4oaYV8yGLQ=; b=PCT/EjH+Aq0kQboMwkreaV6Y0fw22/b0tktGgNoO42nBto18O4IiNSF4BbA7t+sZRxWuVGvXfCtakj7O/seOnjs1NEnF3hUa/xJyjHEeK9s9xgwypnwwFiWw73/3PkBZwCOmrjK+3aX7n+/6YL7SylFE3AU9wA94uwdSGOu82+k= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) by MW4PR12MB7214.namprd12.prod.outlook.com (2603:10b6:303:229::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.16; Fri, 22 May 2026 08:08:45 +0000 Received: from PH7PR12MB5685.namprd12.prod.outlook.com ([fe80::ce69:cfae:774d:a65c]) by PH7PR12MB5685.namprd12.prod.outlook.com ([fe80::ce69:cfae:774d:a65c%5]) with mapi id 15.21.0025.022; Fri, 22 May 2026 08:08:45 +0000 Message-ID: <55aee3e4-9003-4694-b0fa-277a8c2bbbc4@amd.com> Date: Fri, 22 May 2026 10:08:40 +0200 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v5 2/2] drm/amdgpu: fix recursive ww_mutex acquire in amdgpu_devcoredump_format To: Mikhail Gavrilov , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: Alex Deucher , David Airlie , Simona Vetter , Pierre-Eric Pelloux-Prayer , Sumit Semwal , linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org References: <20260521104335.28978-1-mikhail.v.gavrilov@gmail.com> <20260521150841.20625-1-mikhail.v.gavrilov@gmail.com> <20260521150841.20625-3-mikhail.v.gavrilov@gmail.com> Content-Language: en-US From: =?UTF-8?Q?Christian_K=C3=B6nig?= In-Reply-To: <20260521150841.20625-3-mikhail.v.gavrilov@gmail.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-ClientProxiedBy: FR4P281CA0381.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f7::9) To PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR12MB5685:EE_|MW4PR12MB7214:EE_ X-MS-Office365-Filtering-Correlation-Id: 275d3b5b-6a23-4a89-5cf1-08deb7d9585d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|366016|1800799024|3023799007|22082099003|18002099003|56012099003|11063799006|4143699003|6133799003; X-Microsoft-Antispam-Message-Info: +jvkC5kI4mBLPRUWdcYQE19yCVx7sQxZFdzf5sVjHo5GTko4NZv6AdYpnyeeJam9P/cVt7GrsiCH/VcYYE8dLINihSsuKTLiE57/HrsngHAGz/T0PiId0//ht/0v1+VVV3+3DspoPYvdGBaKjaKD1qWJbPpzdbQ3ic6FE7tWX0KOidq6QQbK9gNoKfIrPSl3XeSkJyZYJg4DW8ppO+TA8v48gPtq/jwgzWaOiaebRbXxVn3kBt9X4EIW2jDP3Fu3mPDPnb0pWNdoTWe+lxM7RMtjXy2LkPqqwwxVY+cHAmLvLtY7HOxCMO05vpY+FSrL6FQNdyqB5EgwB2QabFJNOYHTt2N7Alje4yH+DFvxPgvZJoRkHyh8O6zB/bebuMCt6x3RfpaEKv7MNmvt0To8DPDdwMJztTIu1wNfZw0SLw1aAiYN46vo4n3MeBdXZ4+JJlsnJKcGqO9pcoofcQgBANccM94BtzTHD3nOwq2bJ4AcvmLy87WR8KNOB4VhjxGUv9F2Rz6XNamB++Kkqbj2coSHxiSZ34SQk6EVzMnS2vDGPocZPH/kjBTjxXv9Yn2e24XEQRGgbXy5ScRQGAWZnq1yg1QesBHkmf0XNV5SkeP2jIvasLzdI74nxO6ThTFIMjpZ8rWM1zkhmWs24eUf489krfmulx86qxSQe5vyPSTBw5daJS7ThxxMogflm3eI X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR12MB5685.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(366016)(1800799024)(3023799007)(22082099003)(18002099003)(56012099003)(11063799006)(4143699003)(6133799003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TlRST29VbkdqQlh6bjVubXo2NFhCK29XcDRhNU5qTGVyR1ZaTlhYQzdhSXpD?= =?utf-8?B?RlZVVXRuSmYra05TY3FqUHgrdGY4L2RsbDJWa1hSRnNXTGw2RTdSR3B3QWlx?= =?utf-8?B?NUFqeW5aZnRwME1ELzBlRW1kQlVtQ2tNaUtyZGV3UFNGS1VVK1g4a3R5N2tE?= =?utf-8?B?bXh6Q1hOYllCamI5Z2p4Y2xPVVJBRDJ2VUR5SmVDYmEzZU4vN0ZjWGxaWmZl?= =?utf-8?B?WU1wSXJuRFRhTDRuKzVwYmc2YjZKdGI4VEh4VlJRa09hYjRHU291REZaMXBU?= =?utf-8?B?cGdncUpTZkQ2T014ZVJZWThycU5tR0tqYUJNbHJ4d2tSV1lKMnBiT2c4UWV2?= =?utf-8?B?OHpHWWNaQ01kT1I4ZTh6cXU1YUdzdUxMckxhVVN2anV4cHVLUW40QWdqR2F4?= =?utf-8?B?dXVSd2YxOGRnVlhqUElGN01pQ3ExbFZlb3R4TDVoTU04ZUpmcjJGekRzai9S?= =?utf-8?B?YW9GYmNuaW9ueXFmeTl2MzhMb0pEK3FuVDM1QUFGOGpRMUt4TCt3eVRmYUhR?= =?utf-8?B?bVZBYVdibG1RUDNtQmlIVDdHcUN4TWFEMm5kTnFQRzZ2dHFJczlleW5Vd3ZN?= =?utf-8?B?andIeHJSa3pNSk94cXlJSDNPemNoV2hFR3dKMVdoaFlHRVdqQUFObVBjQVR6?= =?utf-8?B?WWVMVXFYMVo1V0ZLV1g0QzBoMjhZWDFYTXhrWml3R0dZU3g4amt1T0RUQTQy?= =?utf-8?B?UGtBM1RRZkwvTHVlOEV6c0xrMXNSNlE3aU9abzNTTktnZmNxTVFvMlJ1R1BX?= =?utf-8?B?QThIZmpmMXBUVG91NkQyeDA3MEtwa1lBWGUwOHlCMm9jZ0ZYR1o4L3ZZTWpm?= =?utf-8?B?bG9kbHhlRUtkNUlVZE5YcFRlZjJkRFdSRFFLdHY2a3dKdzhZSHBDNEYvZGZJ?= =?utf-8?B?K283bFBLV2o5Y1FvSldBb2lFUHFjVmxjMThmSjRlN3dITXRydzMyQ1lGNmhn?= =?utf-8?B?eElPbnZ4Z0JhaGNXL081UTU5M2QyRGd0V2M1SFRYbFJoKy9NdmFEQ1UrQzlq?= =?utf-8?B?YnI1OHl6dWRSV1kwVzM2N0NtcjNXVlAyZzRrU2h3N3VTTmQrWDVpNDVxRWVF?= =?utf-8?B?aVhXMTM5ZkxJZWhtRXhVOUZwR1JBZnJaSVJNeXkrMlJ0S0xCZWFzcHlmNi9z?= =?utf-8?B?T0IzOStIUXFicmNBS1dsQ2s1bkpYQ2p2Wjh2RXlNVlFwZG84SGppTC9rMkRn?= =?utf-8?B?QmZ0WFlwcENZaGgzRmtSOWRCdFNkR3ZCTTNQQ0xIdm1GTzlSam5TUkpnV3FM?= =?utf-8?B?d2xvSVhhYXgwcFIvM25rMXc3cHRkTWlySGRKcWUzVVZoVzh2SVdCaWZCbXVo?= =?utf-8?B?NEh6a0wwTDZlK2F6S0Rad1JHRko2RzhHc0w1RlVXZ0YvZFg5aVlaaCt1M2di?= =?utf-8?B?a0lBM0hQS1ZnaU5hTnhIdC9Ra2ZpOElVMHROeXZ2K3dvOHVyS0JiaHdJMnNx?= =?utf-8?B?aG1Zc3dQWmFxcUh2YWM5UTN1eXBGYUwyVkoxaDJzZ2ZXUGd4QjFoRmR4NWIr?= =?utf-8?B?VnRnaEFwMTE0RGdTTDJJMW9pNURNaXVuQVo1ZzNHUUdQdkpGS0k2M3QzYU1t?= =?utf-8?B?NG0xUnJSMmYrNEdFSFBiRHhtalBNRExFb0ZRNWVWdWVJMVFaZGdKUnI2MVlV?= =?utf-8?B?aDBWWko1WE96WHdKakZkRHBZM2V1dTUvL0NvdXZrRmRDUEEveXJLSjRxZHZj?= =?utf-8?B?SGFmcm5aTWlTUzk3V1pKRE40VEV4Rnlxc3lmMVg4NHJ3Q1JzOHVTZHpQZ2dS?= =?utf-8?B?NklNazluYi96SXVUQUgvcXM5ZzAvRjNVN0J4Z1NMemRBWkNPMXdVckZ3eVZk?= =?utf-8?B?NHU1c2wxczV4aUNXOEdHaStxTWZZMmhtQ1F2NUp4aGxPbkh3SmlkTm1Zd09V?= =?utf-8?B?MGZKZkswNWY0SVcrOFMzRkxsRTFlZmN2YW1ma3N4djVrOEpUbDhZOUFaaDZF?= =?utf-8?B?ZU9HbHc0TVhVUWZvRnZObUduei9RakdXUTcyWGtoV3VqUW1TQTlid242cUkr?= =?utf-8?B?d2F0SDA1cHZybUtDdTVyQ01mNkNIeWZ5MU0rTWpmcno0aWovK2dRSE9STDhT?= =?utf-8?B?b21uQzJDN0hJQUlFbW02WExJQUY4enlHOGU3ZUppTUZNdnp1aXNXOXhaR2p1?= =?utf-8?B?NG9ZbkZLaG9KblRJTmxRSW1IQjJEM0VoMGFsbWxTL2VTeDBxYklKSHFuMlcx?= =?utf-8?B?SXRuMmJhTjJsdkV6bmczZVZuYmtkOUVpbjNWZjJTNUtvK2E0UXNQeEJhUmRC?= =?utf-8?B?UkdOMVVzSFg5LzlteVJpMWZCRUIvZzVGNFY0cFBValhXL2laQ1dEc2c3SHg5?= =?utf-8?Q?x/j/UZnC0zsIELjSnz?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 275d3b5b-6a23-4a89-5cf1-08deb7d9585d X-MS-Exchange-CrossTenant-AuthSource: PH7PR12MB5685.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 08:08:45.3038 (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: +FzHmsVXpcGCJ9jgJzgfTMT5JD1w/AzndLwhD+6W3XlTEVS3dNxU20F+VH/qS8Yv X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7214 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" T24gNS8yMS8yNiAxNzowOCwgTWlraGFpbCBHYXZyaWxvdiB3cm90ZToKPiBXaGVuIGR1bXBpbmcg SUIgY29udGVudHMgZnJvbSBhIGh1bmcgam9iLCBhbWRncHVfZGV2Y29yZWR1bXBfZm9ybWF0KCkK PiBhY3F1aXJlZCB0aGUgVk0gcm9vdCBQRCdzIHJlc2VydmF0aW9uIHZpYSBhbWRncHVfdm1fbG9j a19ieV9wYXNpZCgpIGFuZAo+IHRoZW4sIGZvciBlYWNoIElCLCBjYWxsZWQgYW1kZ3B1X2JvX3Jl c2VydmUoKSBvbiB0aGUgQk8gYmFja2luZyB0aGUgSUIuCj4gQm90aCByZXNlcnZhdGlvbnMgYXJl IHJlc2VydmF0aW9uX3d3X2NsYXNzX211dGV4IG9iamVjdHMgYW5kIG5laXRoZXIKPiB1c2VkIGEg d3dfYWNxdWlyZV9jdHgsIHdoaWNoIHRyaXBzIGxvY2tkZXA6Cj4gCj4gICBXQVJOSU5HOiBwb3Nz aWJsZSByZWN1cnNpdmUgbG9ja2luZyBkZXRlY3RlZAo+ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIGt3b3JrZXIvdTEyODowIGlzIHRyeWluZyB0byBh Y3F1aXJlIGxvY2s6Cj4gICBmZmZmODg4MzhiMTZlMWYwIChyZXNlcnZhdGlvbl93d19jbGFzc19t dXRleCl7Ky4rLn0tezQ6NH0sCj4gICAgIGF0OiBhbWRncHVfZGV2Y29yZWR1bXBfZm9ybWF0KzB4 MTU5NC8weDIzZjAgW2FtZGdwdV0KPiAKPiAgIGJ1dCB0YXNrIGlzIGFscmVhZHkgaG9sZGluZyBs b2NrOgo+ICAgZmZmZjg4ODJmODI2ODFmMCAocmVzZXJ2YXRpb25fd3dfY2xhc3NfbXV0ZXgpeysu Ky59LXs0OjR9LAo+ICAgICBhdDogYW1kZ3B1X2RldmNvcmVkdW1wX2Zvcm1hdCsweDE1OTQvMHgy M2YwIFthbWRncHVdCj4gCj4gICAgUG9zc2libGUgdW5zYWZlIGxvY2tpbmcgc2NlbmFyaW86Cj4g ICAgICAgICAgQ1BVMAo+ICAgICAgICAgIC0tLS0KPiAgICAgbG9jayhyZXNlcnZhdGlvbl93d19j bGFzc19tdXRleCk7Cj4gICAgIGxvY2socmVzZXJ2YXRpb25fd3dfY2xhc3NfbXV0ZXgpOwo+IAo+ ICAgICoqKiBERUFETE9DSyAqKioKPiAgICBNYXkgYmUgZHVlIHRvIG1pc3NpbmcgbG9jayBuZXN0 aW5nIG5vdGF0aW9uCj4gCj4gICBXb3JrcXVldWU6IGV2ZW50c191bmJvdW5kIGFtZGdwdV9kZXZj b3JlZHVtcF9kZWZlcnJlZF93b3JrIFthbWRncHVdCj4gICBDYWxsIFRyYWNlOgo+ICAgIF9fd3df bXV0ZXhfbG9jay5jb25zdHByb3AuMAo+ICAgIHd3X211dGV4X2xvY2sKPiAgICBhbWRncHVfYm9f cmVzZXJ2ZQo+ICAgIGFtZGdwdV9kZXZjb3JlZHVtcF9mb3JtYXQrMHgxNTk0IFthbWRncHVdCj4g ICAgYW1kZ3B1X2RldmNvcmVkdW1wX2RlZmVycmVkX3dvcmsrMHhlYSBbYW1kZ3B1XQo+IAo+IFRo ZSB0d28gcmVzZXJ2YXRpb25zIGFyZSBvbiBkaWZmZXJlbnQgQk9zIGluIHRoZSBjYXB0dXJlZCB0 cmFjZSwgc28gdGhlCj4gc3BsYXQgaXMgYSBsb2NrZGVwLWNvcnJlY3RuZXNzIHdhcm5pbmcsIG5v dCBhbiBvYnNlcnZlZCBkZWFkbG9jay4gSXQKPiBiZWNvbWVzIGEgcmVhbCBzZWxmLWRlYWRsb2Nr IHdoZW5ldmVyIHRoZSBJQiBCTyBzaGFyZXMgaXRzIGRtYV9yZXN2IHdpdGgKPiB0aGUgcm9vdCBQ RCAodGhlIGFsd2F5cy12YWxpZCBjYXNlLCBzZWUgYW1kZ3B1X3ZtX2lzX2JvX2Fsd2F5c192YWxp ZCgpKToKPiBhbWRncHVfYm9fcmVzZXJ2ZShhYm8pIHJlLWFjcXVpcmVzIHRoZSBzYW1lIHd3X211 dGV4IHdpdGhvdXQgYSB0aWNrZXQKPiBhbmQgYmxvY2tzIGZvcmV2ZXIuCj4gCj4gV2l0aCBhbWRn cHUuZ3B1X3JlY292ZXJ5PTAgdGhlIHRpbWVvdXQgaGFuZGxlciByZWZpcmVzIGV2ZXJ5IH4yIHMg YW5kCj4gZWFjaCBpbnZvY2F0aW9uIHByb2R1Y2VzIHRoaXMgc3BsYXQsIGRyb3duaW5nIHRoZSBr ZXJuZWwgcmluZyBidWZmZXIuCj4gCj4gTm93IHRoYXQgYW1kZ3B1X3ZtX2xvY2tfYnlfcGFzaWQo KSB0YWtlcyBhIGRybV9leGVjIGNvbnRleHQsIGxvY2sgdGhlCj4gcm9vdCBQRCBhbmQgZXZlcnkg SUIgQk8gdG9nZXRoZXIgaW4gYSBzaW5nbGUgZHJtX2V4ZWMgdGlja2V0Lgo+IERSTV9FWEVDX0lH Tk9SRV9EVVBMSUNBVEVTIGhhbmRsZXMgSUIgQk9zIHRoYXQgc2hhcmUgYSBkbWFfcmVzdiAoZS5n Lgo+IGFsd2F5cy12YWxpZCBCT3MsIG9yIHR3byBJQnMgYmFja2VkIGJ5IHRoZSBzYW1lIEJPKS4g RXZlcnkgbG9jayBpcyBub3cKPiBhIHRvcC1sZXZlbCBhY3F1aXJlIHVuZGVyIG9uZSB3d19hY3F1 aXJlX2N0eCwgc28gdGhlIHJlY3Vyc2l2ZSB3d19tdXRleAo+IGNvbmRpdGlvbiBpcyBnb25lLCBh bmQgdGhlIHBlci1JQiBhbWRncHVfYm9fcmVzZXJ2ZSgpL2FtZGdwdV9ib191bnJlZigpCj4gZGFu Y2UgLS0gaW5jbHVkaW5nIGEgQk8gcmVmY291bnQgbGVhayBvbiB0aGUgYW1kZ3B1X2JvX3Jlc2Vy dmUoKSBmYWlsdXJlCj4gcGF0aCAtLSBpcyByZW1vdmVkLgo+IAo+IFJlcHJvZHVjZXIgKH4xNTAg TG9DIGxpYmRybV9hbWRncHUpOiBzdWJtaXQgYSBzaW5nbGUgR0ZYIElCIGNvbnRhaW5pbmcKPiBQ QUNLRVQzX0lORElSRUNUX0JVRkZFUiBjaGFpbmVkIGF0IEdQVSBWQSAwIGFuZCB3YWl0IGZvciB0 aGUgZmVuY2UuIFRoZQo+IFREUiBmaXJlcyB3aXRoaW4gfjEwIHMgYW5kIHRoZSBkZWZlcnJlZCBj b3JlZHVtcCB3b3JrZXIgcHJvZHVjZXMgdGhlCj4gc3BsYXQgYWJvdmUgb24gZXZlcnkgaW52b2Nh dGlvbjsgd2l0aCB0aGlzIGNoYW5nZSBhcHBsaWVkIHRoZSBzcGxhdCBpcwo+IGdvbmUuCgpUaGF0 IGNvbW1pdCBtZXNzYWdlIGlzIGEgYml0IHRvIGxvbmcuIEl0IHNob3VsZCBkZXNjcmliZSB0aGUg cHJvYmxlbSBhbmQgdGhlIHNvbHV0aW9uIGFuZCBub3QgbmVjZXNzYXJ5IGhvdyB0byByZXByb2R1 Y2UgaXQuCgo+IAo+IEZpeGVzOiA3YjE1ZmMyZDFmMWEgKCJkcm0vYW1kZ3B1OiBkdW1wIGpvYiBp YnMgaW4gdGhlIGRldmNvcmVkdW1wIikKPiBTdWdnZXN0ZWQtYnk6IENocmlzdGlhbiBLw7ZuaWcg PGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBNaWtoYWlsIEdhdnJp bG92IDxtaWtoYWlsLnYuZ2F2cmlsb3ZAZ21haWwuY29tPgo+IC0tLQo+ICAuLi4vZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9kZXZfY29yZWR1bXAuYyAgfCAxMDUgKysrKysrKysrKysrLS0tLS0t Cj4gIDEgZmlsZSBjaGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rldl9jb3Jl ZHVtcC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rldl9jb3JlZHVtcC5j Cj4gaW5kZXggZDM4NmJjNzc1ZDAzLi40NTZlYTk5MTFkNDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rldl9jb3JlZHVtcC5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rldl9jb3JlZHVtcC5jCj4gQEAgLTI0LDYgKzI0 LDcgQEAKPiAgCj4gICNpbmNsdWRlIDxnZW5lcmF0ZWQvdXRzcmVsZWFzZS5oPgo+ICAjaW5jbHVk ZSA8bGludXgvZGV2Y29yZWR1bXAuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fZXhlYy5oPgo+ICAj aW5jbHVkZSAiYW1kZ3B1X2Rldl9jb3JlZHVtcC5oIgo+ICAjaW5jbHVkZSAiYXRvbS5oIgo+ICAK PiBAQCAtMjE0LDEzICsyMTUsOSBAQCBhbWRncHVfZGV2Y29yZWR1bXBfZm9ybWF0KGNoYXIgKmJ1 ZmZlciwgc2l6ZV90IGNvdW50LCBzdHJ1Y3QgYW1kZ3B1X2NvcmVkdW1wX2luZgo+ICAJc3RydWN0 IGRybV9wcmludGVyIHA7Cj4gIAlzdHJ1Y3QgZHJtX3ByaW50X2l0ZXJhdG9yIGl0ZXI7Cj4gIAlz dHJ1Y3QgYW1kZ3B1X3ZtX2ZhdWx0X2luZm8gKmZhdWx0X2luZm87Cj4gLQlzdHJ1Y3QgYW1kZ3B1 X2JvX3ZhX21hcHBpbmcgKm1hcHBpbmc7Cj4gIAlzdHJ1Y3QgYW1kZ3B1X2lwX2Jsb2NrICppcF9i bG9jazsKPiAgCXN0cnVjdCBhbWRncHVfcmVzX2N1cnNvciBjdXJzb3I7Cj4gLQlzdHJ1Y3QgYW1k Z3B1X2JvICphYm8sICpyb290Owo+IC0JdWludDY0X3QgdmFfc3RhcnQsIG9mZnNldDsKPiAgCXN0 cnVjdCBhbWRncHVfcmluZyAqcmluZzsKPiAtCXN0cnVjdCBhbWRncHVfdm0gKnZtOwo+ICAJdTMy ICppYl9jb250ZW50Owo+ICAJdWludDhfdCAqa3B0cjsKPiAgCWludCB2ZXIsIGksIGosIHI7Cj4g QEAgLTM0Myw0MyArMzQwLDg0IEBAIGFtZGdwdV9kZXZjb3JlZHVtcF9mb3JtYXQoY2hhciAqYnVm ZmVyLCBzaXplX3QgY291bnQsIHN0cnVjdCBhbWRncHVfY29yZWR1bXBfaW5mCj4gIAkJZHJtX3By aW50ZigmcCwgIlZSQU0gaXMgbG9zdCBkdWUgdG8gR1BVIHJlc2V0IVxuIik7Cj4gIAo+ICAJaWYg KGNvcmVkdW1wLT5udW1faWJzKSB7Cj4gLQkJLyogRG9uJ3QgdHJ5IHRvIGxvb2t1cCB0aGUgVk0g b3IgbWFwIHRoZSBCT3Mgd2hlbiBjYWxjdWxhdGluZyB0aGUKPiAtCQkgKiBzaXplIHJlcXVpcmVk IHRvIHN0b3JlIHRoZSBkZXZjb3JlZHVtcC4KPiArCQlzdHJ1Y3QgYW1kZ3B1X2JvX3ZhX21hcHBp bmcgKm1hcHBpbmc7Cj4gKwkJc3RydWN0IGFtZGdwdV9ibyAqYWJvOwo+ICsJCXN0cnVjdCBkcm1f ZXhlYyBleGVjOwo+ICsJCXN0cnVjdCBhbWRncHVfdm0gKnZtOwo+ICsJCXU2NCB2YV9zdGFydCwg b2Zmc2V0OwoKSXQncyBwcm9iYWJseSBhIGdvb2QgaWRlYSB0byBwdXQgdGhlIElCIGR1bXBpbmcg aW50byBhIHNlcGFyYXRlIGZ1bmN0aW9uLgoKPiArCQlib29sIGxvY2tlZCA9IGZhbHNlOwoKRHJv cCB0aGF0IHZhcmlhYmxlIGFuZCBoYW5kbGluZywgaXQgaXMgc3VwZXJmbG91cy4KCj4gKwo+ICsJ CS8qCj4gKwkJICogTG9jayB0aGUgVk0gcm9vdCBQRCBhbmQgZXZlcnkgSUIgQk8gdG9nZXRoZXIg aW4gYSBzaW5nbGUKPiArCQkgKiBkcm1fZXhlYyB0aWNrZXQuIFJlc2VydmluZyB0aGUgSUIgQk9z IG9uZSBieSBvbmUgd2hpbGUgdGhlCj4gKwkJICogcm9vdCBQRCBpcyBoZWxkIHdvdWxkIGJlIGEg cmVjdXJzaXZlIHJlc2VydmF0aW9uX3d3X2NsYXNzX211dGV4Cj4gKwkJICogYWNxdWlyZSB3aXRo b3V0IGEgd3dfYWNxdWlyZV9jdHgsIHdoaWNoIHRyaXBzIGxvY2tkZXAgYW5kCj4gKwkJICogc2Vs Zi1kZWFkbG9ja3MgZm9yIElCIEJPcyB0aGF0IHNoYXJlIHRoZWlyIGRtYV9yZXN2IHdpdGggdGhl Cj4gKwkJICogcm9vdCBQRCAoYWx3YXlzLXZhbGlkIEJPcykuCj4gKwkJICoKPiArCQkgKiBTa2lw IGxvY2tpbmcgZW50aXJlbHkgb24gdGhlIHNpemluZyBwYXNzOiBpdCBkb2VzIG5vdCB3cml0ZQo+ ICsJCSAqIElCIGNvbnRlbnQsIHNvIHRoZSBzaXplIGVzdGltYXRlIGRvZXNuJ3QgZGVwZW5kIG9u IHdoZXRoZXIKPiArCQkgKiB0aGUgQk9zIGFyZSByZWFjaGFibGUuCj4gIAkJICovCj4gLQkJaWYg KHNpemluZ19wYXNzKQo+IC0JCQl2bSA9IE5VTEw7Cj4gLQkJZWxzZQo+IC0JCQl2bSA9IGFtZGdw dV92bV9sb2NrX2J5X3Bhc2lkKGFkZXYsICZyb290LCBjb3JlZHVtcC0+cGFzaWQpOwo+ICsJCWlm ICghc2l6aW5nX3Bhc3MpIHsKPiArCQkJZHJtX2V4ZWNfaW5pdCgmZXhlYywgRFJNX0VYRUNfSUdO T1JFX0RVUExJQ0FURVMsCj4gKwkJCQkgICAgICAxICsgY29yZWR1bXAtPm51bV9pYnMpOwo+ICsJ CQlkcm1fZXhlY191bnRpbF9hbGxfbG9ja2VkKCZleGVjKSB7Cj4gKwkJCQl2bSA9IGFtZGdwdV92 bV9sb2NrX2J5X3Bhc2lkKGFkZXYsIGNvcmVkdW1wLT5wYXNpZCwKPiArCQkJCQkJCSAgICAgJmV4 ZWMpOwo+ICsJCQkJZHJtX2V4ZWNfcmV0cnlfb25fY29udGVudGlvbigmZXhlYyk7Cj4gKwkJCQlp ZiAoIXZtKQo+ICsJCQkJCWJyZWFrOwoKVGhpcyBzaG91bGQgdXNlIGdvdG8gZXJyb3IgaGFuZGxp bmcsIHdoZW4gd2UgY2FuJ3QgZmluZCB0aGUgVk0gd2Ugc2hvdWxkIGFib3J0IGhlcmUuCgo+ICsK PiArCQkJCWZvciAoaW50IGkgPSAwOyBpIDwgY29yZWR1bXAtPm51bV9pYnM7IGkrKykgewo+ICsJ CQkJCXU2NCBwZm47Cj4gKwo+ICsJCQkJCXZhX3N0YXJ0ID0gY29yZWR1bXAtPmlic1tpXS5ncHVf YWRkciAmCj4gKwkJCQkJCSAgIEFNREdQVV9HTUNfSE9MRV9NQVNLOwo+ICsJCQkJCXBmbiA9IHZh X3N0YXJ0IC8gQU1ER1BVX0dQVV9QQUdFX1NJWkU7Cj4gKwkJCQkJbWFwcGluZyA9IGFtZGdwdV92 bV9ib19sb29rdXBfbWFwcGluZyh2bSwgcGZuKTsKPiArCQkJCQlpZiAoIW1hcHBpbmcpCj4gKwkJ CQkJCWNvbnRpbnVlOwoKVGhhdCdzIGFsc28gYW4gZXJyb3IsIGl0IGNvdWxkIGJlIHRoYXQgd2Ug anVzdCB3YW50IHRvIHByaW50IHRoZSBJQiBzdGFydCBhZGRyZXNzIGluIHRoYXQgY2FzZS4KCj4g Kwo+ICsJCQkJCWFibyA9IG1hcHBpbmctPmJvX3ZhLT5iYXNlLmJvOwo+ICsJCQkJCXIgPSBkcm1f ZXhlY19sb2NrX29iaigmZXhlYywgJmFiby0+dGJvLmJhc2UpOwo+ICsJCQkJCWRybV9leGVjX3Jl dHJ5X29uX2NvbnRlbnRpb24oJmV4ZWMpOwo+ICsJCQkJCWlmIChyKQo+ICsJCQkJCQlicmVhazsK CkRpdG8gCgo+ICsJCQkJfQo+ICsJCQkJaWYgKHIpCj4gKwkJCQkJYnJlYWs7CgpBbmQgaGVyZSBh cyB3ZWxsLgoKPiArCQkJfQo+ICsJCQlpZiAodm0gJiYgIXIpCj4gKwkJCQlsb2NrZWQgPSB0cnVl Owo+ICsJCQllbHNlCj4gKwkJCQlkcm1fZXhlY19maW5pKCZleGVjKTsKCkRvbid0IGNhbGwgZHJt X2V4ZWNfZmluaSgpIGhlcmUuCgpSZWdhcmRzLApDaHJpc3RpYW4uCgo+ICsJCX0KPiArCj4gKwkJ Zm9yIChpbnQgaSA9IDA7IGkgPCBjb3JlZHVtcC0+bnVtX2liczsgaSsrKSB7Cj4gKwkJCWJvb2wg ZW1pdF9jb250ZW50ID0gc2l6aW5nX3Bhc3M7Cj4gIAo+IC0JCWZvciAoaW50IGkgPSAwOyBpIDwg Y29yZWR1bXAtPm51bV9pYnMgJiYgKHNpemluZ19wYXNzIHx8IHZtKTsgaSsrKSB7Cj4gIAkJCWli X2NvbnRlbnQgPSBrdm1hbGxvY19hcnJheShjb3JlZHVtcC0+aWJzW2ldLmliX3NpemVfZHcsIDQs Cj4gIAkJCQkJCSAgICBHRlBfS0VSTkVMKTsKPiAgCQkJaWYgKCFpYl9jb250ZW50KQo+ICAJCQkJ Y29udGludWU7Cj4gIAo+IC0JCQkvKiB2bT1OVUxMIGNhbiBvbmx5IGhhcHBlbiB3aGVuICdzaXpp bmdfcGFzcycgaXMgdHJ1ZS4gU2tpcCB0byB0aGUKPiAtCQkJICogZHJtX3ByaW50ZigpIGNhbGxz IChpYl9jb250ZW50IGRvZXNuJ3QgbmVlZCB0byBiZSBpbml0aWFsaXplZAo+IC0JCQkgKiBhcyBp dHMgY29udGVudCB3b24ndCBiZSB3cml0dGVuIGFueXdoZXJlKS4KPiAtCQkJICovCj4gLQkJCWlm ICghdm0pCj4gKwkJCWlmICghbG9ja2VkKQo+ICAJCQkJZ290byBvdXRwdXRfaWJfY29udGVudDsK PiAgCj4gIAkJCXZhX3N0YXJ0ID0gY29yZWR1bXAtPmlic1tpXS5ncHVfYWRkciAmIEFNREdQVV9H TUNfSE9MRV9NQVNLOwo+ICAJCQltYXBwaW5nID0gYW1kZ3B1X3ZtX2JvX2xvb2t1cF9tYXBwaW5n KHZtLCB2YV9zdGFydCAvIEFNREdQVV9HUFVfUEFHRV9TSVpFKTsKPiAgCQkJaWYgKCFtYXBwaW5n KQo+IC0JCQkJZ290byBmcmVlX2liX2NvbnRlbnQ7Cj4gKwkJCQlnb3RvIG91dHB1dF9pYl9jb250 ZW50Owo+ICAKPiAtCQkJb2Zmc2V0ID0gdmFfc3RhcnQgLSAobWFwcGluZy0+c3RhcnQgKiBBTURH UFVfR1BVX1BBR0VfU0laRSk7Cj4gLQkJCWFibyA9IGFtZGdwdV9ib19yZWYobWFwcGluZy0+Ym9f dmEtPmJhc2UuYm8pOwo+IC0JCQlyID0gYW1kZ3B1X2JvX3Jlc2VydmUoYWJvLCBmYWxzZSk7Cj4g LQkJCWlmIChyKQo+IC0JCQkJZ290byBmcmVlX2liX2NvbnRlbnQ7Cj4gKwkJCWFibyA9IG1hcHBp bmctPmJvX3ZhLT5iYXNlLmJvOwo+ICsJCQlvZmZzZXQgPSB2YV9zdGFydCAtIG1hcHBpbmctPnN0 YXJ0ICogQU1ER1BVX0dQVV9QQUdFX1NJWkU7Cj4gIAo+ICAJCQlpZiAoYWJvLT5mbGFncyAmIEFN REdQVV9HRU1fQ1JFQVRFX05PX0NQVV9BQ0NFU1MpIHsKPiAgCQkJCW9mZiA9IDA7Cj4gIAo+ICAJ CQkJaWYgKGFiby0+dGJvLnJlc291cmNlLT5tZW1fdHlwZSAhPSBUVE1fUExfVlJBTSkKPiAtCQkJ CQlnb3RvIHVucmVzZXJ2ZV9hYm87Cj4gKwkJCQkJZ290byBvdXRwdXRfaWJfY29udGVudDsKPiAg Cj4gIAkJCQlhbWRncHVfcmVzX2ZpcnN0KGFiby0+dGJvLnJlc291cmNlLCBvZmZzZXQsCj4gIAkJ CQkJCSBjb3JlZHVtcC0+aWJzW2ldLmliX3NpemVfZHcgKiA0LAo+IEBAIC0zOTEsMTIgKzQyOSwx MyBAQCBhbWRncHVfZGV2Y29yZWR1bXBfZm9ybWF0KGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGNvdW50 LCBzdHJ1Y3QgYW1kZ3B1X2NvcmVkdW1wX2luZgo+ICAJCQkJCW9mZiArPSBjdXJzb3Iuc2l6ZTsK PiAgCQkJCQlhbWRncHVfcmVzX25leHQoJmN1cnNvciwgY3Vyc29yLnNpemUpOwo+ICAJCQkJfQo+ ICsJCQkJZW1pdF9jb250ZW50ID0gdHJ1ZTsKPiAgCQkJfSBlbHNlIHsKPiAgCQkJCXIgPSB0dG1f Ym9fa21hcCgmYWJvLT50Ym8sIDAsCj4gIAkJCQkJCVBGTl9VUChhYm8tPnRiby5iYXNlLnNpemUp LAo+ICAJCQkJCQkmYWJvLT5rbWFwKTsKPiAgCQkJCWlmIChyKQo+IC0JCQkJCWdvdG8gdW5yZXNl cnZlX2FibzsKPiArCQkJCQlnb3RvIG91dHB1dF9pYl9jb250ZW50Owo+ICAKPiAgCQkJCWtwdHIg PSBhbWRncHVfYm9fa3B0cihhYm8pOwo+ICAJCQkJa3B0ciArPSBvZmZzZXQ7Cj4gQEAgLTQwNCwy MyArNDQzLDIxIEBAIGFtZGdwdV9kZXZjb3JlZHVtcF9mb3JtYXQoY2hhciAqYnVmZmVyLCBzaXpl X3QgY291bnQsIHN0cnVjdCBhbWRncHVfY29yZWR1bXBfaW5mCj4gIAkJCQkgICAgICAgY29yZWR1 bXAtPmlic1tpXS5pYl9zaXplX2R3ICogNCk7Cj4gIAo+ICAJCQkJYW1kZ3B1X2JvX2t1bm1hcChh Ym8pOwo+ICsJCQkJZW1pdF9jb250ZW50ID0gdHJ1ZTsKPiAgCQkJfQo+ICAKPiAgb3V0cHV0X2li X2NvbnRlbnQ6Cj4gIAkJCWRybV9wcmludGYoJnAsICJcbklCICMlZCAweCVsbHggJWQgZHdcbiIs Cj4gIAkJCQkgICBpLCBjb3JlZHVtcC0+aWJzW2ldLmdwdV9hZGRyLCBjb3JlZHVtcC0+aWJzW2ld LmliX3NpemVfZHcpOwo+IC0JCQlmb3IgKGludCBqID0gMDsgaiA8IGNvcmVkdW1wLT5pYnNbaV0u aWJfc2l6ZV9kdzsgaisrKQo+IC0JCQkJZHJtX3ByaW50ZigmcCwgIjB4JTA4eFxuIiwgaWJfY29u dGVudFtqXSk7Cj4gLXVucmVzZXJ2ZV9hYm86Cj4gLQkJCWlmICh2bSkKPiAtCQkJCWFtZGdwdV9i b191bnJlc2VydmUoYWJvKTsKPiAtZnJlZV9pYl9jb250ZW50Ogo+ICsJCQlpZiAoZW1pdF9jb250 ZW50KSB7Cj4gKwkJCQlmb3IgKGludCBqID0gMDsgaiA8IGNvcmVkdW1wLT5pYnNbaV0uaWJfc2l6 ZV9kdzsgaisrKQo+ICsJCQkJCWRybV9wcmludGYoJnAsICIweCUwOHhcbiIsIGliX2NvbnRlbnRb al0pOwo+ICsJCQl9Cj4gIAkJCWt2ZnJlZShpYl9jb250ZW50KTsKPiAgCQl9Cj4gLQkJaWYgKHZt KSB7Cj4gLQkJCWFtZGdwdV9ib191bnJlc2VydmUocm9vdCk7Cj4gLQkJCWFtZGdwdV9ib191bnJl Zigmcm9vdCk7Cj4gLQkJfQo+ICsKPiArCQlpZiAobG9ja2VkKQo+ICsJCQlkcm1fZXhlY19maW5p KCZleGVjKTsKPiAgCX0KPiAgCj4gIAlyZXR1cm4gY291bnQgLSBpdGVyLnJlbWFpbjsKCg==