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 D2DC2CD5BAC for ; Thu, 21 May 2026 10:43:49 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 46F0B10F2DA; Thu, 21 May 2026 10:43:49 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="beer0ebB"; dkim-atps=neutral Received: from mail-lf1-f47.google.com (mail-lf1-f47.google.com [209.85.167.47]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9DF9510F2DA for ; Thu, 21 May 2026 10:43:47 +0000 (UTC) Received: by mail-lf1-f47.google.com with SMTP id 2adb3069b0e04-5a8891f0c51so6362509e87.1 for ; Thu, 21 May 2026 03:43:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779360226; x=1779965026; 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=V2MVfvQBPeY6Pwia0clIRhZPiWkl2nWuf72y0t9gH4Q=; b=beer0ebBTsh18cCGqZ+LFI4XOeOxcJRwGeDboF8Kbz9T4wEnyB8miweue6duQOD7uk gBR//EdSwbCH4WQug0D8FyJu5GjExwK2f1GJEaxf8osfyRRiM4yyFxEM9gzxos7GFbUW yZdpwyaVsSOwmDA+DfFj8aKoRiAtCFmNGkJ/MDWOJBCnAY4DIGfJxxEhGL/Jk0ClxQFu 3qc7QrWOSDJHHj1ZC90JcARx5sJeM2+P58w1MCO38kXIeD/VsX3K/zFeHEiioDps5J7/ ChDVahFiRgCuXIb/lhF/L0/mukjO8RN0j+IFHIl9RbNLZ5kj1yXzaLwUxn/sOSlgkqGx eMaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779360226; x=1779965026; 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=V2MVfvQBPeY6Pwia0clIRhZPiWkl2nWuf72y0t9gH4Q=; b=Tcmtrx2goMS0y+sNYgCz+7BGLYL5x+Nqo/Y/FzhDaQfTtRpVA2iXB4WgYbvyEM/SXu HL41eusp1L6kHbiOWGx2GNJoZkpQ2D16HTHEMXsBZ6MhkBGkmFlHyoWmslukLPyW2fCi oAf6KVgfggkape3mC62WONI8aEjUBjdDXfGK8YBd2JSjMwxCmOVQDbvbpqVjEmmTQB4y eBoP/9Wr6FNwwJzugftZMfbJJPBMQBz2N2D87Rta1J4TZVKNU5QYpmQyYKw4UXmOFk7o v++YFidy8Iyodygqjr1U6UP0oBlCWEpRcuQkC2T8+t2Usbq/O/rXusaDgVbalgPR+XQk Q8lg== X-Forwarded-Encrypted: i=1; AFNElJ8rmYC2UjpJIZ3yLjvqAKrh9upNbH7VXIRg66wyHLrdiWwaj3iJM4269BpA50xTE/ykcaLgrTUkTZo=@lists.freedesktop.org X-Gm-Message-State: AOJu0YzGH/AC1sisIJ05mwfVEdoFWVROzm8U/2ekxsYEX1QHT0cVjkSP q2lJVhOKSi5342ugHsOgCVFnuflB5xWXjZZ79tVzKVreWvepS5x32QknQ3UgYkC7ewXFOkEl X-Gm-Gg: Acq92OFR1CpojFCEGK7SCtNc4Kkt4LJFytdb2B0S5fv9Yy45XjG3nb5vKYaDroKVJin lOkmmQc21I8ApEyDVunVs/Jpx03Iem1XzkCEySUh7h3JWdwCLEgT+tXjIe7taWgblAjjq8cUq97 qynh5EaMZEWLkJL3iy4zClkHScD240nogeCV6AR/ZcJjFikxMcO4nP2K+CaioSjjiXEayxOytX8 nxfhD+IzuMQC4gEyJNlqtzsqpT1c05NOAO03e8RjTyy9RVitmo0WDvu9Ks4xKqxg9Tlr/L9ICEm xLb9XUtpRJrhncZe+Kso2+9exd4NQ032EQdlCGkz14EBlndza8c77lYHlV+LkBDxq1DLYY5j+/Q Xvl3E44v9cVIz5UJs7SFSatYDLxFT1EjyIoJo6WVOdApCE6HdezqF1k8bAAKADX0iL2EfYGQYKU 1VIevshFTBHQzaAJQeo9+y+Ax0GrGYqWgDuE4LsXQLFWjQ X-Received: by 2002:ac2:46ea:0:b0:5a8:89ad:e172 with SMTP id 2adb3069b0e04-5aa2ba9afecmr629800e87.37.1779360225752; Thu, 21 May 2026 03:43:45 -0700 (PDT) Received: from localhost ([188.234.148.119]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-395d0b49073sm1595611fa.31.2026.05.21.03.43.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 May 2026 03:43:45 -0700 (PDT) From: Mikhail Gavrilov To: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , David Airlie , Simona Vetter , Pierre-Eric Pelloux-Prayer , Sumit Semwal , linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org, Mikhail Gavrilov Subject: [PATCH v4 2/2] drm/amdgpu: fix recursive ww_mutex acquire in amdgpu_devcoredump_format Date: Thu, 21 May 2026 15:43:33 +0500 Message-ID: <20260521104335.28978-3-mikhail.v.gavrilov@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260521104335.28978-1-mikhail.v.gavrilov@gmail.com> References: <20260520151741.50575-1-mikhail.v.gavrilov@gmail.com> <20260521104335.28978-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 dW1wX2Zvcm1hdCgpCmFjcXVpcmVkIHRoZSBWTSByb290IFBEJ3MgcmVzZXJ2YXRpb24gdmlhIGFt ZGdwdV92bV9sb2NrX2J5X3Bhc2lkKCkgYW5kCnRoZW4sIGZvciBlYWNoIElCLCBjYWxsZWQgYW1k Z3B1X2JvX3Jlc2VydmUoKSBvbiB0aGUgQk8gYmFja2luZyB0aGUgSUIuCkJvdGggcmVzZXJ2YXRp b25zIGFyZSByZXNlcnZhdGlvbl93d19jbGFzc19tdXRleCBvYmplY3RzIGFuZCBuZWl0aGVyCnVz ZWQgYSB3d19hY3F1aXJlX2N0eCwgd2hpY2ggdHJpcHMgbG9ja2RlcDoKCiAgV0FSTklORzogcG9z c2libGUgcmVjdXJzaXZlIGxvY2tpbmcgZGV0ZWN0ZWQKICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGt3b3JrZXIvdTEyODowIGlzIHRyeWluZyB0byBhY3F1 aXJlIGxvY2s6CiAgZmZmZjg4ODM4YjE2ZTFmMCAocmVzZXJ2YXRpb25fd3dfY2xhc3NfbXV0ZXgp eysuKy59LXs0OjR9LAogICAgYXQ6IGFtZGdwdV9kZXZjb3JlZHVtcF9mb3JtYXQrMHgxNTk0LzB4 MjNmMCBbYW1kZ3B1XQoKICBidXQgdGFzayBpcyBhbHJlYWR5IGhvbGRpbmcgbG9jazoKICBmZmZm ODg4MmY4MjY4MWYwIChyZXNlcnZhdGlvbl93d19jbGFzc19tdXRleCl7Ky4rLn0tezQ6NH0sCiAg ICBhdDogYW1kZ3B1X2RldmNvcmVkdW1wX2Zvcm1hdCsweDE1OTQvMHgyM2YwIFthbWRncHVdCgog ICBQb3NzaWJsZSB1bnNhZmUgbG9ja2luZyBzY2VuYXJpbzoKICAgICAgICAgQ1BVMAogICAgICAg ICAtLS0tCiAgICBsb2NrKHJlc2VydmF0aW9uX3d3X2NsYXNzX211dGV4KTsKICAgIGxvY2socmVz ZXJ2YXRpb25fd3dfY2xhc3NfbXV0ZXgpOwoKICAgKioqIERFQURMT0NLICoqKgogICBNYXkgYmUg ZHVlIHRvIG1pc3NpbmcgbG9jayBuZXN0aW5nIG5vdGF0aW9uCgogIFdvcmtxdWV1ZTogZXZlbnRz X3VuYm91bmQgYW1kZ3B1X2RldmNvcmVkdW1wX2RlZmVycmVkX3dvcmsgW2FtZGdwdV0KICBDYWxs IFRyYWNlOgogICBfX3d3X211dGV4X2xvY2suY29uc3Rwcm9wLjAKICAgd3dfbXV0ZXhfbG9jawog ICBhbWRncHVfYm9fcmVzZXJ2ZQogICBhbWRncHVfZGV2Y29yZWR1bXBfZm9ybWF0KzB4MTU5NCBb YW1kZ3B1XQogICBhbWRncHVfZGV2Y29yZWR1bXBfZGVmZXJyZWRfd29yaysweGVhIFthbWRncHVd CgpUaGUgdHdvIHJlc2VydmF0aW9ucyBhcmUgb24gZGlmZmVyZW50IEJPcyBpbiB0aGUgY2FwdHVy ZWQgdHJhY2UsIHNvIHRoZQpzcGxhdCBpcyBhIGxvY2tkZXAtY29ycmVjdG5lc3Mgd2FybmluZywg bm90IGFuIG9ic2VydmVkIGRlYWRsb2NrLiBJdApiZWNvbWVzIGEgcmVhbCBzZWxmLWRlYWRsb2Nr IHdoZW5ldmVyIHRoZSBJQiBCTyBzaGFyZXMgaXRzIGRtYV9yZXN2IHdpdGgKdGhlIHJvb3QgUEQg KHRoZSBhbHdheXMtdmFsaWQgY2FzZSwgc2VlIGFtZGdwdV92bV9pc19ib19hbHdheXNfdmFsaWQo KSk6CmFtZGdwdV9ib19yZXNlcnZlKGFibykgcmUtYWNxdWlyZXMgdGhlIHNhbWUgd3dfbXV0ZXgg d2l0aG91dCBhIHRpY2tldAphbmQgYmxvY2tzIGZvcmV2ZXIuCgpXaXRoIGFtZGdwdS5ncHVfcmVj b3Zlcnk9MCB0aGUgdGltZW91dCBoYW5kbGVyIHJlZmlyZXMgZXZlcnkgfjIgcyBhbmQKZWFjaCBp bnZvY2F0aW9uIHByb2R1Y2VzIHRoaXMgc3BsYXQsIGRyb3duaW5nIHRoZSBrZXJuZWwgcmluZyBi dWZmZXIuCgpOb3cgdGhhdCBhbWRncHVfdm1fbG9ja19ieV9wYXNpZCgpIHRha2VzIGEgZHJtX2V4 ZWMgY29udGV4dCwgbG9jayB0aGUKcm9vdCBQRCBhbmQgZXZlcnkgSUIgQk8gdG9nZXRoZXIgaW4g YSBzaW5nbGUgZHJtX2V4ZWMgdGlja2V0LgpEUk1fRVhFQ19JR05PUkVfRFVQTElDQVRFUyBoYW5k bGVzIElCIEJPcyB0aGF0IHNoYXJlIGEgZG1hX3Jlc3YgKGUuZy4KYWx3YXlzLXZhbGlkIEJPcywg b3IgdHdvIElCcyBiYWNrZWQgYnkgdGhlIHNhbWUgQk8pLiBFdmVyeSBsb2NrIGlzIG5vdwphIHRv cC1sZXZlbCBhY3F1aXJlIHVuZGVyIG9uZSB3d19hY3F1aXJlX2N0eCwgc28gdGhlIHJlY3Vyc2l2 ZSB3d19tdXRleApjb25kaXRpb24gaXMgZ29uZSwgYW5kIHRoZSBwZXItSUIgYW1kZ3B1X2JvX3Jl c2VydmUoKS9hbWRncHVfYm9fdW5yZWYoKQpkYW5jZSAtLSBpbmNsdWRpbmcgYSBCTyByZWZjb3Vu dCBsZWFrIG9uIHRoZSBhbWRncHVfYm9fcmVzZXJ2ZSgpIGZhaWx1cmUKcGF0aCAtLSBpcyByZW1v dmVkLgoKUmVwcm9kdWNlciAofjE1MCBMb0MgbGliZHJtX2FtZGdwdSk6IHN1Ym1pdCBhIHNpbmds ZSBHRlggSUIgY29udGFpbmluZwpQQUNLRVQzX0lORElSRUNUX0JVRkZFUiBjaGFpbmVkIGF0IEdQ VSBWQSAwIGFuZCB3YWl0IGZvciB0aGUgZmVuY2UuIFRoZQpURFIgZmlyZXMgd2l0aGluIH4xMCBz IGFuZCB0aGUgZGVmZXJyZWQgY29yZWR1bXAgd29ya2VyIHByb2R1Y2VzIHRoZQpzcGxhdCBhYm92 ZSBvbiBldmVyeSBpbnZvY2F0aW9uOyB3aXRoIHRoaXMgY2hhbmdlIGFwcGxpZWQgdGhlIHNwbGF0 IGlzCmdvbmUuCgpGaXhlczogN2IxNWZjMmQxZjFhICgiZHJtL2FtZGdwdTogZHVtcCBqb2IgaWJz IGluIHRoZSBkZXZjb3JlZHVtcCIpClN1Z2dlc3RlZC1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hy aXN0aWFuLmtvZW5pZ0BhbWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWtoYWlsIEdhdnJpbG92IDxt aWtoYWlsLnYuZ2F2cmlsb3ZAZ21haWwuY29tPgotLS0KIC4uLi9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2Rldl9jb3JlZHVtcC5jICB8IDEwNSArKysrKysrKysrKystLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2X2NvcmVkdW1wLmMgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2X2NvcmVkdW1wLmMKaW5kZXggZDM4NmJjNzc1 ZDAzLi40NTZlYTk5MTFkNDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9kZXZfY29yZWR1bXAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZGV2X2NvcmVkdW1wLmMKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgPGdlbmVy YXRlZC91dHNyZWxlYXNlLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2Y29yZWR1bXAuaD4KKyNpbmNs dWRlIDxkcm0vZHJtX2V4ZWMuaD4KICNpbmNsdWRlICJhbWRncHVfZGV2X2NvcmVkdW1wLmgiCiAj aW5jbHVkZSAiYXRvbS5oIgogCkBAIC0yMTQsMTMgKzIxNSw5IEBAIGFtZGdwdV9kZXZjb3JlZHVt cF9mb3JtYXQoY2hhciAqYnVmZmVyLCBzaXplX3QgY291bnQsIHN0cnVjdCBhbWRncHVfY29yZWR1 bXBfaW5mCiAJc3RydWN0IGRybV9wcmludGVyIHA7CiAJc3RydWN0IGRybV9wcmludF9pdGVyYXRv ciBpdGVyOwogCXN0cnVjdCBhbWRncHVfdm1fZmF1bHRfaW5mbyAqZmF1bHRfaW5mbzsKLQlzdHJ1 Y3QgYW1kZ3B1X2JvX3ZhX21hcHBpbmcgKm1hcHBpbmc7CiAJc3RydWN0IGFtZGdwdV9pcF9ibG9j ayAqaXBfYmxvY2s7CiAJc3RydWN0IGFtZGdwdV9yZXNfY3Vyc29yIGN1cnNvcjsKLQlzdHJ1Y3Qg YW1kZ3B1X2JvICphYm8sICpyb290OwotCXVpbnQ2NF90IHZhX3N0YXJ0LCBvZmZzZXQ7CiAJc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nOwotCXN0cnVjdCBhbWRncHVfdm0gKnZtOwogCXUzMiAqaWJf Y29udGVudDsKIAl1aW50OF90ICprcHRyOwogCWludCB2ZXIsIGksIGosIHI7CkBAIC0zNDMsNDMg KzM0MCw4NCBAQCBhbWRncHVfZGV2Y29yZWR1bXBfZm9ybWF0KGNoYXIgKmJ1ZmZlciwgc2l6ZV90 IGNvdW50LCBzdHJ1Y3QgYW1kZ3B1X2NvcmVkdW1wX2luZgogCQlkcm1fcHJpbnRmKCZwLCAiVlJB TSBpcyBsb3N0IGR1ZSB0byBHUFUgcmVzZXQhXG4iKTsKIAogCWlmIChjb3JlZHVtcC0+bnVtX2li cykgewotCQkvKiBEb24ndCB0cnkgdG8gbG9va3VwIHRoZSBWTSBvciBtYXAgdGhlIEJPcyB3aGVu IGNhbGN1bGF0aW5nIHRoZQotCQkgKiBzaXplIHJlcXVpcmVkIHRvIHN0b3JlIHRoZSBkZXZjb3Jl ZHVtcC4KKwkJc3RydWN0IGFtZGdwdV9ib192YV9tYXBwaW5nICptYXBwaW5nOworCQlzdHJ1Y3Qg YW1kZ3B1X2JvICphYm87CisJCXN0cnVjdCBkcm1fZXhlYyBleGVjOworCQlzdHJ1Y3QgYW1kZ3B1 X3ZtICp2bTsKKwkJdTY0IHZhX3N0YXJ0LCBvZmZzZXQ7CisJCWJvb2wgbG9ja2VkID0gZmFsc2U7 CisKKwkJLyoKKwkJICogTG9jayB0aGUgVk0gcm9vdCBQRCBhbmQgZXZlcnkgSUIgQk8gdG9nZXRo ZXIgaW4gYSBzaW5nbGUKKwkJICogZHJtX2V4ZWMgdGlja2V0LiBSZXNlcnZpbmcgdGhlIElCIEJP cyBvbmUgYnkgb25lIHdoaWxlIHRoZQorCQkgKiByb290IFBEIGlzIGhlbGQgd291bGQgYmUgYSBy ZWN1cnNpdmUgcmVzZXJ2YXRpb25fd3dfY2xhc3NfbXV0ZXgKKwkJICogYWNxdWlyZSB3aXRob3V0 IGEgd3dfYWNxdWlyZV9jdHgsIHdoaWNoIHRyaXBzIGxvY2tkZXAgYW5kCisJCSAqIHNlbGYtZGVh ZGxvY2tzIGZvciBJQiBCT3MgdGhhdCBzaGFyZSB0aGVpciBkbWFfcmVzdiB3aXRoIHRoZQorCQkg KiByb290IFBEIChhbHdheXMtdmFsaWQgQk9zKS4KKwkJICoKKwkJICogU2tpcCBsb2NraW5nIGVu dGlyZWx5IG9uIHRoZSBzaXppbmcgcGFzczogaXQgZG9lcyBub3Qgd3JpdGUKKwkJICogSUIgY29u dGVudCwgc28gdGhlIHNpemUgZXN0aW1hdGUgZG9lc24ndCBkZXBlbmQgb24gd2hldGhlcgorCQkg KiB0aGUgQk9zIGFyZSByZWFjaGFibGUuCiAJCSAqLwotCQlpZiAoc2l6aW5nX3Bhc3MpCi0JCQl2 bSA9IE5VTEw7Ci0JCWVsc2UKLQkJCXZtID0gYW1kZ3B1X3ZtX2xvY2tfYnlfcGFzaWQoYWRldiwg JnJvb3QsIGNvcmVkdW1wLT5wYXNpZCk7CisJCWlmICghc2l6aW5nX3Bhc3MpIHsKKwkJCWRybV9l eGVjX2luaXQoJmV4ZWMsIERSTV9FWEVDX0lHTk9SRV9EVVBMSUNBVEVTLAorCQkJCSAgICAgIDEg KyBjb3JlZHVtcC0+bnVtX2licyk7CisJCQlkcm1fZXhlY191bnRpbF9hbGxfbG9ja2VkKCZleGVj KSB7CisJCQkJdm0gPSBhbWRncHVfdm1fbG9ja19ieV9wYXNpZChhZGV2LCBjb3JlZHVtcC0+cGFz aWQsCisJCQkJCQkJICAgICAmZXhlYyk7CisJCQkJZHJtX2V4ZWNfcmV0cnlfb25fY29udGVudGlv bigmZXhlYyk7CisJCQkJaWYgKCF2bSkKKwkJCQkJYnJlYWs7CisKKwkJCQlmb3IgKGludCBpID0g MDsgaSA8IGNvcmVkdW1wLT5udW1faWJzOyBpKyspIHsKKwkJCQkJdTY0IHBmbjsKKworCQkJCQl2 YV9zdGFydCA9IGNvcmVkdW1wLT5pYnNbaV0uZ3B1X2FkZHIgJgorCQkJCQkJICAgQU1ER1BVX0dN Q19IT0xFX01BU0s7CisJCQkJCXBmbiA9IHZhX3N0YXJ0IC8gQU1ER1BVX0dQVV9QQUdFX1NJWkU7 CisJCQkJCW1hcHBpbmcgPSBhbWRncHVfdm1fYm9fbG9va3VwX21hcHBpbmcodm0sIHBmbik7CisJ CQkJCWlmICghbWFwcGluZykKKwkJCQkJCWNvbnRpbnVlOworCisJCQkJCWFibyA9IG1hcHBpbmct PmJvX3ZhLT5iYXNlLmJvOworCQkJCQlyID0gZHJtX2V4ZWNfbG9ja19vYmooJmV4ZWMsICZhYm8t PnRiby5iYXNlKTsKKwkJCQkJZHJtX2V4ZWNfcmV0cnlfb25fY29udGVudGlvbigmZXhlYyk7CisJ CQkJCWlmIChyKQorCQkJCQkJYnJlYWs7CisJCQkJfQorCQkJCWlmIChyKQorCQkJCQlicmVhazsK KwkJCX0KKwkJCWlmICh2bSAmJiAhcikKKwkJCQlsb2NrZWQgPSB0cnVlOworCQkJZWxzZQorCQkJ CWRybV9leGVjX2ZpbmkoJmV4ZWMpOworCQl9CisKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBjb3Jl ZHVtcC0+bnVtX2liczsgaSsrKSB7CisJCQlib29sIGVtaXRfY29udGVudCA9IHNpemluZ19wYXNz OwogCi0JCWZvciAoaW50IGkgPSAwOyBpIDwgY29yZWR1bXAtPm51bV9pYnMgJiYgKHNpemluZ19w YXNzIHx8IHZtKTsgaSsrKSB7CiAJCQlpYl9jb250ZW50ID0ga3ZtYWxsb2NfYXJyYXkoY29yZWR1 bXAtPmlic1tpXS5pYl9zaXplX2R3LCA0LAogCQkJCQkJICAgIEdGUF9LRVJORUwpOwogCQkJaWYg KCFpYl9jb250ZW50KQogCQkJCWNvbnRpbnVlOwogCi0JCQkvKiB2bT1OVUxMIGNhbiBvbmx5IGhh cHBlbiB3aGVuICdzaXppbmdfcGFzcycgaXMgdHJ1ZS4gU2tpcCB0byB0aGUKLQkJCSAqIGRybV9w cmludGYoKSBjYWxscyAoaWJfY29udGVudCBkb2Vzbid0IG5lZWQgdG8gYmUgaW5pdGlhbGl6ZWQK LQkJCSAqIGFzIGl0cyBjb250ZW50IHdvbid0IGJlIHdyaXR0ZW4gYW55d2hlcmUpLgotCQkJICov Ci0JCQlpZiAoIXZtKQorCQkJaWYgKCFsb2NrZWQpCiAJCQkJZ290byBvdXRwdXRfaWJfY29udGVu dDsKIAogCQkJdmFfc3RhcnQgPSBjb3JlZHVtcC0+aWJzW2ldLmdwdV9hZGRyICYgQU1ER1BVX0dN Q19IT0xFX01BU0s7CiAJCQltYXBwaW5nID0gYW1kZ3B1X3ZtX2JvX2xvb2t1cF9tYXBwaW5nKHZt LCB2YV9zdGFydCAvIEFNREdQVV9HUFVfUEFHRV9TSVpFKTsKIAkJCWlmICghbWFwcGluZykKLQkJ CQlnb3RvIGZyZWVfaWJfY29udGVudDsKKwkJCQlnb3RvIG91dHB1dF9pYl9jb250ZW50OwogCi0J CQlvZmZzZXQgPSB2YV9zdGFydCAtIChtYXBwaW5nLT5zdGFydCAqIEFNREdQVV9HUFVfUEFHRV9T SVpFKTsKLQkJCWFibyA9IGFtZGdwdV9ib19yZWYobWFwcGluZy0+Ym9fdmEtPmJhc2UuYm8pOwot CQkJciA9IGFtZGdwdV9ib19yZXNlcnZlKGFibywgZmFsc2UpOwotCQkJaWYgKHIpCi0JCQkJZ290 byBmcmVlX2liX2NvbnRlbnQ7CisJCQlhYm8gPSBtYXBwaW5nLT5ib192YS0+YmFzZS5ibzsKKwkJ CW9mZnNldCA9IHZhX3N0YXJ0IC0gbWFwcGluZy0+c3RhcnQgKiBBTURHUFVfR1BVX1BBR0VfU0la RTsKIAogCQkJaWYgKGFiby0+ZmxhZ3MgJiBBTURHUFVfR0VNX0NSRUFURV9OT19DUFVfQUNDRVNT KSB7CiAJCQkJb2ZmID0gMDsKIAogCQkJCWlmIChhYm8tPnRiby5yZXNvdXJjZS0+bWVtX3R5cGUg IT0gVFRNX1BMX1ZSQU0pCi0JCQkJCWdvdG8gdW5yZXNlcnZlX2FibzsKKwkJCQkJZ290byBvdXRw dXRfaWJfY29udGVudDsKIAogCQkJCWFtZGdwdV9yZXNfZmlyc3QoYWJvLT50Ym8ucmVzb3VyY2Us IG9mZnNldCwKIAkJCQkJCSBjb3JlZHVtcC0+aWJzW2ldLmliX3NpemVfZHcgKiA0LApAQCAtMzkx LDEyICs0MjksMTMgQEAgYW1kZ3B1X2RldmNvcmVkdW1wX2Zvcm1hdChjaGFyICpidWZmZXIsIHNp emVfdCBjb3VudCwgc3RydWN0IGFtZGdwdV9jb3JlZHVtcF9pbmYKIAkJCQkJb2ZmICs9IGN1cnNv ci5zaXplOwogCQkJCQlhbWRncHVfcmVzX25leHQoJmN1cnNvciwgY3Vyc29yLnNpemUpOwogCQkJ CX0KKwkJCQllbWl0X2NvbnRlbnQgPSB0cnVlOwogCQkJfSBlbHNlIHsKIAkJCQlyID0gdHRtX2Jv X2ttYXAoJmFiby0+dGJvLCAwLAogCQkJCQkJUEZOX1VQKGFiby0+dGJvLmJhc2Uuc2l6ZSksCiAJ CQkJCQkmYWJvLT5rbWFwKTsKIAkJCQlpZiAocikKLQkJCQkJZ290byB1bnJlc2VydmVfYWJvOwor CQkJCQlnb3RvIG91dHB1dF9pYl9jb250ZW50OwogCiAJCQkJa3B0ciA9IGFtZGdwdV9ib19rcHRy KGFibyk7CiAJCQkJa3B0ciArPSBvZmZzZXQ7CkBAIC00MDQsMjMgKzQ0MywyMSBAQCBhbWRncHVf ZGV2Y29yZWR1bXBfZm9ybWF0KGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGNvdW50LCBzdHJ1Y3QgYW1k Z3B1X2NvcmVkdW1wX2luZgogCQkJCSAgICAgICBjb3JlZHVtcC0+aWJzW2ldLmliX3NpemVfZHcg KiA0KTsKIAogCQkJCWFtZGdwdV9ib19rdW5tYXAoYWJvKTsKKwkJCQllbWl0X2NvbnRlbnQgPSB0 cnVlOwogCQkJfQogCiBvdXRwdXRfaWJfY29udGVudDoKIAkJCWRybV9wcmludGYoJnAsICJcbklC ICMlZCAweCVsbHggJWQgZHdcbiIsCiAJCQkJICAgaSwgY29yZWR1bXAtPmlic1tpXS5ncHVfYWRk ciwgY29yZWR1bXAtPmlic1tpXS5pYl9zaXplX2R3KTsKLQkJCWZvciAoaW50IGogPSAwOyBqIDwg Y29yZWR1bXAtPmlic1tpXS5pYl9zaXplX2R3OyBqKyspCi0JCQkJZHJtX3ByaW50ZigmcCwgIjB4 JTA4eFxuIiwgaWJfY29udGVudFtqXSk7Ci11bnJlc2VydmVfYWJvOgotCQkJaWYgKHZtKQotCQkJ CWFtZGdwdV9ib191bnJlc2VydmUoYWJvKTsKLWZyZWVfaWJfY29udGVudDoKKwkJCWlmIChlbWl0 X2NvbnRlbnQpIHsKKwkJCQlmb3IgKGludCBqID0gMDsgaiA8IGNvcmVkdW1wLT5pYnNbaV0uaWJf c2l6ZV9kdzsgaisrKQorCQkJCQlkcm1fcHJpbnRmKCZwLCAiMHglMDh4XG4iLCBpYl9jb250ZW50 W2pdKTsKKwkJCX0KIAkJCWt2ZnJlZShpYl9jb250ZW50KTsKIAkJfQotCQlpZiAodm0pIHsKLQkJ CWFtZGdwdV9ib191bnJlc2VydmUocm9vdCk7Ci0JCQlhbWRncHVfYm9fdW5yZWYoJnJvb3QpOwot CQl9CisKKwkJaWYgKGxvY2tlZCkKKwkJCWRybV9leGVjX2ZpbmkoJmV4ZWMpOwogCX0KIAogCXJl dHVybiBjb3VudCAtIGl0ZXIucmVtYWluOwotLSAKMi41NC4wCgo=