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 2965CCD5BAB for ; Wed, 20 May 2026 15:17:58 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5790610F0BD; Wed, 20 May 2026 15:17:57 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="k6pHgPIA"; dkim-atps=neutral Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7A53A10F0B7 for ; Wed, 20 May 2026 15:17:53 +0000 (UTC) Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-5a746f9c092so7993533e87.1 for ; Wed, 20 May 2026 08:17:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779290272; x=1779895072; 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=K81Nh8nBOwZaTCEqstpBUGuFaakdxNh2S8dsFKzzkkM=; b=k6pHgPIAAWuGJDPz8D1eVE/NYYL8a0V2CAnyB8eEta4C93n948bfzd4gy22YYcd/zX Me0CalnVD7oktyL3IkVmE9vIW6uiUC7h/Zt90YjqCmc4+0HoDlfVkEq4ecN9zE29TZIK HoAr+W8tC3Kivb4htz8IhyqM4B5qt4D45rWh4lpQ+p0faDaVAErFdtZGi519WWnAHquA puQlPMAeppIgIaox1bQePE3nLkQmejvSMXn8z+zw5dTij59mPVlcy/1BC0R9zmwAP4m0 ac4cmcrkk14VcZQ0XdcsfGaaZNrhLNQFEr5uqMSCY9NYRXtvtJ7Rq4i1gYaq32fL69Yv rVSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779290272; x=1779895072; 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=K81Nh8nBOwZaTCEqstpBUGuFaakdxNh2S8dsFKzzkkM=; b=quNtdkI+LT1pcGY4Q/1w12qLcVHTagK0urmp1qp9ppFAbSkl9IR7IRqd2K+pIesjX3 8P6HxyNOgQZBtSbT3hq2pBw5VI6++Uu5NXUw6aFq+YvkS8v20RmAMw+ZvM1kExnCm5M5 1VMveCkW5GeOEq2KFyOnxDsC4FL4q38zFjM8IilmYhq2lj9rSvywEs9ULI+uShg4fvo3 av4tBbuq5SIGX0+wuekBgQVwz4aaNPJL9eLI3i1drcqP7RDFGYlfh2aQsgA6eJyYnxi8 IzT6KSNuxSe2Ya8OjEYOuxs9PUFchoetrg2wtK/akGZ1v2U3WxxDTdQdXEELU4ssBrAH 9lEA== X-Forwarded-Encrypted: i=1; AFNElJ9NyTe+irTTbcngW/xtJ6svsfjEL++K50prhQiUdeUnzimJrZwOTNXZDxXAJMTkBDf4HYweuDyfCWI=@lists.freedesktop.org X-Gm-Message-State: AOJu0Yxlf1reaQjLYXWMfz5Ae17sFpoPXKUW05YzVm3XouNAa5QVP5hz b81SoF5YUHj8x4mn0k/W9eTLmpiFnZxLOrAPnP39kSHgzXQXrjXrXD0I X-Gm-Gg: Acq92OHHubB45orAMRo0lH/zOerXhbjsh0OdVXdNs5GvUSpl2MHm17SZov3xaEEvYj6 6wDDYLhk8wKBoK1KIsTXvW6dS2JWpKsUopN9AocTguDGkdAMrZcNAo65zZq6ng3rLXKWj98AIFC 75uT/TpPp83PZyaL8s22HDIkufwxrw8IbqwObHw6uvnzmwBtfGHV+spRwzbLYre5CmN+3KlrY43 z/MZnNUnDjYbOFOjCQYJ5n/6wkTz/E/2gzd/aIH2yUgEUr/oo7vlmlyLatsZM1a5N1TswTRPrBl wf2xeNHDyj8LIh3yPjVgh6aKu4Rb+m/c+GzJJRFusscfc1MA6rkqvKutKfCzlcpkq/+vZLYG11D B9VCcE/S5nZnGWakSu7PiSzgJ/y1K/TD4YDMG+rHXs/GNASZ/k8j7KQdduLaHRS+i4pCFhgpfCq RQlIXaads2TVEfWG7b3QMMROpQOHn4fyu8IRX4Msjo2Dg= X-Received: by 2002:ac2:4e01:0:b0:5a4:b02:66b1 with SMTP id 2adb3069b0e04-5aa0de8aa10mr6131035e87.9.1779290271462; Wed, 20 May 2026 08:17:51 -0700 (PDT) Received: from localhost ([188.234.148.119]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a90f10c8b2sm5022470e87.17.2026.05.20.08.17.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 08:17:50 -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 v3 2/2] drm/amdgpu: fix recursive ww_mutex acquire in amdgpu_devcoredump_format Date: Wed, 20 May 2026 20:17:40 +0500 Message-ID: <20260520151741.50575-3-mikhail.v.gavrilov@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260520151741.50575-1-mikhail.v.gavrilov@gmail.com> References: <20260429143743.50743-1-mikhail.v.gavrilov@gmail.com> <20260520151741.50575-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 YW1kZ3B1X2Rldl9jb3JlZHVtcC5jICB8IDEwMyArKysrKysrKysrKystLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2X2NvcmVkdW1wLmMgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2X2NvcmVkdW1wLmMKaW5kZXggZDM4NmJjNzc1 ZDAzLi5hOWQ4ZTAzZmFkODMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9kZXZfY29yZWR1bXAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZGV2X2NvcmVkdW1wLmMKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgPGdlbmVy YXRlZC91dHNyZWxlYXNlLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2Y29yZWR1bXAuaD4KKyNpbmNs dWRlIDxkcm0vZHJtX2V4ZWMuaD4KICNpbmNsdWRlICJhbWRncHVfZGV2X2NvcmVkdW1wLmgiCiAj aW5jbHVkZSAiYXRvbS5oIgogCkBAIC0yMTQsMTMgKzIxNSw5IEBAIGFtZGdwdV9kZXZjb3JlZHVt cF9mb3JtYXQoY2hhciAqYnVmZmVyLCBzaXplX3QgY291bnQsIHN0cnVjdCBhbWRncHVfY29yZWR1 bXBfaW5mCiAJc3RydWN0IGRybV9wcmludGVyIHA7CiAJc3RydWN0IGRybV9wcmludF9pdGVyYXRv ciBpdGVyOwogCXN0cnVjdCBhbWRncHVfdm1fZmF1bHRfaW5mbyAqZmF1bHRfaW5mbzsKLQlzdHJ1 Y3QgYW1kZ3B1X2JvX3ZhX21hcHBpbmcgKm1hcHBpbmc7CiAJc3RydWN0IGFtZGdwdV9pcF9ibG9j ayAqaXBfYmxvY2s7CiAJc3RydWN0IGFtZGdwdV9yZXNfY3Vyc29yIGN1cnNvcjsKLQlzdHJ1Y3Qg YW1kZ3B1X2JvICphYm8sICpyb290OwotCXVpbnQ2NF90IHZhX3N0YXJ0LCBvZmZzZXQ7CiAJc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nOwotCXN0cnVjdCBhbWRncHVfdm0gKnZtOwogCXUzMiAqaWJf Y29udGVudDsKIAl1aW50OF90ICprcHRyOwogCWludCB2ZXIsIGksIGosIHI7CkBAIC0zNDMsNDMg KzM0MCw4NCBAQCBhbWRncHVfZGV2Y29yZWR1bXBfZm9ybWF0KGNoYXIgKmJ1ZmZlciwgc2l6ZV90 IGNvdW50LCBzdHJ1Y3QgYW1kZ3B1X2NvcmVkdW1wX2luZgogCQlkcm1fcHJpbnRmKCZwLCAiVlJB TSBpcyBsb3N0IGR1ZSB0byBHUFUgcmVzZXQhXG4iKTsKIAogCWlmIChjb3JlZHVtcC0+bnVtX2li cykgewotCQkvKiBEb24ndCB0cnkgdG8gbG9va3VwIHRoZSBWTSBvciBtYXAgdGhlIEJPcyB3aGVu IGNhbGN1bGF0aW5nIHRoZQotCQkgKiBzaXplIHJlcXVpcmVkIHRvIHN0b3JlIHRoZSBkZXZjb3Jl ZHVtcC4KKwkJc3RydWN0IGFtZGdwdV9ib192YV9tYXBwaW5nICptYXBwaW5nOworCQlzdHJ1Y3Qg YW1kZ3B1X2JvICpyb290LCAqYWJvOworCQlzdHJ1Y3QgZHJtX2V4ZWMgZXhlYzsKKwkJc3RydWN0 IGFtZGdwdV92bSAqdm07CisJCXU2NCB2YV9zdGFydCwgb2Zmc2V0OworCQlib29sIGxvY2tlZCA9 IGZhbHNlOworCisJCS8qCisJCSAqIExvY2sgdGhlIFZNIHJvb3QgUEQgYW5kIGV2ZXJ5IElCIEJP IHRvZ2V0aGVyIGluIGEgc2luZ2xlCisJCSAqIGRybV9leGVjIHRpY2tldC4gUmVzZXJ2aW5nIHRo ZSBJQiBCT3Mgb25lIGJ5IG9uZSB3aGlsZSB0aGUKKwkJICogcm9vdCBQRCBpcyBoZWxkIHdvdWxk IGJlIGEgcmVjdXJzaXZlIHJlc2VydmF0aW9uX3d3X2NsYXNzX211dGV4CisJCSAqIGFjcXVpcmUg d2l0aG91dCBhIHd3X2FjcXVpcmVfY3R4LCB3aGljaCB0cmlwcyBsb2NrZGVwIGFuZAorCQkgKiBz ZWxmLWRlYWRsb2NrcyBmb3IgSUIgQk9zIHRoYXQgc2hhcmUgdGhlaXIgZG1hX3Jlc3Ygd2l0aCB0 aGUKKwkJICogcm9vdCBQRCAoYWx3YXlzLXZhbGlkIEJPcykuCisJCSAqCisJCSAqIFNraXAgbG9j a2luZyBlbnRpcmVseSBvbiB0aGUgc2l6aW5nIHBhc3M6IGl0IGRvZXMgbm90IHdyaXRlCisJCSAq IElCIGNvbnRlbnQsIHNvIHRoZSBzaXplIGVzdGltYXRlIGRvZXNuJ3QgZGVwZW5kIG9uIHdoZXRo ZXIKKwkJICogdGhlIEJPcyBhcmUgcmVhY2hhYmxlLgogCQkgKi8KLQkJaWYgKHNpemluZ19wYXNz KQotCQkJdm0gPSBOVUxMOwotCQllbHNlCi0JCQl2bSA9IGFtZGdwdV92bV9sb2NrX2J5X3Bhc2lk KGFkZXYsICZyb290LCBjb3JlZHVtcC0+cGFzaWQpOworCQlpZiAoIXNpemluZ19wYXNzKSB7CisJ CQlkcm1fZXhlY19pbml0KCZleGVjLCBEUk1fRVhFQ19JR05PUkVfRFVQTElDQVRFUywKKwkJCQkg ICAgICAxICsgY29yZWR1bXAtPm51bV9pYnMpOworCQkJZHJtX2V4ZWNfdW50aWxfYWxsX2xvY2tl ZCgmZXhlYykgeworCQkJCXZtID0gYW1kZ3B1X3ZtX2xvY2tfYnlfcGFzaWQoYWRldiwgJnJvb3Qs CisJCQkJCQkJICAgICBjb3JlZHVtcC0+cGFzaWQsICZleGVjKTsKKwkJCQlkcm1fZXhlY19yZXRy eV9vbl9jb250ZW50aW9uKCZleGVjKTsKKwkJCQlpZiAoIXZtKQorCQkJCQlicmVhazsKKworCQkJ CWZvciAoaW50IGkgPSAwOyBpIDwgY29yZWR1bXAtPm51bV9pYnM7IGkrKykgeworCQkJCQl1NjQg cGZuOworCisJCQkJCXZhX3N0YXJ0ID0gY29yZWR1bXAtPmlic1tpXS5ncHVfYWRkciAmCisJCQkJ CQkgICBBTURHUFVfR01DX0hPTEVfTUFTSzsKKwkJCQkJcGZuID0gdmFfc3RhcnQgLyBBTURHUFVf R1BVX1BBR0VfU0laRTsKKwkJCQkJbWFwcGluZyA9IGFtZGdwdV92bV9ib19sb29rdXBfbWFwcGlu Zyh2bSwgcGZuKTsKKwkJCQkJaWYgKCFtYXBwaW5nKQorCQkJCQkJY29udGludWU7CisKKwkJCQkJ YWJvID0gbWFwcGluZy0+Ym9fdmEtPmJhc2UuYm87CisJCQkJCXIgPSBkcm1fZXhlY19sb2NrX29i aigmZXhlYywgJmFiby0+dGJvLmJhc2UpOworCQkJCQlkcm1fZXhlY19yZXRyeV9vbl9jb250ZW50 aW9uKCZleGVjKTsKKwkJCQkJaWYgKHIpCisJCQkJCQlicmVhazsKKwkJCQl9CisJCQkJaWYgKHIp CisJCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKHZtICYmICFyKQorCQkJCWxvY2tlZCA9IHRydWU7 CisJCQllbHNlCisJCQkJZHJtX2V4ZWNfZmluaSgmZXhlYyk7CisJCX0KKworCQlmb3IgKGludCBp ID0gMDsgaSA8IGNvcmVkdW1wLT5udW1faWJzOyBpKyspIHsKKwkJCWJvb2wgZW1pdF9jb250ZW50 ID0gc2l6aW5nX3Bhc3M7CiAKLQkJZm9yIChpbnQgaSA9IDA7IGkgPCBjb3JlZHVtcC0+bnVtX2li cyAmJiAoc2l6aW5nX3Bhc3MgfHwgdm0pOyBpKyspIHsKIAkJCWliX2NvbnRlbnQgPSBrdm1hbGxv Y19hcnJheShjb3JlZHVtcC0+aWJzW2ldLmliX3NpemVfZHcsIDQsCiAJCQkJCQkgICAgR0ZQX0tF Uk5FTCk7CiAJCQlpZiAoIWliX2NvbnRlbnQpCiAJCQkJY29udGludWU7CiAKLQkJCS8qIHZtPU5V TEwgY2FuIG9ubHkgaGFwcGVuIHdoZW4gJ3NpemluZ19wYXNzJyBpcyB0cnVlLiBTa2lwIHRvIHRo ZQotCQkJICogZHJtX3ByaW50ZigpIGNhbGxzIChpYl9jb250ZW50IGRvZXNuJ3QgbmVlZCB0byBi ZSBpbml0aWFsaXplZAotCQkJICogYXMgaXRzIGNvbnRlbnQgd29uJ3QgYmUgd3JpdHRlbiBhbnl3 aGVyZSkuCi0JCQkgKi8KLQkJCWlmICghdm0pCisJCQlpZiAoIWxvY2tlZCkKIAkJCQlnb3RvIG91 dHB1dF9pYl9jb250ZW50OwogCiAJCQl2YV9zdGFydCA9IGNvcmVkdW1wLT5pYnNbaV0uZ3B1X2Fk ZHIgJiBBTURHUFVfR01DX0hPTEVfTUFTSzsKIAkJCW1hcHBpbmcgPSBhbWRncHVfdm1fYm9fbG9v a3VwX21hcHBpbmcodm0sIHZhX3N0YXJ0IC8gQU1ER1BVX0dQVV9QQUdFX1NJWkUpOwogCQkJaWYg KCFtYXBwaW5nKQotCQkJCWdvdG8gZnJlZV9pYl9jb250ZW50OworCQkJCWdvdG8gb3V0cHV0X2li X2NvbnRlbnQ7CiAKLQkJCW9mZnNldCA9IHZhX3N0YXJ0IC0gKG1hcHBpbmctPnN0YXJ0ICogQU1E R1BVX0dQVV9QQUdFX1NJWkUpOwotCQkJYWJvID0gYW1kZ3B1X2JvX3JlZihtYXBwaW5nLT5ib192 YS0+YmFzZS5ibyk7Ci0JCQlyID0gYW1kZ3B1X2JvX3Jlc2VydmUoYWJvLCBmYWxzZSk7Ci0JCQlp ZiAocikKLQkJCQlnb3RvIGZyZWVfaWJfY29udGVudDsKKwkJCWFibyA9IG1hcHBpbmctPmJvX3Zh LT5iYXNlLmJvOworCQkJb2Zmc2V0ID0gdmFfc3RhcnQgLSBtYXBwaW5nLT5zdGFydCAqIEFNREdQ VV9HUFVfUEFHRV9TSVpFOwogCiAJCQlpZiAoYWJvLT5mbGFncyAmIEFNREdQVV9HRU1fQ1JFQVRF X05PX0NQVV9BQ0NFU1MpIHsKIAkJCQlvZmYgPSAwOwogCiAJCQkJaWYgKGFiby0+dGJvLnJlc291 cmNlLT5tZW1fdHlwZSAhPSBUVE1fUExfVlJBTSkKLQkJCQkJZ290byB1bnJlc2VydmVfYWJvOwor CQkJCQlnb3RvIG91dHB1dF9pYl9jb250ZW50OwogCiAJCQkJYW1kZ3B1X3Jlc19maXJzdChhYm8t PnRiby5yZXNvdXJjZSwgb2Zmc2V0LAogCQkJCQkJIGNvcmVkdW1wLT5pYnNbaV0uaWJfc2l6ZV9k dyAqIDQsCkBAIC0zOTEsMTIgKzQyOSwxMyBAQCBhbWRncHVfZGV2Y29yZWR1bXBfZm9ybWF0KGNo YXIgKmJ1ZmZlciwgc2l6ZV90IGNvdW50LCBzdHJ1Y3QgYW1kZ3B1X2NvcmVkdW1wX2luZgogCQkJ CQlvZmYgKz0gY3Vyc29yLnNpemU7CiAJCQkJCWFtZGdwdV9yZXNfbmV4dCgmY3Vyc29yLCBjdXJz b3Iuc2l6ZSk7CiAJCQkJfQorCQkJCWVtaXRfY29udGVudCA9IHRydWU7CiAJCQl9IGVsc2Ugewog CQkJCXIgPSB0dG1fYm9fa21hcCgmYWJvLT50Ym8sIDAsCiAJCQkJCQlQRk5fVVAoYWJvLT50Ym8u YmFzZS5zaXplKSwKIAkJCQkJCSZhYm8tPmttYXApOwogCQkJCWlmIChyKQotCQkJCQlnb3RvIHVu cmVzZXJ2ZV9hYm87CisJCQkJCWdvdG8gb3V0cHV0X2liX2NvbnRlbnQ7CiAKIAkJCQlrcHRyID0g YW1kZ3B1X2JvX2twdHIoYWJvKTsKIAkJCQlrcHRyICs9IG9mZnNldDsKQEAgLTQwNCwyMSArNDQz LDIxIEBAIGFtZGdwdV9kZXZjb3JlZHVtcF9mb3JtYXQoY2hhciAqYnVmZmVyLCBzaXplX3QgY291 bnQsIHN0cnVjdCBhbWRncHVfY29yZWR1bXBfaW5mCiAJCQkJICAgICAgIGNvcmVkdW1wLT5pYnNb aV0uaWJfc2l6ZV9kdyAqIDQpOwogCiAJCQkJYW1kZ3B1X2JvX2t1bm1hcChhYm8pOworCQkJCWVt aXRfY29udGVudCA9IHRydWU7CiAJCQl9CiAKIG91dHB1dF9pYl9jb250ZW50OgogCQkJZHJtX3By aW50ZigmcCwgIlxuSUIgIyVkIDB4JWxseCAlZCBkd1xuIiwKIAkJCQkgICBpLCBjb3JlZHVtcC0+ aWJzW2ldLmdwdV9hZGRyLCBjb3JlZHVtcC0+aWJzW2ldLmliX3NpemVfZHcpOwotCQkJZm9yIChp bnQgaiA9IDA7IGogPCBjb3JlZHVtcC0+aWJzW2ldLmliX3NpemVfZHc7IGorKykKLQkJCQlkcm1f cHJpbnRmKCZwLCAiMHglMDh4XG4iLCBpYl9jb250ZW50W2pdKTsKLXVucmVzZXJ2ZV9hYm86Ci0J CQlpZiAodm0pCi0JCQkJYW1kZ3B1X2JvX3VucmVzZXJ2ZShhYm8pOwotZnJlZV9pYl9jb250ZW50 OgorCQkJaWYgKGVtaXRfY29udGVudCkgeworCQkJCWZvciAoaW50IGogPSAwOyBqIDwgY29yZWR1 bXAtPmlic1tpXS5pYl9zaXplX2R3OyBqKyspCisJCQkJCWRybV9wcmludGYoJnAsICIweCUwOHhc biIsIGliX2NvbnRlbnRbal0pOworCQkJfQogCQkJa3ZmcmVlKGliX2NvbnRlbnQpOwogCQl9Ci0J CWlmICh2bSkgewotCQkJYW1kZ3B1X2JvX3VucmVzZXJ2ZShyb290KTsKKworCQlpZiAobG9ja2Vk KSB7CisJCQlkcm1fZXhlY19maW5pKCZleGVjKTsKIAkJCWFtZGdwdV9ib191bnJlZigmcm9vdCk7 CiAJCX0KIAl9Ci0tIAoyLjU0LjAKCg==