From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jayant Shekhar Subject: [PATCH v4 1/3] drm/msm/dpu: clean up references of DPU custom bus scaling Date: Fri, 21 Dec 2018 11:50:23 +0530 Message-ID: <1545373225-32046-2-git-send-email-jshekhar@codeaurora.org> References: <1545373225-32046-1-git-send-email-jshekhar@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1545373225-32046-1-git-send-email-jshekhar-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, Jayant Shekhar , robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, nganji-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, chandanu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, Sravanthi Kollukuduru List-Id: devicetree@vger.kernel.org RnJvbTogU3JhdmFudGhpIEtvbGx1a3VkdXJ1IDxza29sbHVrdUBjb2RlYXVyb3JhLm9yZz4KClNp bmNlIHRoZSB1cHN0cmVhbSBpbnRlcmNvbm5lY3QgYnVzIGZyYW1ld29yayBoYXMgbGFuZGVkCnVw c3RyZWFtLCB0aGUgZXhpc3RpbmcgcmVmZXJlbmNlcyBvZiBjdXN0b20gYnVzIHNjYWxpbmcKbmVl ZHMgdG8gYmUgY2xlYW5lZCB1cC4KCkNoYW5nZXMgaW4gdjI6CgktIEZpeGVkIGJ1aWxkIGVycm9y IGR1ZSB0byBwYXJ0aWFsIGNsZWFuIHVwCgpDaGFuZ2VzIGluIHYzOgoJLSBDb25kZW5zZSBtdWx0 aXBsZSBsaW5lcyBpbnRvIGEgc2luZ2xlIGxpbmUgKFNlYW4gUGF1bCkKCkNoYW5nZXMgaW4gdjQ6 CgktIE5vbmUKClNpZ25lZC1vZmYtYnk6IFNyYXZhbnRoaSBLb2xsdWt1ZHVydSA8c2tvbGx1a3VA Y29kZWF1cm9yYS5vcmc+ClNpZ25lZC1vZmYtYnk6IEpheWFudCBTaGVraGFyIDxqc2hla2hhckBj b2RlYXVyb3JhLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29y ZV9wZXJmLmMgICAgfCAxNzQgKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuaCAgICB8ICAgNCArLQogZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYyAgICAgICAgIHwgIDEzICstCiBkcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmMgfCAgNDcgKystLS0tCiBkcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmggfCAgNjggLS0tLS0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfdHJhY2UuaCAgICAgICAgfCAg MjIgKy0tCiA2IGZpbGVzIGNoYW5nZWQsIDg5IGluc2VydGlvbnMoKyksIDIzOSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9w ZXJmLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmMKaW5k ZXggMjJlODRiMy4uYzc1NTM2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2NvcmVfcGVyZi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9jb3JlX3BlcmYuYwpAQCAtODQsNyArODQsNiBAQCBzdGF0aWMgdm9pZCBfZHB1X2NvcmVf cGVyZl9jYWxjX2NydGMoc3RydWN0IGRwdV9rbXMgKmttcywKIAkJc3RydWN0IGRwdV9jb3JlX3Bl cmZfcGFyYW1zICpwZXJmKQogewogCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZTsK LQlpbnQgaTsKIAogCWlmICgha21zIHx8ICFrbXMtPmNhdGFsb2cgfHwgIWNydGMgfHwgIXN0YXRl IHx8ICFwZXJmKSB7CiAJCURQVV9FUlJPUigiaW52YWxpZCBwYXJhbWV0ZXJzXG4iKTsKQEAgLTk1 LDM1ICs5NCwyNCBAQCBzdGF0aWMgdm9pZCBfZHB1X2NvcmVfcGVyZl9jYWxjX2NydGMoc3RydWN0 IGRwdV9rbXMgKmttcywKIAltZW1zZXQocGVyZiwgMCwgc2l6ZW9mKHN0cnVjdCBkcHVfY29yZV9w ZXJmX3BhcmFtcykpOwogCiAJaWYgKCFkcHVfY3N0YXRlLT5id19jb250cm9sKSB7Ci0JCWZvciAo aSA9IDA7IGkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKLQkJCXBlcmYt PmJ3X2N0bFtpXSA9IGttcy0+Y2F0YWxvZy0+cGVyZi5tYXhfYndfaGlnaCAqCisJCXBlcmYtPmJ3 X2N0bCA9IGttcy0+Y2F0YWxvZy0+cGVyZi5tYXhfYndfaGlnaCAqCiAJCQkJCTEwMDBVTEw7Ci0J CQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJbaV0gPSBwZXJmLT5id19jdGxbaV07Ci0JCX0KKwkJcGVy Zi0+bWF4X3Blcl9waXBlX2liID0gcGVyZi0+YndfY3RsOwogCQlwZXJmLT5jb3JlX2Nsa19yYXRl ID0ga21zLT5wZXJmLm1heF9jb3JlX2Nsa19yYXRlOwogCX0gZWxzZSBpZiAoa21zLT5wZXJmLnBl cmZfdHVuZS5tb2RlID09IERQVV9QRVJGX01PREVfTUlOSU1VTSkgewotCQlmb3IgKGkgPSAwOyBp IDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWDsgaSsrKSB7Ci0JCQlwZXJmLT5id19jdGxb aV0gPSAwOwotCQkJcGVyZi0+bWF4X3Blcl9waXBlX2liW2ldID0gMDsKLQkJfQorCQlwZXJmLT5i d19jdGwgPSAwOworCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWIgPSAwOwogCQlwZXJmLT5jb3JlX2Ns a19yYXRlID0gMDsKIAl9IGVsc2UgaWYgKGttcy0+cGVyZi5wZXJmX3R1bmUubW9kZSA9PSBEUFVf UEVSRl9NT0RFX0ZJWEVEKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBEUFVfUE9XRVJfSEFORExFX0RC VVNfSURfTUFYOyBpKyspIHsKLQkJCXBlcmYtPmJ3X2N0bFtpXSA9IGttcy0+cGVyZi5maXhfY29y ZV9hYl92b3RlOwotCQkJcGVyZi0+bWF4X3Blcl9waXBlX2liW2ldID0ga21zLT5wZXJmLmZpeF9j b3JlX2liX3ZvdGU7Ci0JCX0KKwkJcGVyZi0+YndfY3RsID0ga21zLT5wZXJmLmZpeF9jb3JlX2Fi X3ZvdGU7CisJCXBlcmYtPm1heF9wZXJfcGlwZV9pYiA9IGttcy0+cGVyZi5maXhfY29yZV9pYl92 b3RlOwogCQlwZXJmLT5jb3JlX2Nsa19yYXRlID0ga21zLT5wZXJmLmZpeF9jb3JlX2Nsa19yYXRl OwogCX0KIAogCURQVV9ERUJVRygKLQkJImNydGM9JWQgY2xrX3JhdGU9JWxsdSBjb3JlX2liPSVs bHUgY29yZV9hYj0lbGx1IGxsY2NfaWI9JWxsdSBsbGNjX2FiPSVsbHUgbWVtX2liPSVsbHUgbWVt X2FiPSVsbHVcbiIsCisJCSJjcnRjPSVkIGNsa19yYXRlPSVsbHUgY29yZV9pYj0lbGx1IGNvcmVf YWI9JWxsdVxuIiwKIAkJCWNydGMtPmJhc2UuaWQsIHBlcmYtPmNvcmVfY2xrX3JhdGUsCi0JCQlw ZXJmLT5tYXhfcGVyX3BpcGVfaWJbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01OT0NdLAotCQkJ cGVyZi0+YndfY3RsW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NTk9DXSwKLQkJCXBlcmYtPm1h eF9wZXJfcGlwZV9pYltEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTExDQ10sCi0JCQlwZXJmLT5i d19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0xMQ0NdLAotCQkJcGVyZi0+bWF4X3Blcl9w aXBlX2liW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9FQkldLAotCQkJcGVyZi0+YndfY3RsW0RQ VV9QT1dFUl9IQU5ETEVfREJVU19JRF9FQkldKTsKKwkJCXBlcmYtPm1heF9wZXJfcGlwZV9pYiwg cGVyZi0+YndfY3RsKTsKIH0KIAogaW50IGRwdV9jb3JlX3BlcmZfY3J0Y19jaGVjayhzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCkBAIC0xMzYsNyArMTI0LDYgQEAgaW50IGRwdV9jb3JlX3BlcmZfY3J0 Y19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJc3RydWN0IGRwdV9jcnRjX3N0YXRlICpk cHVfY3N0YXRlOwogCXN0cnVjdCBkcm1fY3J0YyAqdG1wX2NydGM7CiAJc3RydWN0IGRwdV9rbXMg KmttczsKLQlpbnQgaTsKIAogCWlmICghY3J0YyB8fCAhc3RhdGUpIHsKIAkJRFBVX0VSUk9SKCJp bnZhbGlkIGNydGNcbiIpOwpAQCAtMTU4LDMxICsxNDUsMjUgQEAgaW50IGRwdV9jb3JlX3BlcmZf Y3J0Y19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJLyogb2J0YWluIG5ldyB2YWx1ZXMg Ki8KIAlfZHB1X2NvcmVfcGVyZl9jYWxjX2NydGMoa21zLCBjcnRjLCBzdGF0ZSwgJmRwdV9jc3Rh dGUtPm5ld19wZXJmKTsKIAotCWZvciAoaSA9IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NTk9D OwotCQkJaSA8IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVg7IGkrKykgewotCQlid19zdW1f b2ZfaW50ZnMgPSBkcHVfY3N0YXRlLT5uZXdfcGVyZi5id19jdGxbaV07Ci0JCWN1cnJfY2xpZW50 X3R5cGUgPSBkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUoY3J0Yyk7CisJYndfc3VtX29mX2ludGZz ID0gZHB1X2NzdGF0ZS0+bmV3X3BlcmYuYndfY3RsOworCWN1cnJfY2xpZW50X3R5cGUgPSBkcHVf Y3J0Y19nZXRfY2xpZW50X3R5cGUoY3J0Yyk7CiAKLQkJZHJtX2Zvcl9lYWNoX2NydGModG1wX2Ny dGMsIGNydGMtPmRldikgewotCQkJaWYgKF9kcHVfY29yZV9wZXJmX2NydGNfaXNfcG93ZXJfb24o dG1wX2NydGMpICYmCi0JCQkgICAgKGRwdV9jcnRjX2dldF9jbGllbnRfdHlwZSh0bXBfY3J0Yykg PT0KLQkJCQkJICAgIGN1cnJfY2xpZW50X3R5cGUpICYmCi0JCQkgICAgKHRtcF9jcnRjICE9IGNy dGMpKSB7Ci0JCQkJc3RydWN0IGRwdV9jcnRjX3N0YXRlICp0bXBfY3N0YXRlID0KLQkJCQkJdG9f ZHB1X2NydGNfc3RhdGUodG1wX2NydGMtPnN0YXRlKTsKLQotCQkJCURQVV9ERUJVRygiY3J0Yzol ZCBidzolbGx1IGN0cmw6JWRcbiIsCi0JCQkJCXRtcF9jcnRjLT5iYXNlLmlkLAotCQkJCQl0bXBf Y3N0YXRlLT5uZXdfcGVyZi5id19jdGxbaV0sCi0JCQkJCXRtcF9jc3RhdGUtPmJ3X2NvbnRyb2wp OwotCQkJCS8qCi0JCQkJICogRm9yIGJ3IGNoZWNrIG9ubHkgdXNlIHRoZSBidyBpZiB0aGUKLQkJ CQkgKiBhdG9taWMgcHJvcGVydHkgaGFzIGJlZW4gYWxyZWFkeSBzZXQKLQkJCQkgKi8KLQkJCQlp ZiAodG1wX2NzdGF0ZS0+YndfY29udHJvbCkKLQkJCQkJYndfc3VtX29mX2ludGZzICs9Ci0JCQkJ CQl0bXBfY3N0YXRlLT5uZXdfcGVyZi5id19jdGxbaV07Ci0JCQl9CisJZHJtX2Zvcl9lYWNoX2Ny dGModG1wX2NydGMsIGNydGMtPmRldikgeworCQlpZiAoX2RwdV9jb3JlX3BlcmZfY3J0Y19pc19w b3dlcl9vbih0bXBfY3J0YykgJiYKKwkJICAgIChkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUodG1w X2NydGMpID09CisJCQkJY3Vycl9jbGllbnRfdHlwZSkgJiYgKHRtcF9jcnRjICE9IGNydGMpKSB7 CisJCQlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKnRtcF9jc3RhdGUgPQorCQkJCXRvX2RwdV9jcnRj X3N0YXRlKHRtcF9jcnRjLT5zdGF0ZSk7CisKKwkJCURQVV9ERUJVRygiY3J0YzolZCBidzolbGx1 IGN0cmw6JWRcbiIsCisJCQkJdG1wX2NydGMtPmJhc2UuaWQsIHRtcF9jc3RhdGUtPm5ld19wZXJm LmJ3X2N0bCwKKwkJCQl0bXBfY3N0YXRlLT5id19jb250cm9sKTsKKwkJCS8qCisJCQkgKiBGb3Ig YncgY2hlY2sgb25seSB1c2UgdGhlIGJ3IGlmIHRoZQorCQkJICogYXRvbWljIHByb3BlcnR5IGhh cyBiZWVuIGFscmVhZHkgc2V0CisJCQkgKi8KKwkJCWlmICh0bXBfY3N0YXRlLT5id19jb250cm9s KQorCQkJCWJ3X3N1bV9vZl9pbnRmcyArPSB0bXBfY3N0YXRlLT5uZXdfcGVyZi5id19jdGw7CiAJ CX0KIAogCQkvKiBjb252ZXJ0IGJhbmR3aWR0aCB0byBrYiAqLwpAQCAtMjEzLDkgKzE5NCw5IEBA IGludCBkcHVfY29yZV9wZXJmX2NydGNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAogfQog CiBzdGF0aWMgaW50IF9kcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlX2J1cyhzdHJ1Y3QgZHB1X2tt cyAqa21zLAotCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHUzMiBidXNfaWQpCisJCXN0cnVjdCBk cm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgZHB1X2NvcmVfcGVyZl9wYXJhbXMgcGVyZiA9IHsg eyAwIH0gfTsKKwlzdHJ1Y3QgZHB1X2NvcmVfcGVyZl9wYXJhbXMgcGVyZiA9IHsgMCB9OwogCWVu dW0gZHB1X2NydGNfY2xpZW50X3R5cGUgY3Vycl9jbGllbnRfdHlwZQogCQkJCQk9IGRwdV9jcnRj X2dldF9jbGllbnRfdHlwZShjcnRjKTsKIAlzdHJ1Y3QgZHJtX2NydGMgKnRtcF9jcnRjOwpAQCAt MjI4LDEzICsyMDksMTEgQEAgc3RhdGljIGludCBfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9i dXMoc3RydWN0IGRwdV9rbXMgKmttcywKIAkJCQlkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUodG1w X2NydGMpKSB7CiAJCQlkcHVfY3N0YXRlID0gdG9fZHB1X2NydGNfc3RhdGUodG1wX2NydGMtPnN0 YXRlKTsKIAotCQkJcGVyZi5tYXhfcGVyX3BpcGVfaWJbYnVzX2lkXSA9Ci0JCQkJbWF4KHBlcmYu bWF4X3Blcl9waXBlX2liW2J1c19pZF0sCi0JCQkJZHB1X2NzdGF0ZS0+bmV3X3BlcmYubWF4X3Bl cl9waXBlX2liW2J1c19pZF0pOworCQkJcGVyZi5tYXhfcGVyX3BpcGVfaWIgPSBtYXgocGVyZi5t YXhfcGVyX3BpcGVfaWIsCisJCQkJCWRwdV9jc3RhdGUtPm5ld19wZXJmLm1heF9wZXJfcGlwZV9p Yik7CiAKLQkJCURQVV9ERUJVRygiY3J0Yz0lZCBidXNfaWQ9JWQgYnc9JWxsdVxuIiwKLQkJCQl0 bXBfY3J0Yy0+YmFzZS5pZCwgYnVzX2lkLAotCQkJCWRwdV9jc3RhdGUtPm5ld19wZXJmLmJ3X2N0 bFtidXNfaWRdKTsKKwkJCURQVV9ERUJVRygiY3J0Yz0lZCBidz0lbGx1XG4iLCB0bXBfY3J0Yy0+ YmFzZS5pZCwKKwkJCQkJZHB1X2NzdGF0ZS0+bmV3X3BlcmYuYndfY3RsKTsKIAkJfQogCX0KIAly ZXR1cm4gcmV0OwpAQCAtMjU0LDcgKzIzMyw2IEBAIHZvaWQgZHB1X2NvcmVfcGVyZl9jcnRjX3Jl bGVhc2VfYncoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2Ny dGM7CiAJc3RydWN0IGRwdV9jcnRjX3N0YXRlICpkcHVfY3N0YXRlOwogCXN0cnVjdCBkcHVfa21z ICprbXM7Ci0JaW50IGk7CiAKIAlpZiAoIWNydGMpIHsKIAkJRFBVX0VSUk9SKCJpbnZhbGlkIGNy dGNcbiIpOwpAQCAtMjkwLDEwICsyNjgsOCBAQCB2b2lkIGRwdV9jb3JlX3BlcmZfY3J0Y19yZWxl YXNlX2J3KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlpZiAoa21zLT5wZXJmLmVuYWJsZV9id19y ZWxlYXNlKSB7CiAJCXRyYWNlX2RwdV9jbWRfcmVsZWFzZV9idyhjcnRjLT5iYXNlLmlkKTsKIAkJ RFBVX0RFQlVHKCJSZWxlYXNlIEJXIGNydGM9JWRcbiIsIGNydGMtPmJhc2UuaWQpOwotCQlmb3Ig KGkgPSAwOyBpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWDsgaSsrKSB7Ci0JCQlkcHVf Y3J0Yy0+Y3VyX3BlcmYuYndfY3RsW2ldID0gMDsKLQkJCV9kcHVfY29yZV9wZXJmX2NydGNfdXBk YXRlX2J1cyhrbXMsIGNydGMsIGkpOwotCQl9CisJCWRwdV9jcnRjLT5jdXJfcGVyZi5id19jdGwg PSAwOworCQlfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9idXMoa21zLCBjcnRjKTsKIAl9CiB9 CiAKQEAgLTMzNiwxMSArMzEyLDEwIEBAIGludCBkcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJaW50IHBhcmFtc19jaGFuZ2VkLCBib29sIHN0b3BfcmVx KQogewogCXN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcyAqbmV3LCAqb2xkOwotCWludCB1cGRh dGVfYnVzID0gMCwgdXBkYXRlX2NsayA9IDA7CisJYm9vbCB1cGRhdGVfYnVzID0gZmFsc2UsIHVw ZGF0ZV9jbGsgPSBmYWxzZTsKIAl1NjQgY2xrX3JhdGUgPSAwOwogCXN0cnVjdCBkcHVfY3J0YyAq ZHB1X2NydGM7CiAJc3RydWN0IGRwdV9jcnRjX3N0YXRlICpkcHVfY3N0YXRlOwotCWludCBpOwog CXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7CiAJc3RydWN0IGRwdV9rbXMgKmttczsKIAlp bnQgcmV0OwpAQCAtMzY3LDYyICszNDIsNDkgQEAgaW50IGRwdV9jb3JlX3BlcmZfY3J0Y191cGRh dGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCW5ldyA9ICZkcHVfY3N0YXRlLT5uZXdfcGVyZjsK IAogCWlmIChfZHB1X2NvcmVfcGVyZl9jcnRjX2lzX3Bvd2VyX29uKGNydGMpICYmICFzdG9wX3Jl cSkgewotCQlmb3IgKGkgPSAwOyBpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWDsgaSsr KSB7Ci0JCQkvKgotCQkJICogY2FzZXMgZm9yIGJ1cyBiYW5kd2lkdGggdXBkYXRlLgotCQkJICog MS4gbmV3IGJhbmR3aWR0aCB2b3RlIC0gImFiIG9yIGliIHZvdGUiIGlzIGhpZ2hlcgotCQkJICog ICAgdGhhbiBjdXJyZW50IHZvdGUgZm9yIHVwZGF0ZSByZXF1ZXN0LgotCQkJICogMi4gbmV3IGJh bmR3aWR0aCB2b3RlIC0gImFiIG9yIGliIHZvdGUiIGlzIGxvd2VyCi0JCQkgKiAgICB0aGFuIGN1 cnJlbnQgdm90ZSBhdCBlbmQgb2YgY29tbWl0IG9yIHN0b3AuCi0JCQkgKi8KLQkJCWlmICgocGFy YW1zX2NoYW5nZWQgJiYgKChuZXctPmJ3X2N0bFtpXSA+Ci0JCQkJCQlvbGQtPmJ3X2N0bFtpXSkg fHwKLQkJCQkgIChuZXctPm1heF9wZXJfcGlwZV9pYltpXSA+Ci0JCQkJCQlvbGQtPm1heF9wZXJf cGlwZV9pYltpXSkpKSB8fAotCQkJICAgICghcGFyYW1zX2NoYW5nZWQgJiYgKChuZXctPmJ3X2N0 bFtpXSA8Ci0JCQkJCQlvbGQtPmJ3X2N0bFtpXSkgfHwKLQkJCQkgIChuZXctPm1heF9wZXJfcGlw ZV9pYltpXSA8Ci0JCQkJCQlvbGQtPm1heF9wZXJfcGlwZV9pYltpXSkpKSkgewotCQkJCURQVV9E RUJVRygKLQkJCQkJImNydGM9JWQgcD0lZCBuZXdfYnc9JWxsdSxvbGRfYnc9JWxsdVxuIiwKLQkJ CQkJY3J0Yy0+YmFzZS5pZCwgcGFyYW1zX2NoYW5nZWQsCi0JCQkJCW5ldy0+YndfY3RsW2ldLCBv bGQtPmJ3X2N0bFtpXSk7Ci0JCQkJb2xkLT5id19jdGxbaV0gPSBuZXctPmJ3X2N0bFtpXTsKLQkJ CQlvbGQtPm1heF9wZXJfcGlwZV9pYltpXSA9Ci0JCQkJCQluZXctPm1heF9wZXJfcGlwZV9pYltp XTsKLQkJCQl1cGRhdGVfYnVzIHw9IEJJVChpKTsKLQkJCX0KKwkJLyoKKwkJICogY2FzZXMgZm9y IGJ1cyBiYW5kd2lkdGggdXBkYXRlLgorCQkgKiAxLiBuZXcgYmFuZHdpZHRoIHZvdGUgLSAiYWIg b3IgaWIgdm90ZSIgaXMgaGlnaGVyCisJCSAqICAgIHRoYW4gY3VycmVudCB2b3RlIGZvciB1cGRh dGUgcmVxdWVzdC4KKwkJICogMi4gbmV3IGJhbmR3aWR0aCB2b3RlIC0gImFiIG9yIGliIHZvdGUi IGlzIGxvd2VyCisJCSAqICAgIHRoYW4gY3VycmVudCB2b3RlIGF0IGVuZCBvZiBjb21taXQgb3Ig c3RvcC4KKwkJICovCisJCWlmICgocGFyYW1zX2NoYW5nZWQgJiYgKChuZXctPmJ3X2N0bCA+IG9s ZC0+YndfY3RsKSB8fAorCQkJKG5ldy0+bWF4X3Blcl9waXBlX2liID4gb2xkLT5tYXhfcGVyX3Bp cGVfaWIpKSkJfHwKKwkJCSghcGFyYW1zX2NoYW5nZWQgJiYgKChuZXctPmJ3X2N0bCA8IG9sZC0+ YndfY3RsKSB8fAorCQkJKG5ldy0+bWF4X3Blcl9waXBlX2liIDwgb2xkLT5tYXhfcGVyX3BpcGVf aWIpKSkpIHsKKwkJCURQVV9ERUJVRygiY3J0Yz0lZCBwPSVkIG5ld19idz0lbGx1LG9sZF9idz0l bGx1XG4iLAorCQkJCWNydGMtPmJhc2UuaWQsIHBhcmFtc19jaGFuZ2VkLAorCQkJCW5ldy0+Yndf Y3RsLCBvbGQtPmJ3X2N0bCk7CisJCQlvbGQtPmJ3X2N0bCA9IG5ldy0+YndfY3RsOworCQkJb2xk LT5tYXhfcGVyX3BpcGVfaWIgPSBuZXctPm1heF9wZXJfcGlwZV9pYjsKKwkJCXVwZGF0ZV9idXMg PSB0cnVlOwogCQl9CiAKIAkJaWYgKChwYXJhbXNfY2hhbmdlZCAmJgotCQkJCShuZXctPmNvcmVf Y2xrX3JhdGUgPiBvbGQtPmNvcmVfY2xrX3JhdGUpKSB8fAotCQkJCSghcGFyYW1zX2NoYW5nZWQg JiYKLQkJCQkobmV3LT5jb3JlX2Nsa19yYXRlIDwgb2xkLT5jb3JlX2Nsa19yYXRlKSkpIHsKKwkJ CShuZXctPmNvcmVfY2xrX3JhdGUgPiBvbGQtPmNvcmVfY2xrX3JhdGUpKSB8fAorCQkJKCFwYXJh bXNfY2hhbmdlZCAmJgorCQkJKG5ldy0+Y29yZV9jbGtfcmF0ZSA8IG9sZC0+Y29yZV9jbGtfcmF0 ZSkpKSB7CiAJCQlvbGQtPmNvcmVfY2xrX3JhdGUgPSBuZXctPmNvcmVfY2xrX3JhdGU7Ci0JCQl1 cGRhdGVfY2xrID0gMTsKKwkJCXVwZGF0ZV9jbGsgPSB0cnVlOwogCQl9CiAJfSBlbHNlIHsKIAkJ RFBVX0RFQlVHKCJjcnRjPSVkIGRpc2FibGVcbiIsIGNydGMtPmJhc2UuaWQpOwogCQltZW1zZXQo b2xkLCAwLCBzaXplb2YoKm9sZCkpOwogCQltZW1zZXQobmV3LCAwLCBzaXplb2YoKm5ldykpOwot CQl1cGRhdGVfYnVzID0gfjA7Ci0JCXVwZGF0ZV9jbGsgPSAxOworCQl1cGRhdGVfYnVzID0gdHJ1 ZTsKKwkJdXBkYXRlX2NsayA9IHRydWU7CiAJfQotCXRyYWNlX2RwdV9wZXJmX2NydGNfdXBkYXRl KGNydGMtPmJhc2UuaWQsCi0JCQkJbmV3LT5id19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lE X01OT0NdLAotCQkJCW5ldy0+YndfY3RsW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9MTENDXSwK LQkJCQluZXctPmJ3X2N0bFtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfRUJJXSwKLQkJCQluZXct PmNvcmVfY2xrX3JhdGUsIHN0b3BfcmVxLAotCQkJCXVwZGF0ZV9idXMsIHVwZGF0ZV9jbGspOwot Ci0JZm9yIChpID0gMDsgaSA8IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVg7IGkrKykgewot CQlpZiAodXBkYXRlX2J1cyAmIEJJVChpKSkgewotCQkJcmV0ID0gX2RwdV9jb3JlX3BlcmZfY3J0 Y191cGRhdGVfYnVzKGttcywgY3J0YywgaSk7Ci0JCQlpZiAocmV0KSB7Ci0JCQkJRFBVX0VSUk9S KCJjcnRjLSVkOiBmYWlsZWQgdG8gdXBkYXRlIGJ3IHZvdGUgZm9yIGJ1cy0lZFxuIiwKLQkJCQkJ ICBjcnRjLT5iYXNlLmlkLCBpKTsKLQkJCQlyZXR1cm4gcmV0OwotCQkJfQorCisJdHJhY2VfZHB1 X3BlcmZfY3J0Y191cGRhdGUoY3J0Yy0+YmFzZS5pZCwgbmV3LT5id19jdGwsCisJCW5ldy0+Y29y ZV9jbGtfcmF0ZSwgc3RvcF9yZXEsIHVwZGF0ZV9idXMsIHVwZGF0ZV9jbGspOworCisJaWYgKHVw ZGF0ZV9idXMpIHsKKwkJcmV0ID0gX2RwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGVfYnVzKGttcywg Y3J0Yyk7CisJCWlmIChyZXQpIHsKKwkJCURQVV9FUlJPUigiY3J0Yy0lZDogZmFpbGVkIHRvIHVw ZGF0ZSBidXMgYncgdm90ZVxuIiwKKwkJCQkgIGNydGMtPmJhc2UuaWQpOworCQkJcmV0dXJuIHJl dDsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2NvcmVfcGVyZi5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVf cGVyZi5oCmluZGV4IGZiY2JlMGMuLjBmYjI3NjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmgKQEAgLTMwLDggKzMwLDggQEAKICAqIEBjb3JlX2Ns a19yYXRlOiBjb3JlIGNsb2NrIHJhdGUgcmVxdWVzdAogICovCiBzdHJ1Y3QgZHB1X2NvcmVfcGVy Zl9wYXJhbXMgewotCXU2NCBtYXhfcGVyX3BpcGVfaWJbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lE X01BWF07Ci0JdTY0IGJ3X2N0bFtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYXTsKKwl1NjQg bWF4X3Blcl9waXBlX2liOworCXU2NCBid19jdGw7CiAJdTY0IGNvcmVfY2xrX3JhdGU7CiB9Owog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwppbmRleCBkMjdlYTJhLi5k MzRlYzlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0 Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKQEAgLTEz ODksMjEgKzEzODksMTQgQEAgc3RhdGljIGludCBkcHVfY3J0Y19kZWJ1Z2ZzX3N0YXRlX3Nob3co c3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp2KQogewogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9 IChzdHJ1Y3QgZHJtX2NydGMgKikgcy0+cHJpdmF0ZTsKIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9j cnRjID0gdG9fZHB1X2NydGMoY3J0Yyk7Ci0JaW50IGk7CiAKIAlzZXFfcHJpbnRmKHMsICJjbGll bnQgdHlwZTogJWRcbiIsIGRwdV9jcnRjX2dldF9jbGllbnRfdHlwZShjcnRjKSk7CiAJc2VxX3By aW50ZihzLCAiaW50Zl9tb2RlOiAlZFxuIiwgZHB1X2NydGNfZ2V0X2ludGZfbW9kZShjcnRjKSk7 CiAJc2VxX3ByaW50ZihzLCAiY29yZV9jbGtfcmF0ZTogJWxsdVxuIiwKIAkJCWRwdV9jcnRjLT5j dXJfcGVyZi5jb3JlX2Nsa19yYXRlKTsKLQlmb3IgKGkgPSBEUFVfUE9XRVJfSEFORExFX0RCVVNf SURfTU5PQzsKLQkJCWkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKLQkJ c2VxX3ByaW50ZihzLCAiYndfY3RsWyVzXTogJWxsdVxuIiwKLQkJCQlkcHVfcG93ZXJfaGFuZGxl X2dldF9kYnVzX25hbWUoaSksCi0JCQkJZHB1X2NydGMtPmN1cl9wZXJmLmJ3X2N0bFtpXSk7Ci0J CXNlcV9wcmludGYocywgIm1heF9wZXJfcGlwZV9pYlslc106ICVsbHVcbiIsCi0JCQkJZHB1X3Bv d2VyX2hhbmRsZV9nZXRfZGJ1c19uYW1lKGkpLAotCQkJCWRwdV9jcnRjLT5jdXJfcGVyZi5tYXhf cGVyX3BpcGVfaWJbaV0pOwotCX0KKwlzZXFfcHJpbnRmKHMsICJid19jdGw6ICVsbHVcbiIsIGRw dV9jcnRjLT5jdXJfcGVyZi5id19jdGwpOworCXNlcV9wcmludGYocywgIm1heF9wZXJfcGlwZV9p YjogJWxsdVxuIiwKKwkJCQlkcHVfY3J0Yy0+Y3VyX3BlcmYubWF4X3Blcl9waXBlX2liKTsKIAog CXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X3Bvd2VyX2hhbmRsZS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bv d2VyX2hhbmRsZS5jCmluZGV4IGZjMTQxMTYuLmQ1OGQwMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmMKQEAgLTI0LDIwICsyNCw2IEBA CiAjaW5jbHVkZSAiZHB1X3Bvd2VyX2hhbmRsZS5oIgogI2luY2x1ZGUgImRwdV90cmFjZS5oIgog Ci1zdGF0aWMgY29uc3QgY2hhciAqZGF0YV9idXNfbmFtZVtEUFVfUE9XRVJfSEFORExFX0RCVVNf SURfTUFYXSA9IHsKLQlbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01OT0NdID0gInFjb20sZHB1 LWRhdGEtYnVzIiwKLQlbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0xMQ0NdID0gInFjb20sZHB1 LWxsY2MtYnVzIiwKLQlbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VCSV0gPSAicWNvbSxkcHUt ZWJpLWJ1cyIsCi19OwotCi1jb25zdCBjaGFyICpkcHVfcG93ZXJfaGFuZGxlX2dldF9kYnVzX25h bWUodTMyIGJ1c19pZCkKLXsKLQlpZiAoYnVzX2lkIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lE X01BWCkKLQkJcmV0dXJuIGRhdGFfYnVzX25hbWVbYnVzX2lkXTsKLQotCXJldHVybiBOVUxMOwot fQotCiBzdGF0aWMgdm9pZCBkcHVfcG93ZXJfZXZlbnRfdHJpZ2dlcl9sb2NrZWQoc3RydWN0IGRw dV9wb3dlcl9oYW5kbGUgKnBoYW5kbGUsCiAJCXUzMiBldmVudF90eXBlKQogewpAQCAtNjYsNyAr NTIsNiBAQCBzdHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudCAqZHB1X3Bvd2VyX2NsaWVudF9jcmVhdGUo CiAKIAltdXRleF9sb2NrKCZwaGFuZGxlLT5waGFuZGxlX2xvY2spOwogCXN0cmxjcHkoY2xpZW50 LT5uYW1lLCBjbGllbnRfbmFtZSwgTUFYX0NMSUVOVF9OQU1FX0xFTik7Ci0JY2xpZW50LT51c2Vj YXNlX25keCA9IFZPVEVfSU5ERVhfRElTQUJMRTsKIAljbGllbnQtPmlkID0gaWQ7CiAJY2xpZW50 LT5hY3RpdmUgPSB0cnVlOwogCXByX2RlYnVnKCJjbGllbnQgJXMgY3JlYXRlZDolcEsgaWQgOiVk XG4iLCBjbGllbnRfbmFtZSwKQEAgLTE0Myw4ICsxMjgsNiBAQCBpbnQgZHB1X3Bvd2VyX3Jlc291 cmNlX2VuYWJsZShzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRsZSAqcGhhbmRsZSwKIAlzdHJ1Y3QgZHB1 X3Bvd2VyX2NsaWVudCAqcGNsaWVudCwgYm9vbCBlbmFibGUpCiB7CiAJYm9vbCBjaGFuZ2VkID0g ZmFsc2U7Ci0JdTMyIG1heF91c2VjYXNlX25keCA9IFZPVEVfSU5ERVhfRElTQUJMRSwgcHJldl91 c2VjYXNlX25keDsKLQlzdHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudCAqY2xpZW50OwogCXUzMiBldmVu dF90eXBlOwogCiAJaWYgKCFwaGFuZGxlIHx8ICFwY2xpZW50KSB7CkBAIC0xNTMsMzEgKzEzNiwx OSBAQCBpbnQgZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZShzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRs ZSAqcGhhbmRsZSwKIAl9CiAKIAltdXRleF9sb2NrKCZwaGFuZGxlLT5waGFuZGxlX2xvY2spOwot CWlmIChlbmFibGUpCisJaWYgKGVuYWJsZSkgewogCQlwY2xpZW50LT5yZWZjb3VudCsrOwotCWVs c2UgaWYgKHBjbGllbnQtPnJlZmNvdW50KQorCQlpZiAocGNsaWVudC0+cmVmY291bnQgPT0gMSkK KwkJCWNoYW5nZWQgPSB0cnVlOworCX0gZWxzZSBpZiAocGNsaWVudC0+cmVmY291bnQpIHsKIAkJ cGNsaWVudC0+cmVmY291bnQtLTsKLQotCWlmIChwY2xpZW50LT5yZWZjb3VudCkKLQkJcGNsaWVu dC0+dXNlY2FzZV9uZHggPSBWT1RFX0lOREVYX0xPVzsKLQllbHNlCi0JCXBjbGllbnQtPnVzZWNh c2VfbmR4ID0gVk9URV9JTkRFWF9ESVNBQkxFOwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShjbGll bnQsICZwaGFuZGxlLT5wb3dlcl9jbGllbnRfY2xpc3QsIGxpc3QpIHsKLQkJaWYgKGNsaWVudC0+ dXNlY2FzZV9uZHggPCBWT1RFX0lOREVYX01BWCAmJgotCQkgICAgY2xpZW50LT51c2VjYXNlX25k eCA+IG1heF91c2VjYXNlX25keCkKLQkJCW1heF91c2VjYXNlX25keCA9IGNsaWVudC0+dXNlY2Fz ZV9uZHg7Ci0JfQotCi0JaWYgKHBoYW5kbGUtPmN1cnJlbnRfdXNlY2FzZV9uZHggIT0gbWF4X3Vz ZWNhc2VfbmR4KSB7Ci0JCWNoYW5nZWQgPSB0cnVlOwotCQlwcmV2X3VzZWNhc2VfbmR4ID0gcGhh bmRsZS0+Y3VycmVudF91c2VjYXNlX25keDsKLQkJcGhhbmRsZS0+Y3VycmVudF91c2VjYXNlX25k eCA9IG1heF91c2VjYXNlX25keDsKKwkJaWYgKCFwY2xpZW50LT5yZWZjb3VudCkKKwkJCWNoYW5n ZWQgPSB0cnVlOwogCX0KIAotCXByX2RlYnVnKCIlcFM6IGNoYW5nZWQ9JWQgY3VycmVudCBpZHg9 JWQgcmVxdWVzdCBjbGllbnQgJXMgaWQ6JXUgZW5hYmxlOiVkIHJlZmNvdW50OiVkXG4iLAotCQlf X2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksIGNoYW5nZWQsIG1heF91c2VjYXNlX25keCwKLQkJ cGNsaWVudC0+bmFtZSwgcGNsaWVudC0+aWQsIGVuYWJsZSwgcGNsaWVudC0+cmVmY291bnQpOwor CXByX2RlYnVnKCIlcFM6Y2hhbmdlZD0lZCBjbGllbnQgJXMgaWQ6JXUgZW5hYmxlOiVkIHJlZmNv dW50OiVkXG4iLAorCQlfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksIGNoYW5nZWQsIHBjbGll bnQtPm5hbWUsCisJCXBjbGllbnQtPmlkLCBlbmFibGUsIHBjbGllbnQtPnJlZmNvdW50KTsKIAog CWlmICghY2hhbmdlZCkKIAkJZ290byBlbmQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmgKaW5kZXggYTY1YjdhMi4uYjFhNWFlNCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuaApAQCAt MTYsMTEgKzE2LDYgQEAKIAogI2RlZmluZSBNQVhfQ0xJRU5UX05BTUVfTEVOIDEyOAogCi0jZGVm aW5lIERQVV9QT1dFUl9IQU5ETEVfRU5BQkxFX0JVU19BQl9RVU9UQQkwCi0jZGVmaW5lIERQVV9Q T1dFUl9IQU5ETEVfRElTQUJMRV9CVVNfQUJfUVVPVEEJMAotI2RlZmluZSBEUFVfUE9XRVJfSEFO RExFX0VOQUJMRV9CVVNfSUJfUVVPVEEJMTYwMDAwMDAwMAotI2RlZmluZSBEUFVfUE9XRVJfSEFO RExFX0RJU0FCTEVfQlVTX0lCX1FVT1RBCTAKLQogI2luY2x1ZGUgImRwdV9pb191dGlsLmgiCiAK IC8qIGV2ZW50cyB3aWxsIGJlIHRyaWdnZXJlZCBvbiBwb3dlciBoYW5kbGVyIGVuYWJsZS9kaXNh YmxlICovCkBAIC0yOCw2NCArMjMsMjEgQEAKICNkZWZpbmUgRFBVX1BPV0VSX0VWRU5UX0VOQUJM RQlCSVQoMSkKIAogLyoqCi0gKiBtZHNzX2J1c192b3RlX3R5cGU6IHJlZ2lzdGVyIGJ1cyB2b3Rl IHR5cGUKLSAqIFZPVEVfSU5ERVhfRElTQUJMRTogcmVtb3ZlcyB0aGUgY2xpZW50IHZvdGUKLSAq IFZPVEVfSU5ERVhfTE9XOiBrZWVwcyB0aGUgbG93ZXN0IHZvdGUgZm9yIHJlZ2lzdGVyIGJ1cwot ICogVk9URV9JTkRFWF9NQVg6IGludmFsaWQKLSAqLwotZW51bSBtZHNzX2J1c192b3RlX3R5cGUg ewotCVZPVEVfSU5ERVhfRElTQUJMRSwKLQlWT1RFX0lOREVYX0xPVywKLQlWT1RFX0lOREVYX01B WCwKLX07Ci0KLS8qKgotICogZW51bSBkcHVfcG93ZXJfaGFuZGxlX2RhdGFfYnVzX2NsaWVudCAt IHR5cGUgb2YgYXhpIGJ1cyBjbGllbnRzCi0gKiBARFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19D TElFTlRfUlQ6IGNvcmUgcmVhbC10aW1lIGJ1cyBjbGllbnQKLSAqIEBEUFVfUE9XRVJfSEFORExF X0RBVEFfQlVTX0NMSUVOVF9OUlQ6IGNvcmUgbm9uLXJlYWwtdGltZSBidXMgY2xpZW50Ci0gKiBA RFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfTUFYOiBtYXhpbXVtIG51bWJlciBvZiBi dXMgY2xpZW50IHR5cGUKLSAqLwotZW51bSBkcHVfcG93ZXJfaGFuZGxlX2RhdGFfYnVzX2NsaWVu dCB7Ci0JRFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfUlQsCi0JRFBVX1BPV0VSX0hB TkRMRV9EQVRBX0JVU19DTElFTlRfTlJULAotCURQVV9QT1dFUl9IQU5ETEVfREFUQV9CVVNfQ0xJ RU5UX01BWAotfTsKLQotLyoqCi0gKiBlbnVtIERQVV9QT1dFUl9IQU5ETEVfREJVU19JRCAtIGRh dGEgYnVzIGlkZW50aWZpZXIKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQzogRFBV L01OT0MgZGF0YSBidXMKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTExDQzogTU5PQy9M TENDIGRhdGEgYnVzCi0gKiBARFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VCSTogTExDQy9FQkkg ZGF0YSBidXMKLSAqLwotZW51bSBEUFVfUE9XRVJfSEFORExFX0RCVVNfSUQgewotCURQVV9QT1dF Ul9IQU5ETEVfREJVU19JRF9NTk9DLAotCURQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9MTENDLAot CURQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9FQkksCi0JRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lE X01BWCwKLX07Ci0KLS8qKgogICogc3RydWN0IGRwdV9wb3dlcl9jbGllbnQ6IHN0b3JlcyB0aGUg cG93ZXIgY2xpZW50IGZvciBkcHUgZHJpdmVyCiAgKiBAbmFtZToJbmFtZSBvZiB0aGUgY2xpZW50 Ci0gKiBAdXNlY2FzZV9uZHg6IGN1cnJlbnQgcmVncyBidXMgdm90ZSB0eXBlCiAgKiBAcmVmY291 bnQ6CWN1cnJlbnQgcmVmY291bnQgaWYgbXVsdGlwbGUgbW9kdWxlcyBhcmUgdXNpbmcgc2FtZQog ICogICAgICAgICAgICAgIHNhbWUgY2xpZW50IGZvciBlbmFibGUvZGlzYWJsZS4gUG93ZXIgbW9k dWxlIHdpbGwKICAqICAgICAgICAgICAgICBhZ2dyZWdhdGUgdGhlIHJlZmNvdW50IGFuZCB2b3Rl IGFjY29yZGluZ2x5IGZvciB0aGlzCiAgKiAgICAgICAgICAgICAgY2xpZW50LgogICogQGlkOgkJ YXNzaWduZWQgZHVyaW5nIGNyZWF0ZS4gaGVscHMgZm9yIGRlYnVnZ2luZy4KICAqIEBsaXN0Ogls aXN0IHRvIGF0dGFjaCBwb3dlciBoYW5kbGUgbWFzdGVyIGxpc3QKLSAqIEBhYjogICAgICAgICBh cmJpdHJhdGVkIGJhbmR3aWR0aCBmb3IgZWFjaCBidXMgY2xpZW50Ci0gKiBAaWI6ICAgICAgICAg aW5zdGFudGFuZW91cyBiYW5kd2lkdGggZm9yIGVhY2ggYnVzIGNsaWVudAogICogQGFjdGl2ZToJ aW5pZGNhdGVzIHRoZSBzdGF0ZSBvZiBkcHUgcG93ZXIgaGFuZGxlCiAgKi8KIHN0cnVjdCBkcHVf cG93ZXJfY2xpZW50IHsKIAljaGFyIG5hbWVbTUFYX0NMSUVOVF9OQU1FX0xFTl07Ci0Jc2hvcnQg dXNlY2FzZV9uZHg7CiAJc2hvcnQgcmVmY291bnQ7CiAJdTMyIGlkOwogCXN0cnVjdCBsaXN0X2hl YWQgbGlzdDsKLQl1NjQgYWJbRFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfTUFYXTsK LQl1NjQgaWJbRFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfTUFYXTsKIAlib29sIGFj dGl2ZTsKIH07CiAKQEAgLTExMiwxNCArNjQsMTIgQEAgc3RydWN0IGRwdV9wb3dlcl9ldmVudCB7 CiAgKiBAY2xpZW50X2NsaXN0OiBtYXN0ZXIgbGlzdCB0byBzdG9yZSBhbGwgY2xpZW50cwogICog QHBoYW5kbGVfbG9jazogbG9jayB0byBzeW5jaHJvbml6ZSB0aGUgZW5hYmxlL2Rpc2FibGUKICAq IEBkZXY6IHBvaW50ZXIgdG8gZGV2aWNlIHN0cnVjdHVyZQotICogQHVzZWNhc2VfbmR4OiBjdXJy ZW50IHVzZWNhc2UgaW5kZXgKICAqIEBldmVudF9saXN0OiBjdXJyZW50IHBvd2VyIGhhbmRsZSBl dmVudCBsaXN0CiAgKi8KIHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlIHsKIAlzdHJ1Y3QgbGlzdF9o ZWFkIHBvd2VyX2NsaWVudF9jbGlzdDsKIAlzdHJ1Y3QgbXV0ZXggcGhhbmRsZV9sb2NrOwogCXN0 cnVjdCBkZXZpY2UgKmRldjsKLQl1MzIgY3VycmVudF91c2VjYXNlX25keDsKIAlzdHJ1Y3QgbGlz dF9oZWFkIGV2ZW50X2xpc3Q7CiB9OwogCkBAIC0xNzMsMTcgKzEyMyw2IEBAIGludCBkcHVfcG93 ZXJfcmVzb3VyY2VfZW5hYmxlKHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwZGF0YSwKIAlzdHJ1 Y3QgZHB1X3Bvd2VyX2NsaWVudCAqcGNsaWVudCwgYm9vbCBlbmFibGUpOwogCiAvKioKLSAqIGRw dV9wb3dlcl9kYXRhX2J1c19iYW5kd2lkdGhfY3RybCgpIC0gY29udHJvbCBkYXRhIGJ1cyBiYW5k d2lkdGggZW5hYmxlCi0gKiBAcGhhbmRsZTogIHBvd2VyIGhhbmRsZSBjb250YWluaW5nIHRoZSBy ZXNvdXJjZXMKLSAqIEBjbGllbnQ6IGNsaWVudCBpbmZvcm1hdGlvbiB0byBiYW5kd2lkdGggY29u dHJvbAotICogQGVuYWJsZTogdHJ1ZSB0byBlbmFibGUgYmFuZHdpZHRoIGZvciBkYXRhIGJhc2UK LSAqCi0gKiBSZXR1cm46IG5vbmUKLSAqLwotdm9pZCBkcHVfcG93ZXJfZGF0YV9idXNfYmFuZHdp ZHRoX2N0cmwoc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBoYW5kbGUsCi0JCXN0cnVjdCBkcHVf cG93ZXJfY2xpZW50ICpwY2xpZW50LCBpbnQgZW5hYmxlKTsKLQotLyoqCiAgKiBkcHVfcG93ZXJf aGFuZGxlX3JlZ2lzdGVyX2V2ZW50IC0gcmVnaXN0ZXIgYSBjYWxsYmFjayBmdW5jdGlvbiBmb3Ig YW4gZXZlbnQuCiAgKglDbGllbnRzIGNhbiByZWdpc3RlciBmb3IgbXVsdGlwbGUgZXZlbnRzIHdp dGggYSBzaW5nbGUgcmVnaXN0ZXIuCiAgKglBbnkgYmxvY2sgd2l0aCBhY2Nlc3MgdG8gcGhhbmRs ZSBjYW4gcmVnaXN0ZXIgZm9yIHRoZSBldmVudApAQCAtMjA3LDExICsxNDYsNCBAQCBzdHJ1Y3Qg ZHB1X3Bvd2VyX2V2ZW50ICpkcHVfcG93ZXJfaGFuZGxlX3JlZ2lzdGVyX2V2ZW50KAogdm9pZCBk cHVfcG93ZXJfaGFuZGxlX3VucmVnaXN0ZXJfZXZlbnQoc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUg KnBoYW5kbGUsCiAJCXN0cnVjdCBkcHVfcG93ZXJfZXZlbnQgKmV2ZW50KTsKIAotLyoqCi0gKiBk cHVfcG93ZXJfaGFuZGxlX2dldF9kYnVzX25hbWUgLSBnZXQgbmFtZSBvZiBnaXZlbiBkYXRhIGJ1 cyBpZGVudGlmaWVyCi0gKiBAYnVzX2lkOglkYXRhIGJ1cyBpZGVudGlmaWVyCi0gKiBSZXR1cm46 CVBvaW50ZXIgdG8gbmFtZSBzdHJpbmcgaWYgc3VjY2VzczsgTlVMTCBvdGhlcndpc2UKLSAqLwot Y29uc3QgY2hhciAqZHB1X3Bvd2VyX2hhbmRsZV9nZXRfZGJ1c19uYW1lKHUzMiBidXNfaWQpOwot CiAjZW5kaWYgLyogX0RQVV9QT1dFUl9IQU5ETEVfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV90cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X3RyYWNlLmgKaW5kZXggMGMxMjJlMS4uN2M4YTkyZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmgKQEAgLTE2NywxNiArMTY3LDEyIEBACiAp CiAKIFRSQUNFX0VWRU5UKGRwdV9wZXJmX2NydGNfdXBkYXRlLAotCVRQX1BST1RPKHUzMiBjcnRj LCB1NjQgYndfY3RsX21ub2MsIHU2NCBid19jdGxfbGxjYywKLQkJCXU2NCBid19jdGxfZWJpLCB1 MzIgY29yZV9jbGtfcmF0ZSwKLQkJCWJvb2wgc3RvcF9yZXEsIHUzMiB1cGRhdGVfYnVzLCB1MzIg dXBkYXRlX2NsayksCi0JVFBfQVJHUyhjcnRjLCBid19jdGxfbW5vYywgYndfY3RsX2xsY2MsIGJ3 X2N0bF9lYmksIGNvcmVfY2xrX3JhdGUsCi0JCXN0b3BfcmVxLCB1cGRhdGVfYnVzLCB1cGRhdGVf Y2xrKSwKKwlUUF9QUk9UTyh1MzIgY3J0YywgdTY0IGJ3X2N0bCwgdTMyIGNvcmVfY2xrX3JhdGUs CisJCQlib29sIHN0b3BfcmVxLCBib29sIHVwZGF0ZV9idXMsIGJvb2wgdXBkYXRlX2NsayksCisJ VFBfQVJHUyhjcnRjLCBid19jdGwsIGNvcmVfY2xrX3JhdGUsIHN0b3BfcmVxLCB1cGRhdGVfYnVz LCB1cGRhdGVfY2xrKSwKIAlUUF9TVFJVQ1RfX2VudHJ5KAogCQkJX19maWVsZCh1MzIsIGNydGMp Ci0JCQlfX2ZpZWxkKHU2NCwgYndfY3RsX21ub2MpCi0JCQlfX2ZpZWxkKHU2NCwgYndfY3RsX2xs Y2MpCi0JCQlfX2ZpZWxkKHU2NCwgYndfY3RsX2ViaSkKKwkJCV9fZmllbGQodTY0LCBid19jdGwp CiAJCQlfX2ZpZWxkKHUzMiwgY29yZV9jbGtfcmF0ZSkKIAkJCV9fZmllbGQoYm9vbCwgc3RvcF9y ZXEpCiAJCQlfX2ZpZWxkKHUzMiwgdXBkYXRlX2J1cykKQEAgLTE4NCwyMCArMTgwLDE2IEBACiAJ KSwKIAlUUF9mYXN0X2Fzc2lnbigKIAkJCV9fZW50cnktPmNydGMgPSBjcnRjOwotCQkJX19lbnRy eS0+YndfY3RsX21ub2MgPSBid19jdGxfbW5vYzsKLQkJCV9fZW50cnktPmJ3X2N0bF9sbGNjID0g YndfY3RsX2xsY2M7Ci0JCQlfX2VudHJ5LT5id19jdGxfZWJpID0gYndfY3RsX2ViaTsKKwkJCV9f ZW50cnktPmJ3X2N0bCA9IGJ3X2N0bDsKIAkJCV9fZW50cnktPmNvcmVfY2xrX3JhdGUgPSBjb3Jl X2Nsa19yYXRlOwogCQkJX19lbnRyeS0+c3RvcF9yZXEgPSBzdG9wX3JlcTsKIAkJCV9fZW50cnkt PnVwZGF0ZV9idXMgPSB1cGRhdGVfYnVzOwogCQkJX19lbnRyeS0+dXBkYXRlX2NsayA9IHVwZGF0 ZV9jbGs7CiAJKSwKIAkgVFBfcHJpbnRrKAotCQkiY3J0Yz0lZCBid19tbm9jPSVsbHUgYndfbGxj Yz0lbGx1IGJ3X2ViaT0lbGx1IGNsa19yYXRlPSV1IHN0b3BfcmVxPSVkIHVfYnVzPSVkIHVfY2xr PSVkIiwKKwkJImNydGM9JWQgYndfY3RsPSVsbHUgY2xrX3JhdGU9JXUgc3RvcF9yZXE9JWQgdV9i dXM9JWQgdV9jbGs9JWQiLAogCQkJX19lbnRyeS0+Y3J0YywKLQkJCV9fZW50cnktPmJ3X2N0bF9t bm9jLAotCQkJX19lbnRyeS0+YndfY3RsX2xsY2MsCi0JCQlfX2VudHJ5LT5id19jdGxfZWJpLAor CQkJX19lbnRyeS0+YndfY3RsLAogCQkJX19lbnRyeS0+Y29yZV9jbGtfcmF0ZSwKIAkJCV9fZW50 cnktPnN0b3BfcmVxLAogCQkJX19lbnRyeS0+dXBkYXRlX2J1cywKLS0gClRoZSBRdWFsY29tbSBJ bm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9y dW0sCmEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxp c3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=