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 F3F2CCD5BB5 for ; Thu, 21 May 2026 15:08:58 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5B7D310F39B; Thu, 21 May 2026 15:08:58 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="G6Vgu8j3"; dkim-atps=neutral Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2081F10F3A3 for ; Thu, 21 May 2026 15:08:52 +0000 (UTC) Received: by mail-lf1-f42.google.com with SMTP id 2adb3069b0e04-5a887ebb416so7559299e87.2 for ; Thu, 21 May 2026 08:08:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779376130; x=1779980930; 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=G6Vgu8j3lThph8oLczX9M1s7DHvj+IugLsxm5N+WKEAoS43uWnAKdKXxaeS0xNgwbJ SHMun+ZJmqBr3hx8nbej671sQ+71md17gl+Wh3V6mTK80k6fvC+rShYdPK92iAo187kx w67e8BuFmRlR9teZGHERyOnjoUb5xzYClOHMs4vxYbl2RMgjeIHridWadJIcv2RlrOlI lJH1qzPREsLmiWcm8A00L5/kexEmgJJunZXwungHKTDGjLmxqsd3XMkBKE39YKM9cnjC noeMl7fBTcW/ufTQEU0RP3vXi6QLNcgHubd/q/n3YNMU+3WLtdRuTeRo0jF6gKYGKEYI z/ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779376130; x=1779980930; 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=PFiMQG07Lj+vCsvFhzz6P7/6Rguou49a/nkA4Ud2mf2XwTwhPTweeCrJbdXDdMhd+w hilLLwG0Mz8/mBV6ZiH4GvgrQkO+5Iq2j8BsQiDNpdOEJuOxQeA85oiemXgainRp3h2o h68c+DOD4QQ3MP3uRO34OZOoiTZr4eO0CDLJhAAUJK03zvmPX5H34nL3cEiQ+CU9XW7i p7LYuhJXLxp8U3Yx7y4z0VCcdBqBza2w+npbdSCtaVift3KTxr0CYypaimsKQZdyGeIg tOfXQgvzH0uWNDsasIhsaP68nZ9ogg5bvKuGXhvaK1KVbaaNvOgmK3PRmIcB9Xi6Z8jS eBMw== X-Forwarded-Encrypted: i=1; AFNElJ+Lr6k2NDnJAVkz1O1IalCKaUghnzFpw83SnRyuotIXZvesxFFhc+lke/HrT7UtWi4lRHPIA+EbLmQ=@lists.freedesktop.org X-Gm-Message-State: AOJu0Yx+63pILCBKaJXsKOlw75NHqVDD2rToNcLb5+rPdOUIWSG8pnE0 dazDWpwjH1+G2hi0Z5zH3DdJYL4LOhGXLY5oeysG0gx1MrZD6RB4c5nc X-Gm-Gg: Acq92OGVNJjHtzE4NM/trQnuJG2tRBE89bNrc04dgcC4j2a1ZVjxjUjhCj2AamArWTI AQQxOBY1MCQUBXvGiKPfQzOTBWhEBkFwCu/FFMilGDTlI61lpHLaMpAMGykcHC96LdAW/f0APTA I/jr54NxtMn8pbUm2csPTI1wlA8Eu4mc+IRwv+yQlw+3fUhbq5RjYGYcJB6/CRoi5gd0Jc6B20A +CqLerunsy9Xav+Cep7glFQ9a4ezdZ2g4eW+U0WqyygqMxZAPBIpJVmcBeuSlIGXc3GirMp5zDl +a1rPS979wVn45k27kwDS7Dw1/scXEZiF5twiwx14S43LV9C3lK9DSejGpnzOYxgoazER6yNJKx 3lFow2Dq+e8NEagOMhWij3TC5pSQYEm3Sn5RbRsaXq7QfRjo+B2WzFCXixS0fBE6lWAx5wC/1Ci +7PWmFNRAxkT0C4LU0Oeep6+KQAO7LEvtK X-Received: by 2002:ac2:5dcd:0:b0:5a8:a754:f9d5 with SMTP id 2adb3069b0e04-5aa2ba9ac3bmr843915e87.39.1779376130152; Thu, 21 May 2026 08:08:50 -0700 (PDT) Received: from localhost ([188.234.148.119]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aa2f120c6esm335686e87.19.2026.05.21.08.08.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 May 2026 08:08:49 -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 v5 2/2] drm/amdgpu: fix recursive ww_mutex acquire in amdgpu_devcoredump_format Date: Thu, 21 May 2026 20:08:40 +0500 Message-ID: <20260521150841.20625-3-mikhail.v.gavrilov@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260521150841.20625-1-mikhail.v.gavrilov@gmail.com> References: <20260521104335.28978-1-mikhail.v.gavrilov@gmail.com> <20260521150841.20625-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=