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 CD150CD4F5B for ; Tue, 19 May 2026 16:16:03 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CC50B10E3C6; Tue, 19 May 2026 16:16:02 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="gQ60T8Ek"; dkim-atps=neutral Received: from mail-lj1-f178.google.com (mail-lj1-f178.google.com [209.85.208.178]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6D60E10E5F0 for ; Tue, 19 May 2026 16:16:01 +0000 (UTC) Received: by mail-lj1-f178.google.com with SMTP id 38308e7fff4ca-393925cb1baso44890181fa.0 for ; Tue, 19 May 2026 09:16:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779207360; x=1779812160; darn=lists.freedesktop.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0uDjM1EcMOi30GaXc68xaMNS0uV90e3QyVWS7Pj4PBk=; b=gQ60T8EkpEGfSP690ZVxHIpt5B5wue3fDarFlxPOKE57cxfxQTXoTJZY0F4NA0APdK ckVIzkeZ5iiXuIxauH0fEXZPQEbG7u2JdRAY5mm0UNSSsL46sKNxDP1ty70JssNDaW4n PszHfNLQEyzhMkQcMIW54k9kvcDNp7HJtoE1aiZ7zL7NdAHYXNuK4T3dxjRmzmGDYIiH 0Qw0VBHb4NvN+UGSnSGvR8XSw9cPPdoQ0k0nZpSAFbOgvL7pmY3chCn+CrWQ82ZfXasa 3ZG/h85lglMtXazNANI4qW4FArkPO92Xpmeoci9/S9I7ZiQtE8NkmVq/V3TEB1UXzXG9 yZXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779207360; x=1779812160; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=0uDjM1EcMOi30GaXc68xaMNS0uV90e3QyVWS7Pj4PBk=; b=CkvH+uheqRZ4f1sSLQBhCZJF94f3sC3UP9YNUCL5LCvYFczY8ujXjq3BqJ+QU5ilPl 2PK9Y3bp0oV59+kiBpX30kTsbJAKYSX3ghwJddGJ4n0ZYnUyLbJSj7r5VPoEhIEW43Jq c6WeIH0EVm+xoUFoAYkgquMCT51Em6/fWTiFI4z0cODIUG9ZHfttqU7fu9YKJQZOF/iT iIBKWLue6UsNBYFa+VfLSAIPJAAgOL0MHwPiQmHcJauWA0H93P2JmvtsJcDEOPxWNGsf 3Mky1JMKxp98HNyIYCs5CkdZ1dIni/pejdu3SZ5xyzPFmU3kYRmCahc8i34N7DGAJjPA kA2w== X-Forwarded-Encrypted: i=1; AFNElJ/DlRCu1PaGK7c+CRhQwNShSL/8YqgGLB1Z76lzhhpL5Z1o+QBuNDDTIRaP/o0T1F022+JtfZmuQsk=@lists.freedesktop.org X-Gm-Message-State: AOJu0YwxUGLqY4KPkWVkaGYJ8OHiV7i6z3m1cukQJEk35zoYlvbAp6E3 P74SQ8gCqOu2dxtiU+NU0fd/r8hkMewy7MtIzkravUi1E1FY03CGekDCrSCh5HeMVkgITUVZ X-Gm-Gg: Acq92OH5RLPw9PSZvoGKnfnKI32er5mB7qy9819y8bZfEpXdzQu+uJfErZKThuDf0sT tC5xSjJeWczu2+0Rc2gUwp/7sZAkuWNzGJneFkVkVyEgzqaQdc6EKPnFrL+veGYVGHkmlbJVKX/ 4pSEpvR+BmYNFS1EC4tnV+ClsHStn4lJYognHVO3IIDhuay7LmP6bdCTh8V7sDHlccrF1aQHr41 C2x69dRruwpeTbmhuf0lgaPLcu2+RCnQ2Ryoa6GZyuD5IO5B0RHfRjwiZNTfGc0q1GiGyOcSN8A lX5TCHmDEFSNqvFmXvaYl5cV+xG6+d1eroaEcXXNyae6T1LV7r1lvJp2zf/7QmdUYn1tX3kwt/b ejg+yN3SCBGoZFDw89iEHdvKltUXCzsYBB2GiI23ufHyd+bf6s+T5Zp5sEQrkUltQH1MsBujc8E nf3wXii+/cvLtiqmokvQwX3f1xqhTMT0DwjM6zbA6vkC4= X-Received: by 2002:a05:651c:1543:b0:393:77ef:9079 with SMTP id 38308e7fff4ca-39561f57db0mr66667601fa.28.1779207359359; Tue, 19 May 2026 09:15:59 -0700 (PDT) Received: from localhost ([188.234.148.119]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-395882c41c1sm20823091fa.12.2026.05.19.09.15.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 May 2026 09:15:57 -0700 (PDT) From: Mikhail Gavrilov To: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: Mikhail Gavrilov , =?UTF-8?q?Christian=20K=C3=B6nig?= , Alex Deucher , David Airlie , Simona Vetter , Sumit Semwal , Pierre-Eric Pelloux-Prayer , linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org Subject: [PATCH v2] drm/amdgpu: fix recursive ww_mutex acquire in amdgpu_devcoredump_format Date: Tue, 19 May 2026 21:15:40 +0500 Message-ID: <20260519161541.19994-1-mikhail.v.gavrilov@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260429143743.50743-1-mikhail.v.gavrilov@gmail.com> References: <20260429143743.50743-1-mikhail.v.gavrilov@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 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" V2hlbiBkdW1waW5nIElCIGNvbnRlbnRzIGZyb20gYSBodW5nIGpvYiwgYW1kZ3B1X2RldmNvcmVk dW1wX2Zvcm1hdCgpCmFjcXVpcmVzIHRoZSBWTSByb290IFBEJ3MgcmVzZXJ2YXRpb24gbG9jayB2 aWEgYW1kZ3B1X3ZtX2xvY2tfYnlfcGFzaWQoKQphbmQgdGhlbiwgZm9yIGVhY2ggSUIgcmVmZXJl bmNlZCBieSB0aGUgam9iLCBjYWxscyBhbWRncHVfYm9fcmVzZXJ2ZSgpCm9uIHRoZSBCTyB0aGF0 IGJhY2tzIHRoZSBJQi4gIEJvdGggcmVzZXJ2YXRpb25zIGFyZSB0YWtlbiBvbgpyZXNlcnZhdGlv bl93d19jbGFzc19tdXRleCBvYmplY3RzIGJ1dCBuZWl0aGVyIHVzZXMgYSB3d19hY3F1aXJlX2N0 eCwKd2hpY2ggdHJpcHMgbG9ja2RlcDoKCiAgV0FSTklORzogcG9zc2libGUgcmVjdXJzaXZlIGxv Y2tpbmcgZGV0ZWN0ZWQKICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIGt3b3JrZXIvdTEyODowIGlzIHRyeWluZyB0byBhY3F1aXJlIGxvY2s6CiAgZmZmZjg4 ODM4YjE2ZTFmMCAocmVzZXJ2YXRpb25fd3dfY2xhc3NfbXV0ZXgpeysuKy59LXs0OjR9LAogICAg YXQ6IGFtZGdwdV9kZXZjb3JlZHVtcF9mb3JtYXQrMHgxNTk0LzB4MjNmMCBbYW1kZ3B1XQoKICBi dXQgdGFzayBpcyBhbHJlYWR5IGhvbGRpbmcgbG9jazoKICBmZmZmODg4MmY4MjY4MWYwIChyZXNl cnZhdGlvbl93d19jbGFzc19tdXRleCl7Ky4rLn0tezQ6NH0sCiAgICBhdDogYW1kZ3B1X2RldmNv cmVkdW1wX2Zvcm1hdCsweDE1OTQvMHgyM2YwIFthbWRncHVdCgogICBQb3NzaWJsZSB1bnNhZmUg bG9ja2luZyBzY2VuYXJpbzoKICAgICAgICAgQ1BVMAogICAgICAgICAtLS0tCiAgICBsb2NrKHJl c2VydmF0aW9uX3d3X2NsYXNzX211dGV4KTsKICAgIGxvY2socmVzZXJ2YXRpb25fd3dfY2xhc3Nf bXV0ZXgpOwoKICAgKioqIERFQURMT0NLICoqKgogICBNYXkgYmUgZHVlIHRvIG1pc3NpbmcgbG9j ayBuZXN0aW5nIG5vdGF0aW9uCgogIFdvcmtxdWV1ZTogZXZlbnRzX3VuYm91bmQgYW1kZ3B1X2Rl dmNvcmVkdW1wX2RlZmVycmVkX3dvcmsgW2FtZGdwdV0KICBDYWxsIFRyYWNlOgogICBfX3d3X211 dGV4X2xvY2suY29uc3Rwcm9wLjAKICAgd3dfbXV0ZXhfbG9jawogICBhbWRncHVfYm9fcmVzZXJ2 ZQogICBhbWRncHVfZGV2Y29yZWR1bXBfZm9ybWF0KzB4MTU5NCBbYW1kZ3B1XQogICBhbWRncHVf ZGV2Y29yZWR1bXBfZGVmZXJyZWRfd29yaysweGVhIFthbWRncHVdCgpUaGUgdHdvIHJlc2VydmF0 aW9ucyBhcmUgb24gZGlmZmVyZW50IEJPcyBpbiB0aGUgY2FwdHVyZWQgdHJhY2UsIHNvIHRoZQpz cGxhdCBpcyBhIGxvY2tkZXAtY29ycmVjdG5lc3Mgd2FybmluZywgbm90IGFuIG9ic2VydmVkIGRl YWRsb2NrLiAgSXQKYmVjb21lcyBhIHJlYWwgc2VsZi1kZWFkbG9jayB3aGVuZXZlciB0aGUgSUIg Qk8gc2hhcmVzIGl0cyBkbWFfcmVzdgp3aXRoIHRoZSByb290IFBEICh0aGUgYWx3YXlzLXZhbGlk IGNhc2UsIHNlZQphbWRncHVfdm1faXNfYm9fYWx3YXlzX3ZhbGlkKCkpOiBhbWRncHVfYm9fcmVz ZXJ2ZShhYm8pIHJlLWFjcXVpcmVzIHRoZQpzYW1lIHd3X211dGV4IHdpdGhvdXQgYSB0aWNrZXQg YW5kIGJsb2NrcyBmb3JldmVyLgoKRml4IGl0IGluIHR3byBzdGVwczoKCjEuIENvbGxlY3QgcGVy LUlCIEJPIHJlZmVyZW5jZXMgdW5kZXIgdGhlIHJvb3QgUEQncyByZXNlcnZhdGlvbiwgdGhlbgog ICByZWxlYXNlIHRoZSByb290IGJlZm9yZSBsb2NraW5nIHRoZSBJQiBCT3MuICBUaGUgd2FsayBv dmVyIHRoZSBWTQogICBtYXBwaW5nIHRyZWUgbXVzdCByZW1haW4gdW5kZXIgdGhlIHJvb3QgbG9j ayAobWFwcGluZ3MgY2FuIGJlIHRvcm4KICAgZG93biB3aXRob3V0IGl0KSwgYnV0IHRoZSBhY3R1 YWwgY29udGVudCBjb3BpZXMgZG8gbm90LgoKMi4gTG9jayBhbGwgdGhlIElCIEJPcyB0b2dldGhl ciB1c2luZyBkcm1fZXhlYyg5KSB3aXRoIGEgc2luZ2xlCiAgIHd3X2FjcXVpcmVfY3R4LiAgRFJN X0VYRUNfSUdOT1JFX0RVUExJQ0FURVMgaGFuZGxlcyB0aGUgY2FzZSB3aGVyZQogICBJQiBCT3Mg c2hhcmUgYSBkbWFfcmVzdiAoZS5nLiBhbHdheXMtdmFsaWQgQk9zKS4gIEVhY2ggbG9jayBhdHRl bXB0CiAgIGlzIG5vdyBhIHRvcC1sZXZlbCBhY3F1aXJlIHVuZGVyIG9uZSB0aWNrZXQsIHdpdGgg cmV0cnktb24tCiAgIGNvbnRlbnRpb24gaGFuZGxlZCBieSBkcm1fZXhlYzsgdGhlIHJlY3Vyc2l2 ZSB3d19tdXRleCBjb25kaXRpb24KICAgaXMgZ29uZS4KClRoZSBjb2xsZWN0L2xvY2svcmVsZWFz ZSBsb2dpYyBpcyBmYWN0b3JlZCBvdXQgaW50byB0aHJlZSBzbWFsbCBoZWxwZXJzCihhbWRncHVf ZGV2Y29yZWR1bXBfe2NvbGxlY3QsbG9jayxyZWxlYXNlfV9pYl9yZWZzKSB0byBrZWVwIHRoZSBt YWluCmZ1bmN0aW9uIHJlYWRhYmxlIGFuZCB3aXRoaW4gdGhlIGtlcm5lbCBjb2Rpbmcgc3R5bGUg aW5kZW50YXRpb24KZ3VpZGVsaW5lLgoKVGhpcyBhbHNvIGZpeGVzIGEgQk8gcmVmY291bnQgbGVh ayBpbiB0aGUgb3JpZ2luYWwgY29kZTogd2hlbgphbWRncHVfYm9fcmVzZXJ2ZSgpIGZhaWxlZCwg Y29udHJvbCBqdW1wZWQgdG8gZnJlZV9pYl9jb250ZW50IHdpdGhvdXQKcnVubmluZyBhbWRncHVf Ym9fdW5yZWYoKS4gIEluIHRoZSBuZXcgc3RydWN0dXJlIHRoZSBwZXItSUIgQk8gcmVmcwphcmUg cmVsZWFzZWQgdW5jb25kaXRpb25hbGx5IGluIHRoZSBjbGVhbnVwIGhlbHBlci4KClJlcHJvZHVj ZXIgKH4xNTAgTG9DIGxpYmRybV9hbWRncHUpOiBzdWJtaXQgYSBzaW5nbGUgR0ZYIElCIGNvbnRh aW5pbmcKUEFDS0VUM19JTkRJUkVDVF9CVUZGRVIgY2hhaW5lZCBhdCBHUFUgVkEgMCBhbmQgd2Fp dCBmb3IgdGhlIGZlbmNlLgpUaGUgVERSIGZpcmVzIHdpdGhpbiB+MTAgcyBhbmQgdGhlIGRlZmVy cmVkIGNvcmVkdW1wIHdvcmtlciBwcm9kdWNlcwp0aGUgc3BsYXQgYWJvdmUgb24gZXZlcnkgaW52 b2NhdGlvbi4KCnYyOiBzd2l0Y2ggZnJvbSBwZXItSUIgYW1kZ3B1X2JvX3Jlc2VydmUoKSB0byBk cm1fZXhlYyBmb3IgdGhlIElCIEJPCiAgICBsb2NraW5nIGFzIHN1Z2dlc3RlZCBieSBDaHJpc3Rp YW4gS8O2bmlnOyB0aGUgc25hcHNob3QgYXBwcm9hY2gKICAgIGZvciBjb2xsZWN0aW5nIEJPIHJl ZmVyZW5jZXMgdW5kZXIgdGhlIHJvb3QgUEQncyByZXNlcnZhdGlvbiBpcwogICAgcmV0YWluZWQu CgpGaXhlczogN2IxNWZjMmQxZjFhICgiZHJtL2FtZGdwdTogZHVtcCBqb2IgaWJzIGluIHRoZSBk ZXZjb3JlZHVtcCIpClN1Z2dlc3RlZC1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtv ZW5pZ0BhbWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWtoYWlsIEdhdnJpbG92IDxtaWtoYWlsLnYu Z2F2cmlsb3ZAZ21haWwuY29tPgotLS0KIC4uLi9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rl dl9jb3JlZHVtcC5jICB8IDE4NyArKysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAx NDggaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rldl9jb3JlZHVtcC5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2Rldl9jb3JlZHVtcC5jCmluZGV4IGQzODZiYzc3NWQwMy4uOWFj OTU4Y2YwOWZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf ZGV2X2NvcmVkdW1wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rl dl9jb3JlZHVtcC5jCkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlIDxnZW5lcmF0ZWQvdXRz cmVsZWFzZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmNvcmVkdW1wLmg+CisjaW5jbHVkZSA8ZHJt L2RybV9leGVjLmg+CiAjaW5jbHVkZSAiYW1kZ3B1X2Rldl9jb3JlZHVtcC5oIgogI2luY2x1ZGUg ImF0b20uaCIKIApAQCAtMjA3LDYgKzIwOCwxMDggQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RldmNv cmVkdW1wX2Z3X2luZm8oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJfQogfQogCitzdHJ1 Y3QgYW1kZ3B1X2RldmNvcmVkdW1wX2liX3JlZiB7CisJc3RydWN0IGFtZGdwdV9ibwkqYm87CisJ dTY0CQkJb2Zmc2V0OworfTsKKworLyoKKyAqIFdhbGsgdGhlIFZNJ3MgbWFwcGluZyB0cmVlIHVu ZGVyIHRoZSByb290IFBEJ3MgcmVzZXJ2YXRpb24gdG8gb2J0YWluIHRoZSBCTworICogdGhhdCBi YWNrcyBlYWNoIElCIGFuZCBwaW4gaXQgd2l0aCBhIHJlZmNvdW50LiBUaGUgcm9vdCBQRCByZXNl cnZhdGlvbiBpcworICogZHJvcHBlZCBiZWZvcmUgdGhpcyBmdW5jdGlvbiByZXR1cm5zOyB0aGUg Y2FsbGVyIGNhbiB0aGVuIGxvY2sgZWFjaCBJQiBCTworICogdmlhIGRybV9leGVjIHdpdGhvdXQg bmVzdGluZyByZXNlcnZhdGlvbnMgb24gcmVzZXJ2YXRpb25fd3dfY2xhc3NfbXV0ZXguCisgKgor ICogUmV0dXJucyBhbiBhcnJheSBvZiBudW1faWJzIGVudHJpZXMgKGVhY2ggaWJfcmVmc1tpXS5i byBtYXkgYmUgTlVMTCBpZiBpdHMKKyAqIG1hcHBpbmcgd2FzIG5vdCBmb3VuZCksIG9yIE5VTEwg b24gYWxsb2NhdGlvbiBmYWlsdXJlIC8gVk0gbG9va3VwIGZhaWx1cmUuCisgKiBUaGUgY2FsbGVy IG11c3QgcmVsZWFzZSB0aGUgQk8gcmVmcyBhbmQgZnJlZSB0aGUgYXJyYXkgdmlhCisgKiBhbWRn cHVfZGV2Y29yZWR1bXBfcmVsZWFzZV9pYl9yZWZzKCkuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYW1k Z3B1X2RldmNvcmVkdW1wX2liX3JlZiAqCithbWRncHVfZGV2Y29yZWR1bXBfY29sbGVjdF9pYl9y ZWZzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCSAgIHN0cnVjdCBhbWRncHVfY29y ZWR1bXBfaW5mbyAqY29yZWR1bXApCit7CisJc3RydWN0IGFtZGdwdV9kZXZjb3JlZHVtcF9pYl9y ZWYgKmliX3JlZnM7CisJc3RydWN0IGFtZGdwdV9ib192YV9tYXBwaW5nICptYXBwaW5nOworCXN0 cnVjdCBhbWRncHVfYm8gKnJvb3Q7CisJc3RydWN0IGFtZGdwdV92bSAqdm07CisJdTY0IHZhX3N0 YXJ0OworCisJaWJfcmVmcyA9IGtjYWxsb2MoY29yZWR1bXAtPm51bV9pYnMsIHNpemVvZigqaWJf cmVmcyksIEdGUF9LRVJORUwpOworCWlmICghaWJfcmVmcykKKwkJcmV0dXJuIE5VTEw7CisKKwl2 bSA9IGFtZGdwdV92bV9sb2NrX2J5X3Bhc2lkKGFkZXYsICZyb290LCBjb3JlZHVtcC0+cGFzaWQp OworCWlmICghdm0pIHsKKwkJa2ZyZWUoaWJfcmVmcyk7CisJCXJldHVybiBOVUxMOworCX0KKwor CWZvciAoaW50IGkgPSAwOyBpIDwgY29yZWR1bXAtPm51bV9pYnM7IGkrKykgeworCQl2YV9zdGFy dCA9IGNvcmVkdW1wLT5pYnNbaV0uZ3B1X2FkZHIgJiBBTURHUFVfR01DX0hPTEVfTUFTSzsKKwkJ bWFwcGluZyA9IGFtZGdwdV92bV9ib19sb29rdXBfbWFwcGluZyh2bSwgdmFfc3RhcnQgLyBBTURH UFVfR1BVX1BBR0VfU0laRSk7CisJCWlmICghbWFwcGluZykKKwkJCWNvbnRpbnVlOworCisJCWli X3JlZnNbaV0uYm8gPSBhbWRncHVfYm9fcmVmKG1hcHBpbmctPmJvX3ZhLT5iYXNlLmJvKTsKKwkJ aWJfcmVmc1tpXS5vZmZzZXQgPSB2YV9zdGFydCAtCisJCQkJICAgIG1hcHBpbmctPnN0YXJ0ICog QU1ER1BVX0dQVV9QQUdFX1NJWkU7CisJfQorCisJYW1kZ3B1X2JvX3VucmVzZXJ2ZShyb290KTsK KwlhbWRncHVfYm9fdW5yZWYoJnJvb3QpOworCisJcmV0dXJuIGliX3JlZnM7Cit9CisKK3N0YXRp YyB2b2lkCithbWRncHVfZGV2Y29yZWR1bXBfcmVsZWFzZV9pYl9yZWZzKHN0cnVjdCBhbWRncHVf ZGV2Y29yZWR1bXBfaWJfcmVmICppYl9yZWZzLAorCQkJCSAgIGludCBudW1faWJzKQoreworCWlm ICghaWJfcmVmcykKKwkJcmV0dXJuOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1faWJzOyBp KyspCisJCWlmIChpYl9yZWZzW2ldLmJvKQorCQkJYW1kZ3B1X2JvX3VucmVmKCZpYl9yZWZzW2ld LmJvKTsKKwlrZnJlZShpYl9yZWZzKTsKK30KKworLyoKKyAqIExvY2sgYWxsIGNvbGxlY3RlZCBJ QiBCT3MgdG9nZXRoZXIgdXNpbmcgYSBzaW5nbGUgZHJtX2V4ZWMgdGlja2V0LiBUaGlzCisgKiBl bGltaW5hdGVzIHRoZSBuZXN0ZWQgd3dfbXV0ZXggYWNxdWlyZSB0aGF0IGxvY2tkZXAgZmxhZ3Mg YXMgcmVjdXJzaXZlCisgKiBsb2NraW5nIChhbmQgdGhhdCBiZWNvbWVzIGEgcmVhbCBzZWxmLWRl YWRsb2NrIGZvciBJQiBCT3Mgc2hhcmluZyB0aGVpcgorICogZG1hX3Jlc3Ygd2l0aCB0aGUgcm9v dCBQRCkuCisgKgorICogUmV0dXJucyAwIGlmIGRybV9leGVjIHdhcyBpbml0aWFsaXNlZCBhbmQg dGhlIEJPcyBhcmUgbG9ja2VkOyB0aGUgY2FsbGVyCisgKiBtdXN0IGNhbGwgZHJtX2V4ZWNfZmlu aSgpIG9uIHN1Y2Nlc3MuIFJldHVybnMgbm9uLXplcm8gb24gZmFpbHVyZSwgaW4gd2hpY2gKKyAq IGNhc2UgZHJtX2V4ZWMgaXMgYWxyZWFkeSB0b3JuIGRvd24uCisgKi8KK3N0YXRpYyBpbnQKK2Ft ZGdwdV9kZXZjb3JlZHVtcF9sb2NrX2liX3JlZnMoc3RydWN0IGRybV9leGVjICpleGVjLAorCQkJ CXN0cnVjdCBhbWRncHVfZGV2Y29yZWR1bXBfaWJfcmVmICppYl9yZWZzLAorCQkJCWludCBudW1f aWJzKQoreworCWludCByID0gMDsKKworCWRybV9leGVjX2luaXQoZXhlYywgRFJNX0VYRUNfSUdO T1JFX0RVUExJQ0FURVMsIG51bV9pYnMpOworCWRybV9leGVjX3VudGlsX2FsbF9sb2NrZWQoZXhl YykgeworCQlyID0gMDsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1faWJzOyBpKyspIHsKKwkJ CWlmICghaWJfcmVmc1tpXS5ibykKKwkJCQljb250aW51ZTsKKwkJCXIgPSBkcm1fZXhlY19sb2Nr X29iaihleGVjLCAmaWJfcmVmc1tpXS5iby0+dGJvLmJhc2UpOworCQkJZHJtX2V4ZWNfcmV0cnlf b25fY29udGVudGlvbihleGVjKTsKKwkJCWlmIChyKQorCQkJCWJyZWFrOworCQl9CisJCWlmIChy KQorCQkJYnJlYWs7CisJfQorCWlmIChyKQorCQlkcm1fZXhlY19maW5pKGV4ZWMpOworCXJldHVy biByOworfQorCiBzdGF0aWMgc3NpemVfdAogYW1kZ3B1X2RldmNvcmVkdW1wX2Zvcm1hdChjaGFy ICpidWZmZXIsIHNpemVfdCBjb3VudCwgc3RydWN0IGFtZGdwdV9jb3JlZHVtcF9pbmZvICpjb3Jl ZHVtcCkKIHsKQEAgLTIxNCwxMyArMzE3LDkgQEAgYW1kZ3B1X2RldmNvcmVkdW1wX2Zvcm1hdChj aGFyICpidWZmZXIsIHNpemVfdCBjb3VudCwgc3RydWN0IGFtZGdwdV9jb3JlZHVtcF9pbmYKIAlz dHJ1Y3QgZHJtX3ByaW50ZXIgcDsKIAlzdHJ1Y3QgZHJtX3ByaW50X2l0ZXJhdG9yIGl0ZXI7CiAJ c3RydWN0IGFtZGdwdV92bV9mYXVsdF9pbmZvICpmYXVsdF9pbmZvOwotCXN0cnVjdCBhbWRncHVf Ym9fdmFfbWFwcGluZyAqbWFwcGluZzsKIAlzdHJ1Y3QgYW1kZ3B1X2lwX2Jsb2NrICppcF9ibG9j azsKIAlzdHJ1Y3QgYW1kZ3B1X3Jlc19jdXJzb3IgY3Vyc29yOwotCXN0cnVjdCBhbWRncHVfYm8g KmFibywgKnJvb3Q7Ci0JdWludDY0X3QgdmFfc3RhcnQsIG9mZnNldDsKIAlzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmc7Ci0Jc3RydWN0IGFtZGdwdV92bSAqdm07CiAJdTMyICppYl9jb250ZW50Owog CXVpbnQ4X3QgKmtwdHI7CiAJaW50IHZlciwgaSwgaiwgcjsKQEAgLTM0Myw0MyArNDQyLDUyIEBA IGFtZGdwdV9kZXZjb3JlZHVtcF9mb3JtYXQoY2hhciAqYnVmZmVyLCBzaXplX3QgY291bnQsIHN0 cnVjdCBhbWRncHVfY29yZWR1bXBfaW5mCiAJCWRybV9wcmludGYoJnAsICJWUkFNIGlzIGxvc3Qg ZHVlIHRvIEdQVSByZXNldCFcbiIpOwogCiAJaWYgKGNvcmVkdW1wLT5udW1faWJzKSB7Ci0JCS8q IERvbid0IHRyeSB0byBsb29rdXAgdGhlIFZNIG9yIG1hcCB0aGUgQk9zIHdoZW4gY2FsY3VsYXRp bmcgdGhlCi0JCSAqIHNpemUgcmVxdWlyZWQgdG8gc3RvcmUgdGhlIGRldmNvcmVkdW1wLgorCQlz dHJ1Y3QgYW1kZ3B1X2RldmNvcmVkdW1wX2liX3JlZiAqaWJfcmVmcyA9IE5VTEw7CisJCXN0cnVj dCBkcm1fZXhlYyBleGVjOworCQlib29sIGlic19sb2NrZWQgPSBmYWxzZTsKKworCQkvKgorCQkg KiBDb2xsZWN0IHRoZSBCTyB0aGF0IGJhY2tzIGVhY2ggSUIgdW5kZXIgdGhlIHJvb3QgUEQncwor CQkgKiByZXNlcnZhdGlvbiwgZHJvcCB0aGUgcm9vdCByZXNlcnZhdGlvbiwgdGhlbiBsb2NrIGFs bCB0aGUKKwkJICogSUIgQk9zIHRvZ2V0aGVyIGluIG9uZSBkcm1fZXhlYyB0aWNrZXQuIFRoaXMg YXZvaWRzIG5lc3RpbmcKKwkJICogYW1kZ3B1X2JvX3Jlc2VydmUoKSBpbnNpZGUgdGhlIHJvb3Qg UEQncyByZXNlcnZhdGlvbiwgd2hpY2gKKwkJICogd291bGQgYmUgYSByZWN1cnNpdmUgcmVzZXJ2 YXRpb25fd3dfY2xhc3NfbXV0ZXggYWNxdWlyZQorCQkgKiB3aXRob3V0IGEgd3dfYWNxdWlyZV9j dHggKGxvY2tkZXAgc3BsYXQsIGFuZCBhIHJlYWwKKwkJICogc2VsZi1kZWFkbG9jayBmb3IgYWx3 YXlzLXZhbGlkIEJPcyB0aGF0IHNoYXJlIHRoZWlyIGRtYV9yZXN2CisJCSAqIHdpdGggdGhlIHJv b3QgUEQpLgorCQkgKgorCQkgKiBTa2lwIGxvb2t1cC9sb2NraW5nIGVudGlyZWx5IG9uIHRoZSBz aXppbmcgcGFzczogaXQgZG9lcyBub3QKKwkJICogd3JpdGUgSUIgY29udGVudCwgYW5kIHRoZSBz aXplIGVzdGltYXRlIGRvZXNuJ3QgZGVwZW5kIG9uCisJCSAqIHdoZXRoZXIgdGhlIEJPcyBhcmUg cmVhY2hhYmxlLgogCQkgKi8KLQkJaWYgKHNpemluZ19wYXNzKQotCQkJdm0gPSBOVUxMOwotCQll bHNlCi0JCQl2bSA9IGFtZGdwdV92bV9sb2NrX2J5X3Bhc2lkKGFkZXYsICZyb290LCBjb3JlZHVt cC0+cGFzaWQpOworCQlpZiAoIXNpemluZ19wYXNzKSB7CisJCQlpYl9yZWZzID0gYW1kZ3B1X2Rl dmNvcmVkdW1wX2NvbGxlY3RfaWJfcmVmcyhhZGV2LCBjb3JlZHVtcCk7CisJCQlpZiAoaWJfcmVm cykgeworCQkJCXIgPSBhbWRncHVfZGV2Y29yZWR1bXBfbG9ja19pYl9yZWZzKCZleGVjLCBpYl9y ZWZzLAorCQkJCQkJCQkgICAgY29yZWR1bXAtPm51bV9pYnMpOworCQkJCWlmICghcikKKwkJCQkJ aWJzX2xvY2tlZCA9IHRydWU7CisJCQl9CisJCX0KKworCQlmb3IgKGludCBpID0gMDsgaSA8IGNv cmVkdW1wLT5udW1faWJzOyBpKyspIHsKKwkJCXN0cnVjdCBhbWRncHVfYm8gKmFibyA9IGlic19s b2NrZWQgPyBpYl9yZWZzW2ldLmJvIDogTlVMTDsKKwkJCXU2NCBvZmZzZXQgPSBpYnNfbG9ja2Vk ID8gaWJfcmVmc1tpXS5vZmZzZXQgOiAwOworCQkJYm9vbCBlbWl0X2NvbnRlbnQgPSBzaXppbmdf cGFzczsKIAotCQlmb3IgKGludCBpID0gMDsgaSA8IGNvcmVkdW1wLT5udW1faWJzICYmIChzaXpp bmdfcGFzcyB8fCB2bSk7IGkrKykgewogCQkJaWJfY29udGVudCA9IGt2bWFsbG9jX2FycmF5KGNv cmVkdW1wLT5pYnNbaV0uaWJfc2l6ZV9kdywgNCwKIAkJCQkJCSAgICBHRlBfS0VSTkVMKTsKIAkJ CWlmICghaWJfY29udGVudCkKIAkJCQljb250aW51ZTsKIAotCQkJLyogdm09TlVMTCBjYW4gb25s eSBoYXBwZW4gd2hlbiAnc2l6aW5nX3Bhc3MnIGlzIHRydWUuIFNraXAgdG8gdGhlCi0JCQkgKiBk cm1fcHJpbnRmKCkgY2FsbHMgKGliX2NvbnRlbnQgZG9lc24ndCBuZWVkIHRvIGJlIGluaXRpYWxp emVkCi0JCQkgKiBhcyBpdHMgY29udGVudCB3b24ndCBiZSB3cml0dGVuIGFueXdoZXJlKS4KLQkJ CSAqLwotCQkJaWYgKCF2bSkKKwkJCWlmICghYWJvKQogCQkJCWdvdG8gb3V0cHV0X2liX2NvbnRl bnQ7CiAKLQkJCXZhX3N0YXJ0ID0gY29yZWR1bXAtPmlic1tpXS5ncHVfYWRkciAmIEFNREdQVV9H TUNfSE9MRV9NQVNLOwotCQkJbWFwcGluZyA9IGFtZGdwdV92bV9ib19sb29rdXBfbWFwcGluZyh2 bSwgdmFfc3RhcnQgLyBBTURHUFVfR1BVX1BBR0VfU0laRSk7Ci0JCQlpZiAoIW1hcHBpbmcpCi0J CQkJZ290byBmcmVlX2liX2NvbnRlbnQ7Ci0KLQkJCW9mZnNldCA9IHZhX3N0YXJ0IC0gKG1hcHBp bmctPnN0YXJ0ICogQU1ER1BVX0dQVV9QQUdFX1NJWkUpOwotCQkJYWJvID0gYW1kZ3B1X2JvX3Jl ZihtYXBwaW5nLT5ib192YS0+YmFzZS5ibyk7Ci0JCQlyID0gYW1kZ3B1X2JvX3Jlc2VydmUoYWJv LCBmYWxzZSk7Ci0JCQlpZiAocikKLQkJCQlnb3RvIGZyZWVfaWJfY29udGVudDsKLQogCQkJaWYg KGFiby0+ZmxhZ3MgJiBBTURHUFVfR0VNX0NSRUFURV9OT19DUFVfQUNDRVNTKSB7CiAJCQkJb2Zm ID0gMDsKIAogCQkJCWlmIChhYm8tPnRiby5yZXNvdXJjZS0+bWVtX3R5cGUgIT0gVFRNX1BMX1ZS QU0pCi0JCQkJCWdvdG8gdW5yZXNlcnZlX2FibzsKKwkJCQkJZ290byBvdXRwdXRfaWJfY29udGVu dDsKIAogCQkJCWFtZGdwdV9yZXNfZmlyc3QoYWJvLT50Ym8ucmVzb3VyY2UsIG9mZnNldCwKIAkJ CQkJCSBjb3JlZHVtcC0+aWJzW2ldLmliX3NpemVfZHcgKiA0LApAQCAtMzkxLDEyICs0OTksMTMg QEAgYW1kZ3B1X2RldmNvcmVkdW1wX2Zvcm1hdChjaGFyICpidWZmZXIsIHNpemVfdCBjb3VudCwg c3RydWN0IGFtZGdwdV9jb3JlZHVtcF9pbmYKIAkJCQkJb2ZmICs9IGN1cnNvci5zaXplOwogCQkJ CQlhbWRncHVfcmVzX25leHQoJmN1cnNvciwgY3Vyc29yLnNpemUpOwogCQkJCX0KKwkJCQllbWl0 X2NvbnRlbnQgPSB0cnVlOwogCQkJfSBlbHNlIHsKIAkJCQlyID0gdHRtX2JvX2ttYXAoJmFiby0+ dGJvLCAwLAogCQkJCQkJUEZOX1VQKGFiby0+dGJvLmJhc2Uuc2l6ZSksCiAJCQkJCQkmYWJvLT5r bWFwKTsKIAkJCQlpZiAocikKLQkJCQkJZ290byB1bnJlc2VydmVfYWJvOworCQkJCQlnb3RvIG91 dHB1dF9pYl9jb250ZW50OwogCiAJCQkJa3B0ciA9IGFtZGdwdV9ib19rcHRyKGFibyk7CiAJCQkJ a3B0ciArPSBvZmZzZXQ7CkBAIC00MDQsMjMgKzUxMywyMyBAQCBhbWRncHVfZGV2Y29yZWR1bXBf Zm9ybWF0KGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGNvdW50LCBzdHJ1Y3QgYW1kZ3B1X2NvcmVkdW1w X2luZgogCQkJCSAgICAgICBjb3JlZHVtcC0+aWJzW2ldLmliX3NpemVfZHcgKiA0KTsKIAogCQkJ CWFtZGdwdV9ib19rdW5tYXAoYWJvKTsKKwkJCQllbWl0X2NvbnRlbnQgPSB0cnVlOwogCQkJfQog CiBvdXRwdXRfaWJfY29udGVudDoKIAkJCWRybV9wcmludGYoJnAsICJcbklCICMlZCAweCVsbHgg JWQgZHdcbiIsCiAJCQkJICAgaSwgY29yZWR1bXAtPmlic1tpXS5ncHVfYWRkciwgY29yZWR1bXAt Pmlic1tpXS5pYl9zaXplX2R3KTsKLQkJCWZvciAoaW50IGogPSAwOyBqIDwgY29yZWR1bXAtPmli c1tpXS5pYl9zaXplX2R3OyBqKyspCi0JCQkJZHJtX3ByaW50ZigmcCwgIjB4JTA4eFxuIiwgaWJf Y29udGVudFtqXSk7Ci11bnJlc2VydmVfYWJvOgotCQkJaWYgKHZtKQotCQkJCWFtZGdwdV9ib191 bnJlc2VydmUoYWJvKTsKLWZyZWVfaWJfY29udGVudDoKKwkJCWlmIChlbWl0X2NvbnRlbnQpIHsK KwkJCQlmb3IgKGludCBqID0gMDsgaiA8IGNvcmVkdW1wLT5pYnNbaV0uaWJfc2l6ZV9kdzsgaisr KQorCQkJCQlkcm1fcHJpbnRmKCZwLCAiMHglMDh4XG4iLCBpYl9jb250ZW50W2pdKTsKKwkJCX0K IAkJCWt2ZnJlZShpYl9jb250ZW50KTsKIAkJfQotCQlpZiAodm0pIHsKLQkJCWFtZGdwdV9ib191 bnJlc2VydmUocm9vdCk7Ci0JCQlhbWRncHVfYm9fdW5yZWYoJnJvb3QpOwotCQl9CisKKwkJaWYg KGlic19sb2NrZWQpCisJCQlkcm1fZXhlY19maW5pKCZleGVjKTsKKworCQlhbWRncHVfZGV2Y29y ZWR1bXBfcmVsZWFzZV9pYl9yZWZzKGliX3JlZnMsIGNvcmVkdW1wLT5udW1faWJzKTsKIAl9CiAK IAlyZXR1cm4gY291bnQgLSBpdGVyLnJlbWFpbjsKLS0gCjIuNTQuMAoK