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 B69641061B3C for ; Tue, 31 Mar 2026 12:36:41 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 17C1810EB46; Tue, 31 Mar 2026 12:36:41 +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="N656eDf9"; dkim-atps=neutral Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1317610EA6F for ; Tue, 31 Mar 2026 12:36:26 +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=d8W810olyE4Grx8Cf9/sjrmSSNSFZmKRuS1xFXeDvgk=; b=N656eDf9ZDmmp35lc86+A9SaB0 gdpt+1Ay7Jz6YgBk/v1sPOLxUoK+plMdGBQUYY4zkRmlQDK5zi3Uqac9ebtnKrxvDzL0gHsxVvhe2 gl2UZmvHAYY8chx6Kw024BmvKfQnqkHFiGZ1tVJjEhgDykzJCgZ2q5W7Z2UOFA2wJQo5s+7ZOK+Ff TWwH+JmwZVZGVQ3UUMS1UliSIGNj9jwGo2mlChLv/u4DYRjY8gss+pLp01nqi0WGq0xpDsRir0CYx tGgRZbaXWMHl5LV5lRa53NMVF+Eec80CvQz7m0LuL9u1IIiMsI5KQECWVnsJvGW7G9MHI9NPPpVde k9+R8C6w==; Received: from [189.7.87.169] (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 1w7YKW-009RtV-51; Tue, 31 Mar 2026 14:36:24 +0200 From: =?utf-8?q?Ma=C3=ADra_Canal?= Date: Tue, 31 Mar 2026 09:35:52 -0300 Subject: [PATCH v9 2/3] 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: <20260331-v3d-power-management-v9-2-f52ff87bfd36@igalia.com> References: <20260331-v3d-power-management-v9-0-f52ff87bfd36@igalia.com> In-Reply-To: <20260331-v3d-power-management-v9-0-f52ff87bfd36@igalia.com> To: Stefan Wahren , Maxime Ripard , Melissa Wen , Iago Toral Quiroga , Dave Stevenson , Florian Fainelli Cc: 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=7626; i=mcanal@igalia.com; h=from:subject:message-id; bh=k5eHize83TwQZgBlf6JTKnnaekzwh2PkSIn9Uc0yIo8=; b=owGbwMvMwMVo/5mvq6zj1yrG02pJDJmn9+/pS3EyMij6rxjcoD1nhvKCjvcKDydx61j2CjXdq bDWqxLoZDRmYWDkYpAVU2T58SS2llGsnF1zWflFmEGsTCBTGLg4BWAieULs/wOmbKy4s/A210Tr NH0Ne40/+8MzBU1SIwrCV7rdt3Dw2dT343+aaBLPWjsJ7e3rgk5fNp8Tuijw/PTwz1LtNbv/hvD Mv94g+K9dkOvFzFte/ikxcaEu+1lv3DzZqhDnIB6fXXDid44ki9TV1BX7OxxmXVIo3qna4VR+c3 mQb8JJuwPHS94c/b3Pwveqgcn+g628zxnW2m5w2Vvgk1rzx/jMDD/PCLew0qZGWa+G2lSFvmKDP lP5PKvbvR9M7z/YInLmaLmK38oHfyYrFGdP6JCWveV8IH15LrPvhg0fuV48zJ32pu3H5yMp879Y Cx/+sciuwukRT+u/uTNzp3SaezsFXuIJcZe4EBxh17AIAA== 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 PgpSZXZpZXdlZC1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zmxvcmlhbi5mYWluZWxsaUBicm9hZGNv bS5jb20+ClNpZ25lZC1vZmYtYnk6IE1hw61yYSBDYW5hbCA8bWNhbmFsQGlnYWxpYS5jb20+Ci0t LQogZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZHJ2LmMgfCA5MyArKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuaCB8 ICAxICsKIGRyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2dlbS5jIHwgMTggKysrKy0tLS0tCiBkcml2 ZXJzL2dwdS9kcm0vdjNkL3YzZF9pcnEuYyB8IDE1ICsrKy0tLS0KIDQgZmlsZXMgY2hhbmdlZCwg NjIgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3YzZC92M2RfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuYwppbmRl eCBjNWU3Yzc3OGVjN2ExYTM5ZDgxMTU1ZjdlZDJhN2JhODExYjVlM2FhLi5lNTdiMzZmNGQ4MWE1 OWQxNWEyMjNhZmRjNDA3OGFlNjQ1NmRlOWE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v djNkL3YzZF9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuYwpAQCAtMzYz LDE0ICszNjMsNTAgQEAgc3RhdGljIGludCB2M2RfcGxhdGZvcm1fZHJtX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCQlyZXR1cm4gcmV0OwogCX0KIAorCWlmICh2M2QtPnZl ciA8IFYzRF9HRU5fNDEpIHsKKwkJcmV0ID0gbWFwX3JlZ3ModjNkLCAmdjNkLT5nY2FfcmVncywg ImdjYSIpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwl2M2QtPnJlc2V0ID0g ZGV2bV9yZXNldF9jb250cm9sX2dldF9vcHRpb25hbF9leGNsdXNpdmUoZGV2LCBOVUxMKTsKKwlp ZiAoSVNfRVJSKHYzZC0+cmVzZXQpKQorCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9F UlIodjNkLT5yZXNldCksCisJCQkJICAgICAiRmFpbGVkIHRvIGdldCByZXNldCBjb250cm9sXG4i KTsKKworCWlmICghdjNkLT5yZXNldCkgeworCQlyZXQgPSBtYXBfcmVncyh2M2QsICZ2M2QtPmJy aWRnZV9yZWdzLCAiYnJpZGdlIik7CisJCWlmIChyZXQpIHsKKwkJCWRldl9lcnIoZGV2LCAiRmFp bGVkIHRvIGdldCBicmlkZ2UgcmVnaXN0ZXJzXG4iKTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9 CisKIAl2M2QtPmNsayA9IGRldm1fY2xrX2dldF9vcHRpb25hbChkZXYsIE5VTEwpOwogCWlmIChJ U19FUlIodjNkLT5jbGspKQogCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIodjNk LT5jbGspLCAiRmFpbGVkIHRvIGdldCBWM0QgY2xvY2tcbiIpOwogCisJcmV0ID0gdjNkX2lycV9p bml0KHYzZCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXYzZF9wZXJmbW9uX2luaXQo djNkKTsKKworCXYzZC0+bW11X3NjcmF0Y2ggPSBkbWFfYWxsb2Nfd2MoZGV2LCA0MDk2LCAmdjNk LT5tbXVfc2NyYXRjaF9wYWRkciwKKwkJCQkJR0ZQX0tFUk5FTCB8IF9fR0ZQX05PV0FSTiB8IF9f R0ZQX1pFUk8pOworCWlmICghdjNkLT5tbXVfc2NyYXRjaCkgeworCQlkZXZfZXJyKGRldiwgIkZh aWxlZCB0byBhbGxvY2F0ZSBNTVUgc2NyYXRjaCBwYWdlXG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07 CisJfQorCisJcmV0ID0gdjNkX2dlbV9pbml0KGRybSk7CisJaWYgKHJldCkKKwkJZ290byBkbWFf ZnJlZTsKKwogCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZSh2M2QtPmNsayk7CiAJaWYgKHJldCkg ewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJDb3VsZG4ndCBlbmFibGUgdGhlIFYzRCBjbG9ja1xu Iik7Ci0JCXJldHVybiByZXQ7CisJCWdvdG8gZ2VtX2Rlc3Ryb3k7CiAJfQogCiAJdjNkX2lkbGVf c21zKHYzZCk7CkBAIC0zOTksNDQgKzQzNSw5IEBAIHN0YXRpYyBpbnQgdjNkX3BsYXRmb3JtX2Ry bV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlkZW50MyA9IFYzRF9SRUFE KFYzRF9IVUJfSURFTlQzKTsKIAl2M2QtPnJldiA9IFYzRF9HRVRfRklFTEQoaWRlbnQzLCBWM0Rf SFVCX0lERU5UM19JUFJFVik7CiAKLQl2M2RfcGVyZm1vbl9pbml0KHYzZCk7Ci0KLQl2M2QtPnJl c2V0ID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9vcHRpb25hbF9leGNsdXNpdmUoZGV2LCBOVUxM KTsKLQlpZiAoSVNfRVJSKHYzZC0+cmVzZXQpKSB7Ci0JCXJldCA9IGRldl9lcnJfcHJvYmUoZGV2 LCBQVFJfRVJSKHYzZC0+cmVzZXQpLAotCQkJCSAgICAiRmFpbGVkIHRvIGdldCByZXNldCBjb250 cm9sXG4iKTsKLQkJZ290byBjbGtfZGlzYWJsZTsKLQl9Ci0KLQlpZiAoIXYzZC0+cmVzZXQpIHsK LQkJcmV0ID0gbWFwX3JlZ3ModjNkLCAmdjNkLT5icmlkZ2VfcmVncywgImJyaWRnZSIpOwotCQlp ZiAocmV0KSB7Ci0JCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQgYnJpZGdlIHJlZ2lzdGVy c1xuIik7Ci0JCQlnb3RvIGNsa19kaXNhYmxlOwotCQl9Ci0JfQotCi0JaWYgKHYzZC0+dmVyIDwg VjNEX0dFTl80MSkgewotCQlyZXQgPSBtYXBfcmVncyh2M2QsICZ2M2QtPmdjYV9yZWdzLCAiZ2Nh Iik7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGNsa19kaXNhYmxlOwotCX0KLQotCXYzZC0+bW11X3Nj cmF0Y2ggPSBkbWFfYWxsb2Nfd2MoZGV2LCA0MDk2LCAmdjNkLT5tbXVfc2NyYXRjaF9wYWRkciwK LQkJCQkJR0ZQX0tFUk5FTCB8IF9fR0ZQX05PV0FSTiB8IF9fR0ZQX1pFUk8pOwotCWlmICghdjNk LT5tbXVfc2NyYXRjaCkgewotCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBhbGxvY2F0ZSBNTVUg c2NyYXRjaCBwYWdlXG4iKTsKLQkJcmV0ID0gLUVOT01FTTsKLQkJZ290byBjbGtfZGlzYWJsZTsK LQl9Ci0KLQlyZXQgPSB2M2RfZ2VtX2luaXQoZHJtKTsKLQlpZiAocmV0KQotCQlnb3RvIGRtYV9m cmVlOwotCi0JcmV0ID0gdjNkX2lycV9pbml0KHYzZCk7Ci0JaWYgKHJldCkKLQkJZ290byBnZW1f ZGVzdHJveTsKKwl2M2RfaW5pdF9od19zdGF0ZSh2M2QpOworCXYzZF9tbXVfc2V0X3BhZ2VfdGFi bGUodjNkKTsKKwl2M2RfaXJxX2VuYWJsZSh2M2QpOwogCiAJcmV0ID0gZHJtX2Rldl9yZWdpc3Rl cihkcm0sIDApOwogCWlmIChyZXQpCkBAIC00NTIsMTIgKzQ1MywxMyBAQCBzdGF0aWMgaW50IHYz ZF9wbGF0Zm9ybV9kcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlkcm1f ZGV2X3VucmVnaXN0ZXIoZHJtKTsKIGlycV9kaXNhYmxlOgogCXYzZF9pcnFfZGlzYWJsZSh2M2Qp OworY2xrX2Rpc2FibGU6CisJdjNkX3Bvd2VyX29mZl9zbXModjNkKTsKKwljbGtfZGlzYWJsZV91 bnByZXBhcmUodjNkLT5jbGspOwogZ2VtX2Rlc3Ryb3k6CiAJdjNkX2dlbV9kZXN0cm95KGRybSk7 CiBkbWFfZnJlZToKIAlkbWFfZnJlZV93YyhkZXYsIDQwOTYsIHYzZC0+bW11X3NjcmF0Y2gsIHYz ZC0+bW11X3NjcmF0Y2hfcGFkZHIpOwotY2xrX2Rpc2FibGU6Ci0JY2xrX2Rpc2FibGVfdW5wcmVw YXJlKHYzZC0+Y2xrKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC00NzEsMTQgKzQ3MywxMyBAQCBz dGF0aWMgdm9pZCB2M2RfcGxhdGZvcm1fZHJtX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQogCiAJZHJtX2Rldl91bnJlZ2lzdGVyKGRybSk7CiAKLQl2M2RfZ2VtX2Rlc3Ryb3ko ZHJtKTsKLQotCWRtYV9mcmVlX3djKHYzZC0+ZHJtLmRldiwgNDA5NiwgdjNkLT5tbXVfc2NyYXRj aCwKLQkJICAgIHYzZC0+bW11X3NjcmF0Y2hfcGFkZHIpOwotCiAJdjNkX3Bvd2VyX29mZl9zbXMo djNkKTsKIAogCWNsa19kaXNhYmxlX3VucHJlcGFyZSh2M2QtPmNsayk7CisKKwl2M2RfZ2VtX2Rl c3Ryb3koZHJtKTsKKworCWRtYV9mcmVlX3djKGRldiwgNDA5NiwgdjNkLT5tbXVfc2NyYXRjaCwg djNkLT5tbXVfc2NyYXRjaF9wYWRkcik7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJp dmVyIHYzZF9wbGF0Zm9ybV9kcml2ZXIgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v djNkL3YzZF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5oCmluZGV4IDZhM2Nh ZDkzMzQzOTgxMmQ3OGRhNTc5Nzc0OWMwMjBhOWJmNDY0MDIuLmViZjQwNmI2MTViYjUyZGU5Y2I5 OGVhOGVmZTk0MWE1Nzg3ZmI0YmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNk X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5oCkBAIC01NjUsNiArNTY1 LDcgQEAgc3RydWN0IGRtYV9mZW5jZSAqdjNkX2ZlbmNlX2NyZWF0ZShzdHJ1Y3QgdjNkX2RldiAq djNkLCBlbnVtIHYzZF9xdWV1ZSBxKTsKIAogLyogdjNkX2dlbS5jICovCiBleHRlcm4gYm9vbCBz dXBlcl9wYWdlczsKK3ZvaWQgdjNkX2luaXRfaHdfc3RhdGUoc3RydWN0IHYzZF9kZXYgKnYzZCk7 CiBpbnQgdjNkX2dlbV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCB2M2RfZ2Vt X2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIHYzZF9yZXNldF9zbXMoc3Ry dWN0IHYzZF9kZXYgKnYzZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9n ZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2dlbS5jCmluZGV4IDc1ZDllY2NkNzk2NjY0 ZTY3Mjc3YzFmODNhZDU5MDYzZjE2NGQxZGEuLmRlZjZhOTYxMmI4NTdhMjQxZjZiMmUxZjYwMTUw OTkyOGUzZjlmOGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2dlbS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2dlbS5jCkBAIC0zNiwxMyArMzYsNiBAQCB2M2Rf aW5pdF9jb3JlKHN0cnVjdCB2M2RfZGV2ICp2M2QsIGludCBjb3JlKQogCVYzRF9DT1JFX1dSSVRF KGNvcmUsIFYzRF9DVExfTDJURkxFTkQsIH4wKTsKIH0KIAotLyogU2V0cyBpbnZhcmlhbnQgc3Rh dGUgZm9yIHRoZSBIVy4gKi8KLXN0YXRpYyB2b2lkCi12M2RfaW5pdF9od19zdGF0ZShzdHJ1Y3Qg djNkX2RldiAqdjNkKQotewotCXYzZF9pbml0X2NvcmUodjNkLCAwKTsKLX0KLQogc3RhdGljIHZv aWQKIHYzZF9pZGxlX2F4aShzdHJ1Y3QgdjNkX2RldiAqdjNkLCBpbnQgY29yZSkKIHsKQEAgLTI1 OSw2ICsyNTIsMTQgQEAgdjNkX2ludmFsaWRhdGVfY2FjaGVzKHN0cnVjdCB2M2RfZGV2ICp2M2Qp CiAJdjNkX2ludmFsaWRhdGVfc2xpY2VzKHYzZCwgMCk7CiB9CiAKKy8qIFNldHMgaW52YXJpYW50 IHN0YXRlIGZvciB0aGUgSFcuICovCit2b2lkCit2M2RfaW5pdF9od19zdGF0ZShzdHJ1Y3QgdjNk X2RldiAqdjNkKQoreworCXYzZF9pbml0X2NvcmUodjNkLCAwKTsKK30KKworCiBzdGF0aWMgdm9p ZAogdjNkX2h1Z2VfbW50X2luaXQoc3RydWN0IHYzZF9kZXYgKnYzZCkKIHsKQEAgLTMyOCw5ICsz MjksNiBAQCB2M2RfZ2VtX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJZ290byBlcnJf ZG1hX2FsbG9jOwogCX0KIAotCXYzZF9pbml0X2h3X3N0YXRlKHYzZCk7Ci0JdjNkX21tdV9zZXRf cGFnZV90YWJsZSh2M2QpOwotCiAJdjNkX2h1Z2VfbW50X2luaXQodjNkKTsKIAogCXJldCA9IHYz ZF9zY2hlZF9pbml0KHYzZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9p cnEuYyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2lycS5jCmluZGV4IGMyOGU3NGFiNTQ0Mjg1 NzAzMWI0OGJjYmQ0ZTQzZWI0OGMxZTBmMDcuLjg2ZWZhZWYyNzIyYzM2MDIzNDZiMDM3YmE1MzYy MjhiMmYzNjhhODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2lycS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2lycS5jCkBAIC0yNDgsMTcgKzI0OCwxMCBAQCB2 M2RfaHViX2lycShpbnQgaXJxLCB2b2lkICphcmcpCiBpbnQKIHYzZF9pcnFfaW5pdChzdHJ1Y3Qg djNkX2RldiAqdjNkKQogewotCWludCBpcnEsIHJldCwgY29yZTsKKwlpbnQgaXJxLCByZXQ7CiAK IAlJTklUX1dPUksoJnYzZC0+b3ZlcmZsb3dfbWVtX3dvcmssIHYzZF9vdmVyZmxvd19tZW1fd29y ayk7CiAKLQkvKiBDbGVhciBhbnkgcGVuZGluZyBpbnRlcnJ1cHRzIHNvbWVvbmUgbWlnaHQgaGF2 ZSBsZWZ0IGFyb3VuZAotCSAqIGZvciB1cy4KLQkgKi8KLQlmb3IgKGNvcmUgPSAwOyBjb3JlIDwg djNkLT5jb3JlczsgY29yZSsrKQotCQlWM0RfQ09SRV9XUklURShjb3JlLCBWM0RfQ1RMX0lOVF9D TFIsIFYzRF9DT1JFX0lSUVModjNkLT52ZXIpKTsKLQlWM0RfV1JJVEUoVjNEX0hVQl9JTlRfQ0xS LCBWM0RfSFVCX0lSUVModjNkLT52ZXIpKTsKLQogCWlycSA9IHBsYXRmb3JtX2dldF9pcnFfb3B0 aW9uYWwodjNkX3RvX3BkZXYodjNkKSwgMSk7CiAJaWYgKGlycSA9PSAtRVBST0JFX0RFRkVSKQog CQlyZXR1cm4gaXJxOwpAQCAtMjk2LDcgKzI4OSw2IEBAIHYzZF9pcnFfaW5pdChzdHJ1Y3QgdjNk X2RldiAqdjNkKQogCQkJZ290byBmYWlsOwogCX0KIAotCXYzZF9pcnFfZW5hYmxlKHYzZCk7CiAJ cmV0dXJuIDA7CiAKIGZhaWw6CkBAIC0zMTAsNiArMzAyLDExIEBAIHYzZF9pcnFfZW5hYmxlKHN0 cnVjdCB2M2RfZGV2ICp2M2QpCiB7CiAJaW50IGNvcmU7CiAKKwkvKiBDbGVhciBhbnkgcGVuZGlu ZyBpbnRlcnJ1cHRzIHNvbWVvbmUgbWlnaHQgaGF2ZSBsZWZ0IGFyb3VuZCBmb3IgdXMuICovCisJ Zm9yIChjb3JlID0gMDsgY29yZSA8IHYzZC0+Y29yZXM7IGNvcmUrKykKKwkJVjNEX0NPUkVfV1JJ VEUoY29yZSwgVjNEX0NUTF9JTlRfQ0xSLCBWM0RfQ09SRV9JUlFTKHYzZC0+dmVyKSk7CisJVjNE X1dSSVRFKFYzRF9IVUJfSU5UX0NMUiwgVjNEX0hVQl9JUlFTKHYzZC0+dmVyKSk7CisKIAkvKiBF bmFibGUgb3VyIHNldCBvZiBpbnRlcnJ1cHRzLCBtYXNraW5nIG91dCBhbnkgb3RoZXJzLiAqLwog CWZvciAoY29yZSA9IDA7IGNvcmUgPCB2M2QtPmNvcmVzOyBjb3JlKyspIHsKIAkJVjNEX0NPUkVf V1JJVEUoY29yZSwgVjNEX0NUTF9JTlRfTVNLX1NFVCwgflYzRF9DT1JFX0lSUVModjNkLT52ZXIp KTsKCi0tIAoyLjUzLjAKCg==