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 9610A106ACEC for ; Thu, 12 Mar 2026 21:35:19 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0583A10EABB; Thu, 12 Mar 2026 21:35:19 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=igalia.com header.i=@igalia.com header.b="h9M9grFx"; dkim-atps=neutral Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by gabe.freedesktop.org (Postfix) with ESMTPS id 26C0110EABB for ; Thu, 12 Mar 2026 21:35:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=aB8/G5WrYxtLopf4KH3ExUYKg/fL82rl2hcgjtpgY28=; b=h9M9grFx6yMaA8IUIXPSJj/x/5 sA1RzrU8Z6CsLlTY1ej3KHnOE5RSB4oI5Jcn2QrDVz6QXI+fMyMMwrZSf30q5INTgnWPHVUiTDg6h sWcOcex25PX7tyMbd4qtKn+998DVf6ooVOmErSh6SwbfQ9b9LXQ2SbQieCswl0jN8bBI6fLmZKVTe q1JQOa0GJs/MjYvKC/Kic7w539isJe7Q08laErj0rXkD0sDHihjQen6tO4VDX1W2eTU200dmXLNTQ JDyXTKxjeQ/MOn2y5YMDk0cSyZSA08xtZ8ZkAZpnhs5wzQ2l5QBpzIKrdifQNtBDWbXZJUidmQV4M gte+9cKQ==; Received: from [189.7.87.203] (helo=[10.0.0.1]) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1w0ngT-00ElyQ-Iv; Thu, 12 Mar 2026 22:35:09 +0100 From: =?utf-8?q?Ma=C3=ADra_Canal?= Date: Thu, 12 Mar 2026 18:34:26 -0300 Subject: [PATCH v7 4/5] drm/v3d: Allocate all resources before enabling the clock MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-Id: <20260312-v3d-power-management-v7-4-9f006a1d4c55@igalia.com> References: <20260312-v3d-power-management-v7-0-9f006a1d4c55@igalia.com> In-Reply-To: <20260312-v3d-power-management-v7-0-9f006a1d4c55@igalia.com> To: Michael Turquette , Stephen Boyd , Nicolas Saenz Julienne , Florian Fainelli , Stefan Wahren , Maxime Ripard , Melissa Wen , Iago Toral Quiroga , Chema Casanova , Dave Stevenson , Philipp Zabel Cc: linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Broadcom internal kernel review list , kernel-dev@igalia.com, =?utf-8?q?Ma=C3=ADra_Canal?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7559; i=mcanal@igalia.com; h=from:subject:message-id; bh=RyuPl8El1ToGqJG2tC0RSwUFpBws7qtcA9ZRPai/f8I=; b=owEBbQGS/pANAwAKAT/zDop2iPqqAcsmYgBpszFrYIKKqVe2ZSX2qbVYqRBZ7/4RpyzCL5K1Q m/U1FWTysKJATMEAAEKAB0WIQT45F19ARZ3Bymmd9E/8w6Kdoj6qgUCabMxawAKCRA/8w6Kdoj6 qpuqB/4qbn33jOslc7sbk8vSr7zO6I1rZRggimagVMZ/CRSySTtRJr7xP1qvQ58SbyYaRs2qjFQ 7pGQ5I7ZiDsgILlAU3KnYk8fXik/gVxCsaoot2nks0W6qQOaYcNyTRmoQyDdgvs/Sr+xaiNB4fk Opo9uqFiQUWwpaMxnHX+pAh5cxrWVvQvZrq54LpEEAVf1ZuZWpCErIk2QE4BfX9fgQJXnzzQh6c bKcZm3PN4V2OfKOwlKApCGD1x1Mw483wqV9bcRFcx85/mMI2c6pLv3UWNeWFertAubRvgxHgr5d NET8Be+rdFgSA0vfu9SxNPwaHur5/twSNVXm28vmXY7ez2eE X-Developer-Key: i=mcanal@igalia.com; a=openpgp; fpr=F8E45D7D0116770729A677D13FF30E8A7688FAAA 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" TW92ZSBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbiBvcGVyYXRpb25zIGJlZm9yZSBhY3R1YWxseSBl bmFibGluZyB0aGUKY2xvY2ssIGFzIHRob3NlIG9wZXJhdGlvbnMgZG9uJ3QgcmVxdWlyZSB0aGUg R1BVIHRvIGJlIHBvd2VyZWQgb24uCgpUaGlzIGlzIGEgcHJlcGFyYXRpb24gZm9yIHJ1bnRpbWUg UE0gc3VwcG9ydC4gVGhlIG5leHQgY29tbWl0IHdpbGwKbW92ZSBhbGwgY29kZSByZWxhdGVkIHRv IHBvd2VyaW5nIG9uIGFuZCBpbml0aWF0aW5nIHRoZSBHUFUgaW50byB0aGUKcnVudGltZSBQTSBy ZXN1bWUgY2FsbGJhY2sgYW5kIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9uIHdpbGwgaGFwcGVuCmJl Zm9yZSByZXN1bWUoKS4KClJldmlld2VkLWJ5OiBNZWxpc3NhIFdlbiA8bXdlbkBpZ2FsaWEuY29t PgpTaWduZWQtb2ZmLWJ5OiBNYcOtcmEgQ2FuYWwgPG1jYW5hbEBpZ2FsaWEuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5jIHwgOTMgKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZHJ2LmggfCAgMSAr CiBkcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9nZW0uYyB8IDE4ICsrKystLS0tLQogZHJpdmVycy9n cHUvZHJtL3YzZC92M2RfaXJxLmMgfCAxNSArKystLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDYyIGlu c2VydGlvbnMoKyksIDY1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS92M2QvdjNkX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZHJ2LmMKaW5kZXggMTUz ZWIxYzZmNTM1ZGU4YmRhODNiNThmYWQ4YWNiMmRjNjEyZjY3Ny4uNmQ2OTY2OWNmNzc2MDkzZjc0 YzY3OTg1YTk1NzYxN2YzMTM1YmJjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3YzZC92 M2RfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZHJ2LmMKQEAgLTM2MCwxNCAr MzYwLDUwIEBAIHN0YXRpYyBpbnQgdjNkX3BsYXRmb3JtX2RybV9wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQogCQkJcmV0dXJuIHJldDsKIAl9CiAKKwlpZiAodjNkLT52ZXIgPCBW M0RfR0VOXzQxKSB7CisJCXJldCA9IG1hcF9yZWdzKHYzZCwgJnYzZC0+Z2NhX3JlZ3MsICJnY2Ei KTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJdjNkLT5yZXNldCA9IGRldm1f cmVzZXRfY29udHJvbF9nZXRfb3B0aW9uYWxfZXhjbHVzaXZlKGRldiwgTlVMTCk7CisJaWYgKElT X0VSUih2M2QtPnJlc2V0KSkKKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKHYz ZC0+cmVzZXQpLAorCQkJCSAgICAgIkZhaWxlZCB0byBnZXQgcmVzZXQgY29udHJvbFxuIik7CisK KwlpZiAoIXYzZC0+cmVzZXQpIHsKKwkJcmV0ID0gbWFwX3JlZ3ModjNkLCAmdjNkLT5icmlkZ2Vf cmVncywgImJyaWRnZSIpOworCQlpZiAocmV0KSB7CisJCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0 byBnZXQgYnJpZGdlIHJlZ2lzdGVyc1xuIik7CisJCQlyZXR1cm4gcmV0OworCQl9CisJfQorCiAJ djNkLT5jbGsgPSBkZXZtX2Nsa19nZXRfb3B0aW9uYWwoZGV2LCBOVUxMKTsKIAlpZiAoSVNfRVJS KHYzZC0+Y2xrKSkKIAkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKHYzZC0+Y2xr KSwgIkZhaWxlZCB0byBnZXQgVjNEIGNsb2NrXG4iKTsKIAorCXJldCA9IHYzZF9pcnFfaW5pdCh2 M2QpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwl2M2RfcGVyZm1vbl9pbml0KHYzZCk7 CisKKwl2M2QtPm1tdV9zY3JhdGNoID0gZG1hX2FsbG9jX3djKGRldiwgNDA5NiwgJnYzZC0+bW11 X3NjcmF0Y2hfcGFkZHIsCisJCQkJCUdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4gfCBfX0dGUF9a RVJPKTsKKwlpZiAoIXYzZC0+bW11X3NjcmF0Y2gpIHsKKwkJZGV2X2VycihkZXYsICJGYWlsZWQg dG8gYWxsb2NhdGUgTU1VIHNjcmF0Y2ggcGFnZVxuIik7CisJCXJldHVybiAtRU5PTUVNOworCX0K KworCXJldCA9IHYzZF9nZW1faW5pdChkcm0pOworCWlmIChyZXQpCisJCWdvdG8gZG1hX2ZyZWU7 CisKIAlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUodjNkLT5jbGspOwogCWlmIChyZXQpIHsKIAkJ ZGV2X2VycigmcGRldi0+ZGV2LCAiQ291bGRuJ3QgZW5hYmxlIHRoZSBWM0QgY2xvY2tcbiIpOwot CQlyZXR1cm4gcmV0OworCQlnb3RvIGdlbV9kZXN0cm95OwogCX0KIAogCXYzZF9pZGxlX3Ntcyh2 M2QpOwpAQCAtMzk2LDQ0ICs0MzIsOSBAQCBzdGF0aWMgaW50IHYzZF9wbGF0Zm9ybV9kcm1fcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpZGVudDMgPSBWM0RfUkVBRChWM0Rf SFVCX0lERU5UMyk7CiAJdjNkLT5yZXYgPSBWM0RfR0VUX0ZJRUxEKGlkZW50MywgVjNEX0hVQl9J REVOVDNfSVBSRVYpOwogCi0JdjNkX3BlcmZtb25faW5pdCh2M2QpOwotCi0JdjNkLT5yZXNldCA9 IGRldm1fcmVzZXRfY29udHJvbF9nZXRfb3B0aW9uYWxfZXhjbHVzaXZlKGRldiwgTlVMTCk7Ci0J aWYgKElTX0VSUih2M2QtPnJlc2V0KSkgewotCQlyZXQgPSBkZXZfZXJyX3Byb2JlKGRldiwgUFRS X0VSUih2M2QtPnJlc2V0KSwKLQkJCQkgICAgIkZhaWxlZCB0byBnZXQgcmVzZXQgY29udHJvbFxu Iik7Ci0JCWdvdG8gY2xrX2Rpc2FibGU7Ci0JfQotCi0JaWYgKCF2M2QtPnJlc2V0KSB7Ci0JCXJl dCA9IG1hcF9yZWdzKHYzZCwgJnYzZC0+YnJpZGdlX3JlZ3MsICJicmlkZ2UiKTsKLQkJaWYgKHJl dCkgewotCQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0IGJyaWRnZSByZWdpc3RlcnNcbiIp OwotCQkJZ290byBjbGtfZGlzYWJsZTsKLQkJfQotCX0KLQotCWlmICh2M2QtPnZlciA8IFYzRF9H RU5fNDEpIHsKLQkJcmV0ID0gbWFwX3JlZ3ModjNkLCAmdjNkLT5nY2FfcmVncywgImdjYSIpOwot CQlpZiAocmV0KQotCQkJZ290byBjbGtfZGlzYWJsZTsKLQl9Ci0KLQl2M2QtPm1tdV9zY3JhdGNo ID0gZG1hX2FsbG9jX3djKGRldiwgNDA5NiwgJnYzZC0+bW11X3NjcmF0Y2hfcGFkZHIsCi0JCQkJ CUdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4gfCBfX0dGUF9aRVJPKTsKLQlpZiAoIXYzZC0+bW11 X3NjcmF0Y2gpIHsKLQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgTU1VIHNjcmF0 Y2ggcGFnZVxuIik7Ci0JCXJldCA9IC1FTk9NRU07Ci0JCWdvdG8gY2xrX2Rpc2FibGU7Ci0JfQot Ci0JcmV0ID0gdjNkX2dlbV9pbml0KGRybSk7Ci0JaWYgKHJldCkKLQkJZ290byBkbWFfZnJlZTsK LQotCXJldCA9IHYzZF9pcnFfaW5pdCh2M2QpOwotCWlmIChyZXQpCi0JCWdvdG8gZ2VtX2Rlc3Ry b3k7CisJdjNkX2luaXRfaHdfc3RhdGUodjNkKTsKKwl2M2RfbW11X3NldF9wYWdlX3RhYmxlKHYz ZCk7CisJdjNkX2lycV9lbmFibGUodjNkKTsKIAogCXJldCA9IGRybV9kZXZfcmVnaXN0ZXIoZHJt LCAwKTsKIAlpZiAocmV0KQpAQCAtNDQ5LDEyICs0NTAsMTMgQEAgc3RhdGljIGludCB2M2RfcGxh dGZvcm1fZHJtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZHJtX2Rldl91 bnJlZ2lzdGVyKGRybSk7CiBpcnFfZGlzYWJsZToKIAl2M2RfaXJxX2Rpc2FibGUodjNkKTsKK2Ns a19kaXNhYmxlOgorCXYzZF9wb3dlcl9vZmZfc21zKHYzZCk7CisJY2xrX2Rpc2FibGVfdW5wcmVw YXJlKHYzZC0+Y2xrKTsKIGdlbV9kZXN0cm95OgogCXYzZF9nZW1fZGVzdHJveShkcm0pOwogZG1h X2ZyZWU6CiAJZG1hX2ZyZWVfd2MoZGV2LCA0MDk2LCB2M2QtPm1tdV9zY3JhdGNoLCB2M2QtPm1t dV9zY3JhdGNoX3BhZGRyKTsKLWNsa19kaXNhYmxlOgotCWNsa19kaXNhYmxlX3VucHJlcGFyZSh2 M2QtPmNsayk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtNDY4LDE0ICs0NzAsMTMgQEAgc3RhdGlj IHZvaWQgdjNkX3BsYXRmb3JtX2RybV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKIAogCWRybV9kZXZfdW5yZWdpc3Rlcihkcm0pOwogCi0JdjNkX2dlbV9kZXN0cm95KGRybSk7 Ci0KLQlkbWFfZnJlZV93Yyh2M2QtPmRybS5kZXYsIDQwOTYsIHYzZC0+bW11X3NjcmF0Y2gsCi0J CSAgICB2M2QtPm1tdV9zY3JhdGNoX3BhZGRyKTsKLQogCXYzZF9wb3dlcl9vZmZfc21zKHYzZCk7 CiAKIAljbGtfZGlzYWJsZV91bnByZXBhcmUodjNkLT5jbGspOworCisJdjNkX2dlbV9kZXN0cm95 KGRybSk7CisKKwlkbWFfZnJlZV93YyhkZXYsIDQwOTYsIHYzZC0+bW11X3NjcmF0Y2gsIHYzZC0+ bW11X3NjcmF0Y2hfcGFkZHIpOwogfQogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciB2 M2RfcGxhdGZvcm1fZHJpdmVyID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3YzZC92 M2RfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuaAppbmRleCAzMTQyMTNjMjY3 MTAwMzg2MmM0ODZhMWE3MjM3YWY1NDgwYWZhOWU0Li5mZjkwZWY2ODc2ZDY1MjQxOTc1ZjI1OWI0 NGM2ZjA5OTQxZDEyZWNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuaApAQCAtNTYyLDYgKzU2Miw3IEBA IHN0cnVjdCBkbWFfZmVuY2UgKnYzZF9mZW5jZV9jcmVhdGUoc3RydWN0IHYzZF9kZXYgKnYzZCwg ZW51bSB2M2RfcXVldWUgcSk7CiAKIC8qIHYzZF9nZW0uYyAqLwogZXh0ZXJuIGJvb2wgc3VwZXJf cGFnZXM7Cit2b2lkIHYzZF9pbml0X2h3X3N0YXRlKHN0cnVjdCB2M2RfZGV2ICp2M2QpOwogaW50 IHYzZF9nZW1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgdjNkX2dlbV9kZXN0 cm95KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCB2M2RfcmVzZXRfc21zKHN0cnVjdCB2 M2RfZGV2ICp2M2QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZ2VtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9nZW0uYwppbmRleCA1Nzk2NWMwZDZmNmVmZWEwMDE5 ZmIwYjFhNDdhZGRmMmY1ODZkMTM4Li5kZDRhYzg5OWE0ODlmYjczNDE4MTU1OTIxMTRjYzRmMTY1 MmYzNWU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9nZW0uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9nZW0uYwpAQCAtMzYsMTMgKzM2LDYgQEAgdjNkX2luaXRf Y29yZShzdHJ1Y3QgdjNkX2RldiAqdjNkLCBpbnQgY29yZSkKIAlWM0RfQ09SRV9XUklURShjb3Jl LCBWM0RfQ1RMX0wyVEZMRU5ELCB+MCk7CiB9CiAKLS8qIFNldHMgaW52YXJpYW50IHN0YXRlIGZv ciB0aGUgSFcuICovCi1zdGF0aWMgdm9pZAotdjNkX2luaXRfaHdfc3RhdGUoc3RydWN0IHYzZF9k ZXYgKnYzZCkKLXsKLQl2M2RfaW5pdF9jb3JlKHYzZCwgMCk7Ci19Ci0KIHN0YXRpYyB2b2lkCiB2 M2RfaWRsZV9heGkoc3RydWN0IHYzZF9kZXYgKnYzZCwgaW50IGNvcmUpCiB7CkBAIC0yNTksNiAr MjUyLDE0IEBAIHYzZF9pbnZhbGlkYXRlX2NhY2hlcyhzdHJ1Y3QgdjNkX2RldiAqdjNkKQogCXYz ZF9pbnZhbGlkYXRlX3NsaWNlcyh2M2QsIDApOwogfQogCisvKiBTZXRzIGludmFyaWFudCBzdGF0 ZSBmb3IgdGhlIEhXLiAqLwordm9pZAordjNkX2luaXRfaHdfc3RhdGUoc3RydWN0IHYzZF9kZXYg KnYzZCkKK3sKKwl2M2RfaW5pdF9jb3JlKHYzZCwgMCk7Cit9CisKKwogc3RhdGljIHZvaWQKIHYz ZF9odWdlX21udF9pbml0KHN0cnVjdCB2M2RfZGV2ICp2M2QpCiB7CkBAIC0zMjUsOSArMzI2LDYg QEAgdjNkX2dlbV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXJldHVybiAtRU5PTUVN OwogCX0KIAotCXYzZF9pbml0X2h3X3N0YXRlKHYzZCk7Ci0JdjNkX21tdV9zZXRfcGFnZV90YWJs ZSh2M2QpOwotCiAJdjNkX2h1Z2VfbW50X2luaXQodjNkKTsKIAogCXJldCA9IHYzZF9zY2hlZF9p bml0KHYzZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9pcnEuYyBiL2Ry aXZlcnMvZ3B1L2RybS92M2QvdjNkX2lycS5jCmluZGV4IDEyNDlmNmU2NGI5NzlmZTI5Y2YyYjli ZmM0M2IzOWFhNzU1ZjcxY2UuLmUzM2NkZWRlN2M3NDZlZjFlMWQ2YjJhNzkyMmY0Y2VkMzUxNjQ2 NDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2lycS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS92M2QvdjNkX2lycS5jCkBAIC0yNDgsMTcgKzI0OCwxMCBAQCB2M2RfaHViX2ly cShpbnQgaXJxLCB2b2lkICphcmcpCiBpbnQKIHYzZF9pcnFfaW5pdChzdHJ1Y3QgdjNkX2RldiAq djNkKQogewotCWludCBpcnEsIHJldCwgY29yZTsKKwlpbnQgaXJxLCByZXQ7CiAKIAlJTklUX1dP UksoJnYzZC0+b3ZlcmZsb3dfbWVtX3dvcmssIHYzZF9vdmVyZmxvd19tZW1fd29yayk7CiAKLQkv KiBDbGVhciBhbnkgcGVuZGluZyBpbnRlcnJ1cHRzIHNvbWVvbmUgbWlnaHQgaGF2ZSBsZWZ0IGFy b3VuZAotCSAqIGZvciB1cy4KLQkgKi8KLQlmb3IgKGNvcmUgPSAwOyBjb3JlIDwgdjNkLT5jb3Jl czsgY29yZSsrKQotCQlWM0RfQ09SRV9XUklURShjb3JlLCBWM0RfQ1RMX0lOVF9DTFIsIFYzRF9D T1JFX0lSUVModjNkLT52ZXIpKTsKLQlWM0RfV1JJVEUoVjNEX0hVQl9JTlRfQ0xSLCBWM0RfSFVC X0lSUVModjNkLT52ZXIpKTsKLQogCWlycSA9IHBsYXRmb3JtX2dldF9pcnFfb3B0aW9uYWwodjNk X3RvX3BkZXYodjNkKSwgMSk7CiAJaWYgKGlycSA9PSAtRVBST0JFX0RFRkVSKQogCQlyZXR1cm4g aXJxOwpAQCAtMjk2LDcgKzI4OSw2IEBAIHYzZF9pcnFfaW5pdChzdHJ1Y3QgdjNkX2RldiAqdjNk KQogCQkJZ290byBmYWlsOwogCX0KIAotCXYzZF9pcnFfZW5hYmxlKHYzZCk7CiAJcmV0dXJuIDA7 CiAKIGZhaWw6CkBAIC0zMTAsNiArMzAyLDExIEBAIHYzZF9pcnFfZW5hYmxlKHN0cnVjdCB2M2Rf ZGV2ICp2M2QpCiB7CiAJaW50IGNvcmU7CiAKKwkvKiBDbGVhciBhbnkgcGVuZGluZyBpbnRlcnJ1 cHRzIHNvbWVvbmUgbWlnaHQgaGF2ZSBsZWZ0IGFyb3VuZCBmb3IgdXMuICovCisJZm9yIChjb3Jl ID0gMDsgY29yZSA8IHYzZC0+Y29yZXM7IGNvcmUrKykKKwkJVjNEX0NPUkVfV1JJVEUoY29yZSwg VjNEX0NUTF9JTlRfQ0xSLCBWM0RfQ09SRV9JUlFTKHYzZC0+dmVyKSk7CisJVjNEX1dSSVRFKFYz RF9IVUJfSU5UX0NMUiwgVjNEX0hVQl9JUlFTKHYzZC0+dmVyKSk7CisKIAkvKiBFbmFibGUgb3Vy IHNldCBvZiBpbnRlcnJ1cHRzLCBtYXNraW5nIG91dCBhbnkgb3RoZXJzLiAqLwogCWZvciAoY29y ZSA9IDA7IGNvcmUgPCB2M2QtPmNvcmVzOyBjb3JlKyspIHsKIAkJVjNEX0NPUkVfV1JJVEUoY29y ZSwgVjNEX0NUTF9JTlRfTVNLX1NFVCwgflYzRF9DT1JFX0lSUVModjNkLT52ZXIpKTsKCi0tIAoy LjUzLjAKCg==