From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sravanthi Kollukuduru Subject: [PATCH v2 1/3] drm/msm/dpu: clean up references of DPU custom bus scaling Date: Wed, 10 Oct 2018 14:54:32 +0530 Message-ID: <20181010092434.853-2-skolluku@codeaurora.org> References: <20181010092434.853-1-skolluku@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181010092434.853-1-skolluku-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: sean-p7yTbzM4H96eqtR555YLDQ@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, Sravanthi Kollukuduru List-Id: devicetree@vger.kernel.org U2luY2UgdGhlIHVwc3RyZWFtIGludGVyY29ubmVjdCBidXMgZnJhbWV3b3JrIGhhcyBsYW5kZWQK dXBzdHJlYW0sIHRoZSBleGlzdGluZyByZWZlcmVuY2VzIG9mIGN1c3RvbSBidXMgc2NhbGluZwpu ZWVkcyB0byBiZSBjbGVhbmVkIHVwLgoKQ2hhbmdlcyBpbiB2MjoKCS0gRml4ZWQgYnVpbGQgZXJy b3IgZHVlIHRvIHBhcnRpYWwgY2xlYW4gdXAKClNpZ25lZC1vZmYtYnk6IFNyYXZhbnRoaSBLb2xs dWt1ZHVydSA8c2tvbGx1a3VAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5jICAgIHwgMTU3ICsrKysrKysrKystLS0tLS0tLS0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmggICAgfCAg IDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgICAgICAgICB8 ICAxMyArLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5j IHwgIDQ3ICsrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9o YW5kbGUuaCB8ICA2OCAtLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfdHJhY2UuaCAgICAgICAgfCAgMjEgKy0tCiA2IGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlv bnMoKyksIDIyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfY29yZV9wZXJmLmMKaW5kZXggNDFjNTE5MWY5MDU2Li40ZWU2ZjBkZDE0ZjcgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmMKQEAgLTkwLDcg KzkwLDYgQEAgc3RhdGljIHZvaWQgX2RwdV9jb3JlX3BlcmZfY2FsY19jcnRjKHN0cnVjdCBkcHVf a21zICprbXMsCiAJCXN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcyAqcGVyZikKIHsKIAlzdHJ1 Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGU7Ci0JaW50IGk7CiAKIAlpZiAoIWttcyB8fCAh a21zLT5jYXRhbG9nIHx8ICFjcnRjIHx8ICFzdGF0ZSB8fCAhcGVyZikgewogCQlEUFVfRVJST1Io ImludmFsaWQgcGFyYW1ldGVyc1xuIik7CkBAIC0xMDEsMzUgKzEwMCwyNCBAQCBzdGF0aWMgdm9p ZCBfZHB1X2NvcmVfcGVyZl9jYWxjX2NydGMoc3RydWN0IGRwdV9rbXMgKmttcywKIAltZW1zZXQo cGVyZiwgMCwgc2l6ZW9mKHN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcykpOwogCiAJaWYgKCFk cHVfY3N0YXRlLT5id19jb250cm9sKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBEUFVfUE9XRVJfSEFO RExFX0RCVVNfSURfTUFYOyBpKyspIHsKLQkJCXBlcmYtPmJ3X2N0bFtpXSA9IGttcy0+Y2F0YWxv Zy0+cGVyZi5tYXhfYndfaGlnaCAqCisJCXBlcmYtPmJ3X2N0bCA9IGttcy0+Y2F0YWxvZy0+cGVy Zi5tYXhfYndfaGlnaCAqCiAJCQkJCTEwMDBVTEw7Ci0JCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJb aV0gPSBwZXJmLT5id19jdGxbaV07Ci0JCX0KKwkJcGVyZi0+bWF4X3Blcl9waXBlX2liID0gcGVy Zi0+YndfY3RsOwogCQlwZXJmLT5jb3JlX2Nsa19yYXRlID0ga21zLT5wZXJmLm1heF9jb3JlX2Ns a19yYXRlOwogCX0gZWxzZSBpZiAoa21zLT5wZXJmLnBlcmZfdHVuZS5tb2RlID09IERQVV9QRVJG X01PREVfTUlOSU1VTSkgewotCQlmb3IgKGkgPSAwOyBpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVT X0lEX01BWDsgaSsrKSB7Ci0JCQlwZXJmLT5id19jdGxbaV0gPSAwOwotCQkJcGVyZi0+bWF4X3Bl cl9waXBlX2liW2ldID0gMDsKLQkJfQorCQlwZXJmLT5id19jdGwgPSAwOworCQlwZXJmLT5tYXhf cGVyX3BpcGVfaWIgPSAwOwogCQlwZXJmLT5jb3JlX2Nsa19yYXRlID0gMDsKIAl9IGVsc2UgaWYg KGttcy0+cGVyZi5wZXJmX3R1bmUubW9kZSA9PSBEUFVfUEVSRl9NT0RFX0ZJWEVEKSB7Ci0JCWZv ciAoaSA9IDA7IGkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKLQkJCXBl cmYtPmJ3X2N0bFtpXSA9IGttcy0+cGVyZi5maXhfY29yZV9hYl92b3RlOwotCQkJcGVyZi0+bWF4 X3Blcl9waXBlX2liW2ldID0ga21zLT5wZXJmLmZpeF9jb3JlX2liX3ZvdGU7Ci0JCX0KKwkJcGVy Zi0+YndfY3RsID0ga21zLT5wZXJmLmZpeF9jb3JlX2FiX3ZvdGU7CisJCXBlcmYtPm1heF9wZXJf cGlwZV9pYiA9IGttcy0+cGVyZi5maXhfY29yZV9pYl92b3RlOwogCQlwZXJmLT5jb3JlX2Nsa19y YXRlID0ga21zLT5wZXJmLmZpeF9jb3JlX2Nsa19yYXRlOwogCX0KIAogCURQVV9ERUJVRygKLQkJ ImNydGM9JWQgY2xrX3JhdGU9JWxsdSBjb3JlX2liPSVsbHUgY29yZV9hYj0lbGx1IGxsY2NfaWI9 JWxsdSBsbGNjX2FiPSVsbHUgbWVtX2liPSVsbHUgbWVtX2FiPSVsbHVcbiIsCisJCSJjcnRjPSVk IGNsa19yYXRlPSVsbHUgY29yZV9pYj0lbGx1IGNvcmVfYWI9JWxsdVxuIiwKIAkJCWNydGMtPmJh c2UuaWQsIHBlcmYtPmNvcmVfY2xrX3JhdGUsCi0JCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJbRFBV X1BPV0VSX0hBTkRMRV9EQlVTX0lEX01OT0NdLAotCQkJcGVyZi0+YndfY3RsW0RQVV9QT1dFUl9I QU5ETEVfREJVU19JRF9NTk9DXSwKLQkJCXBlcmYtPm1heF9wZXJfcGlwZV9pYltEUFVfUE9XRVJf SEFORExFX0RCVVNfSURfTExDQ10sCi0JCQlwZXJmLT5id19jdGxbRFBVX1BPV0VSX0hBTkRMRV9E QlVTX0lEX0xMQ0NdLAotCQkJcGVyZi0+bWF4X3Blcl9waXBlX2liW0RQVV9QT1dFUl9IQU5ETEVf REJVU19JRF9FQkldLAotCQkJcGVyZi0+YndfY3RsW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9F QkldKTsKKwkJCXBlcmYtPm1heF9wZXJfcGlwZV9pYiwgcGVyZi0+YndfY3RsKTsKIH0KIAogaW50 IGRwdV9jb3JlX3BlcmZfY3J0Y19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCkBAIC0xNDIs NyArMTMwLDYgQEAgaW50IGRwdV9jb3JlX3BlcmZfY3J0Y19jaGVjayhzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCiAJc3RydWN0IGRwdV9jcnRjX3N0YXRlICpkcHVfY3N0YXRlOwogCXN0cnVjdCBkcm1f Y3J0YyAqdG1wX2NydGM7CiAJc3RydWN0IGRwdV9rbXMgKmttczsKLQlpbnQgaTsKIAogCWlmICgh Y3J0YyB8fCAhc3RhdGUpIHsKIAkJRFBVX0VSUk9SKCJpbnZhbGlkIGNydGNcbiIpOwpAQCAtMTY0 LDMxICsxNTEsMjggQEAgaW50IGRwdV9jb3JlX3BlcmZfY3J0Y19jaGVjayhzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCiAJLyogb2J0YWluIG5ldyB2YWx1ZXMgKi8KIAlfZHB1X2NvcmVfcGVyZl9jYWxj X2NydGMoa21zLCBjcnRjLCBzdGF0ZSwgJmRwdV9jc3RhdGUtPm5ld19wZXJmKTsKIAotCWZvciAo aSA9IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NTk9DOwotCQkJaSA8IERQVV9QT1dFUl9IQU5E TEVfREJVU19JRF9NQVg7IGkrKykgewotCQlid19zdW1fb2ZfaW50ZnMgPSBkcHVfY3N0YXRlLT5u ZXdfcGVyZi5id19jdGxbaV07Ci0JCWN1cnJfY2xpZW50X3R5cGUgPSBkcHVfY3J0Y19nZXRfY2xp ZW50X3R5cGUoY3J0Yyk7CisJYndfc3VtX29mX2ludGZzID0gZHB1X2NzdGF0ZS0+bmV3X3BlcmYu YndfY3RsOworCWN1cnJfY2xpZW50X3R5cGUgPSBkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUoY3J0 Yyk7CiAKLQkJZHJtX2Zvcl9lYWNoX2NydGModG1wX2NydGMsIGNydGMtPmRldikgewotCQkJaWYg KF9kcHVfY29yZV9wZXJmX2NydGNfaXNfcG93ZXJfb24odG1wX2NydGMpICYmCi0JCQkgICAgKGRw dV9jcnRjX2dldF9jbGllbnRfdHlwZSh0bXBfY3J0YykgPT0KLQkJCQkJICAgIGN1cnJfY2xpZW50 X3R5cGUpICYmCi0JCQkgICAgKHRtcF9jcnRjICE9IGNydGMpKSB7Ci0JCQkJc3RydWN0IGRwdV9j cnRjX3N0YXRlICp0bXBfY3N0YXRlID0KLQkJCQkJdG9fZHB1X2NydGNfc3RhdGUodG1wX2NydGMt PnN0YXRlKTsKLQotCQkJCURQVV9ERUJVRygiY3J0YzolZCBidzolbGx1IGN0cmw6JWRcbiIsCi0J CQkJCXRtcF9jcnRjLT5iYXNlLmlkLAotCQkJCQl0bXBfY3N0YXRlLT5uZXdfcGVyZi5id19jdGxb aV0sCi0JCQkJCXRtcF9jc3RhdGUtPmJ3X2NvbnRyb2wpOwotCQkJCS8qCi0JCQkJICogRm9yIGJ3 IGNoZWNrIG9ubHkgdXNlIHRoZSBidyBpZiB0aGUKLQkJCQkgKiBhdG9taWMgcHJvcGVydHkgaGFz IGJlZW4gYWxyZWFkeSBzZXQKLQkJCQkgKi8KLQkJCQlpZiAodG1wX2NzdGF0ZS0+YndfY29udHJv bCkKLQkJCQkJYndfc3VtX29mX2ludGZzICs9Ci0JCQkJCQl0bXBfY3N0YXRlLT5uZXdfcGVyZi5i d19jdGxbaV07Ci0JCQl9CisJZHJtX2Zvcl9lYWNoX2NydGModG1wX2NydGMsIGNydGMtPmRldikg eworCQlpZiAoX2RwdV9jb3JlX3BlcmZfY3J0Y19pc19wb3dlcl9vbih0bXBfY3J0YykgJiYKKwkJ ICAgIChkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUodG1wX2NydGMpID09CisJCQkJICAgIGN1cnJf Y2xpZW50X3R5cGUpICYmCisJCSAgICAodG1wX2NydGMgIT0gY3J0YykpIHsKKwkJCXN0cnVjdCBk cHVfY3J0Y19zdGF0ZSAqdG1wX2NzdGF0ZSA9CisJCQkJdG9fZHB1X2NydGNfc3RhdGUodG1wX2Ny dGMtPnN0YXRlKTsKKworCQkJRFBVX0RFQlVHKCJjcnRjOiVkIGJ3OiVsbHUgY3RybDolZFxuIiwK KwkJCQl0bXBfY3J0Yy0+YmFzZS5pZCwKKwkJCQl0bXBfY3N0YXRlLT5uZXdfcGVyZi5id19jdGws CisJCQkJdG1wX2NzdGF0ZS0+YndfY29udHJvbCk7CisJCQkvKgorCQkJICogRm9yIGJ3IGNoZWNr IG9ubHkgdXNlIHRoZSBidyBpZiB0aGUKKwkJCSAqIGF0b21pYyBwcm9wZXJ0eSBoYXMgYmVlbiBh bHJlYWR5IHNldAorCQkJICovCisJCQlpZiAodG1wX2NzdGF0ZS0+YndfY29udHJvbCkKKwkJCQli d19zdW1fb2ZfaW50ZnMgKz0KKwkJCQkJdG1wX2NzdGF0ZS0+bmV3X3BlcmYuYndfY3RsOwogCQl9 CiAKIAkJLyogY29udmVydCBiYW5kd2lkdGggdG8ga2IgKi8KQEAgLTIxOSw5ICsyMDMsOSBAQCBp bnQgZHB1X2NvcmVfcGVyZl9jcnRjX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIH0KIAog c3RhdGljIGludCBfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9idXMoc3RydWN0IGRwdV9rbXMg KmttcywKLQkJc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MzIgYnVzX2lkKQorCQlzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCiB7Ci0Jc3RydWN0IGRwdV9jb3JlX3BlcmZfcGFyYW1zIHBlcmYgPSB7IHsg MCB9IH07CisJc3RydWN0IGRwdV9jb3JlX3BlcmZfcGFyYW1zIHBlcmYgPSB7IDAgfTsKIAllbnVt IGRwdV9jcnRjX2NsaWVudF90eXBlIGN1cnJfY2xpZW50X3R5cGUKIAkJCQkJPSBkcHVfY3J0Y19n ZXRfY2xpZW50X3R5cGUoY3J0Yyk7CiAJc3RydWN0IGRybV9jcnRjICp0bXBfY3J0YzsKQEAgLTIz NCwxMyArMjE4LDEyIEBAIHN0YXRpYyBpbnQgX2RwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGVfYnVz KHN0cnVjdCBkcHVfa21zICprbXMsCiAJCQkJZHB1X2NydGNfZ2V0X2NsaWVudF90eXBlKHRtcF9j cnRjKSkgewogCQkJZHB1X2NzdGF0ZSA9IHRvX2RwdV9jcnRjX3N0YXRlKHRtcF9jcnRjLT5zdGF0 ZSk7CiAKLQkJCXBlcmYubWF4X3Blcl9waXBlX2liW2J1c19pZF0gPQotCQkJCW1heChwZXJmLm1h eF9wZXJfcGlwZV9pYltidXNfaWRdLAotCQkJCWRwdV9jc3RhdGUtPm5ld19wZXJmLm1heF9wZXJf cGlwZV9pYltidXNfaWRdKTsKKwkJCXBlcmYubWF4X3Blcl9waXBlX2liID0KKwkJCQltYXgocGVy Zi5tYXhfcGVyX3BpcGVfaWIsCisJCQkJZHB1X2NzdGF0ZS0+bmV3X3BlcmYubWF4X3Blcl9waXBl X2liKTsKIAotCQkJRFBVX0RFQlVHKCJjcnRjPSVkIGJ1c19pZD0lZCBidz0lbGx1XG4iLAotCQkJ CXRtcF9jcnRjLT5iYXNlLmlkLCBidXNfaWQsCi0JCQkJZHB1X2NzdGF0ZS0+bmV3X3BlcmYuYndf Y3RsW2J1c19pZF0pOworCQkJRFBVX0RFQlVHKCJjcnRjPSVkIGJ3PSVsbHVcbiIsCisJCQkJdG1w X2NydGMtPmJhc2UuaWQsIGRwdV9jc3RhdGUtPm5ld19wZXJmLmJ3X2N0bCk7CiAJCX0KIAl9CiAJ cmV0dXJuIHJldDsKQEAgLTI2MCw3ICsyNDMsNiBAQCB2b2lkIGRwdV9jb3JlX3BlcmZfY3J0Y19y ZWxlYXNlX2J3KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9j cnRjOwogCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZTsKIAlzdHJ1Y3QgZHB1X2tt cyAqa21zOwotCWludCBpOwogCiAJaWYgKCFjcnRjKSB7CiAJCURQVV9FUlJPUigiaW52YWxpZCBj cnRjXG4iKTsKQEAgLTI5NiwxMCArMjc4LDggQEAgdm9pZCBkcHVfY29yZV9wZXJmX2NydGNfcmVs ZWFzZV9idyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJaWYgKGttcy0+cGVyZi5lbmFibGVfYndf cmVsZWFzZSkgewogCQl0cmFjZV9kcHVfY21kX3JlbGVhc2VfYncoY3J0Yy0+YmFzZS5pZCk7CiAJ CURQVV9ERUJVRygiUmVsZWFzZSBCVyBjcnRjPSVkXG4iLCBjcnRjLT5iYXNlLmlkKTsKLQkJZm9y IChpID0gMDsgaSA8IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVg7IGkrKykgewotCQkJZHB1 X2NydGMtPmN1cl9wZXJmLmJ3X2N0bFtpXSA9IDA7Ci0JCQlfZHB1X2NvcmVfcGVyZl9jcnRjX3Vw ZGF0ZV9idXMoa21zLCBjcnRjLCBpKTsKLQkJfQorCQlkcHVfY3J0Yy0+Y3VyX3BlcmYuYndfY3Rs ID0gMDsKKwkJX2RwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGVfYnVzKGttcywgY3J0Yyk7CiAJfQog fQogCkBAIC0zNDIsMTEgKzMyMiwxMCBAQCBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWludCBwYXJhbXNfY2hhbmdlZCwgYm9vbCBzdG9wX3Jl cSkKIHsKIAlzdHJ1Y3QgZHB1X2NvcmVfcGVyZl9wYXJhbXMgKm5ldywgKm9sZDsKLQlpbnQgdXBk YXRlX2J1cyA9IDAsIHVwZGF0ZV9jbGsgPSAwOworCWJvb2wgdXBkYXRlX2J1cyA9IGZhbHNlLCB1 cGRhdGVfY2xrID0gZmFsc2U7CiAJdTY0IGNsa19yYXRlID0gMDsKIAlzdHJ1Y3QgZHB1X2NydGMg KmRwdV9jcnRjOwogCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZTsKLQlpbnQgaTsK IAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2OwogCXN0cnVjdCBkcHVfa21zICprbXM7CiAJ aW50IHJldDsKQEAgLTM3Myw3ICszNTIsNiBAQCBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0 ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJbmV3ID0gJmRwdV9jc3RhdGUtPm5ld19wZXJmOwog CiAJaWYgKF9kcHVfY29yZV9wZXJmX2NydGNfaXNfcG93ZXJfb24oY3J0YykgJiYgIXN0b3BfcmVx KSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKysp IHsKIAkJCS8qCiAJCQkgKiBjYXNlcyBmb3IgYnVzIGJhbmR3aWR0aCB1cGRhdGUuCiAJCQkgKiAx LiBuZXcgYmFuZHdpZHRoIHZvdGUgLSAiYWIgb3IgaWIgdm90ZSIgaXMgaGlnaGVyCkBAIC0zODEs MjMgKzM1OSwyMiBAQCBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCiAJCQkgKiAyLiBuZXcgYmFuZHdpZHRoIHZvdGUgLSAiYWIgb3IgaWIgdm90ZSIg aXMgbG93ZXIKIAkJCSAqICAgIHRoYW4gY3VycmVudCB2b3RlIGF0IGVuZCBvZiBjb21taXQgb3Ig c3RvcC4KIAkJCSAqLwotCQkJaWYgKChwYXJhbXNfY2hhbmdlZCAmJiAoKG5ldy0+YndfY3RsW2ld ID4KLQkJCQkJCW9sZC0+YndfY3RsW2ldKSB8fAotCQkJCSAgKG5ldy0+bWF4X3Blcl9waXBlX2li W2ldID4KLQkJCQkJCW9sZC0+bWF4X3Blcl9waXBlX2liW2ldKSkpIHx8Ci0JCQkgICAgKCFwYXJh bXNfY2hhbmdlZCAmJiAoKG5ldy0+YndfY3RsW2ldIDwKLQkJCQkJCW9sZC0+YndfY3RsW2ldKSB8 fAotCQkJCSAgKG5ldy0+bWF4X3Blcl9waXBlX2liW2ldIDwKLQkJCQkJCW9sZC0+bWF4X3Blcl9w aXBlX2liW2ldKSkpKSB7CisJCQlpZiAoKHBhcmFtc19jaGFuZ2VkICYmICgobmV3LT5id19jdGwg PgorCQkJCQkJb2xkLT5id19jdGwpIHx8CisJCQkJICAobmV3LT5tYXhfcGVyX3BpcGVfaWIgPgor CQkJCQkJb2xkLT5tYXhfcGVyX3BpcGVfaWIpKSkgfHwKKwkJCSAgICAoIXBhcmFtc19jaGFuZ2Vk ICYmICgobmV3LT5id19jdGwgPAorCQkJCQkJb2xkLT5id19jdGwpIHx8CisJCQkJICAobmV3LT5t YXhfcGVyX3BpcGVfaWIgPAorCQkJCQkJb2xkLT5tYXhfcGVyX3BpcGVfaWIpKSkpIHsKIAkJCQlE UFVfREVCVUcoCiAJCQkJCSJjcnRjPSVkIHA9JWQgbmV3X2J3PSVsbHUsb2xkX2J3PSVsbHVcbiIs CiAJCQkJCWNydGMtPmJhc2UuaWQsIHBhcmFtc19jaGFuZ2VkLAotCQkJCQluZXctPmJ3X2N0bFtp XSwgb2xkLT5id19jdGxbaV0pOwotCQkJCW9sZC0+YndfY3RsW2ldID0gbmV3LT5id19jdGxbaV07 Ci0JCQkJb2xkLT5tYXhfcGVyX3BpcGVfaWJbaV0gPQotCQkJCQkJbmV3LT5tYXhfcGVyX3BpcGVf aWJbaV07Ci0JCQkJdXBkYXRlX2J1cyB8PSBCSVQoaSk7Ci0JCQl9CisJCQkJCW5ldy0+YndfY3Rs LCBvbGQtPmJ3X2N0bCk7CisJCQkJb2xkLT5id19jdGwgPSBuZXctPmJ3X2N0bDsKKwkJCQlvbGQt Pm1heF9wZXJfcGlwZV9pYiA9CisJCQkJCQluZXctPm1heF9wZXJfcGlwZV9pYjsKKwkJCQl1cGRh dGVfYnVzID0gdHJ1ZTsKIAkJfQogCiAJCWlmICgocGFyYW1zX2NoYW5nZWQgJiYKQEAgLTQwNSwz MCArMzgyLDI2IEBAIGludCBkcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKIAkJCQkoIXBhcmFtc19jaGFuZ2VkICYmCiAJCQkJKG5ldy0+Y29yZV9jbGtfcmF0 ZSA8IG9sZC0+Y29yZV9jbGtfcmF0ZSkpKSB7CiAJCQlvbGQtPmNvcmVfY2xrX3JhdGUgPSBuZXct PmNvcmVfY2xrX3JhdGU7Ci0JCQl1cGRhdGVfY2xrID0gMTsKKwkJCXVwZGF0ZV9jbGsgPSB0cnVl OwogCQl9CiAJfSBlbHNlIHsKIAkJRFBVX0RFQlVHKCJjcnRjPSVkIGRpc2FibGVcbiIsIGNydGMt PmJhc2UuaWQpOwogCQltZW1zZXQob2xkLCAwLCBzaXplb2YoKm9sZCkpOwogCQltZW1zZXQobmV3 LCAwLCBzaXplb2YoKm5ldykpOwotCQl1cGRhdGVfYnVzID0gfjA7Ci0JCXVwZGF0ZV9jbGsgPSAx OworCQl1cGRhdGVfYnVzID0gdHJ1ZTsKKwkJdXBkYXRlX2NsayA9IHRydWU7CiAJfQorCiAJdHJh Y2VfZHB1X3BlcmZfY3J0Y191cGRhdGUoY3J0Yy0+YmFzZS5pZCwKLQkJCQluZXctPmJ3X2N0bFtE UFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQ10sCi0JCQkJbmV3LT5id19jdGxbRFBVX1BPV0VS X0hBTkRMRV9EQlVTX0lEX0xMQ0NdLAotCQkJCW5ldy0+YndfY3RsW0RQVV9QT1dFUl9IQU5ETEVf REJVU19JRF9FQkldLAotCQkJCW5ldy0+Y29yZV9jbGtfcmF0ZSwgc3RvcF9yZXEsCi0JCQkJdXBk YXRlX2J1cywgdXBkYXRlX2Nsayk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgRFBVX1BPV0VSX0hBTkRM RV9EQlVTX0lEX01BWDsgaSsrKSB7Ci0JCWlmICh1cGRhdGVfYnVzICYgQklUKGkpKSB7Ci0JCQly ZXQgPSBfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9idXMoa21zLCBjcnRjLCBpKTsKLQkJCWlm IChyZXQpIHsKLQkJCQlEUFVfRVJST1IoImNydGMtJWQ6IGZhaWxlZCB0byB1cGRhdGUgYncgdm90 ZSBmb3IgYnVzLSVkXG4iLAotCQkJCQkgIGNydGMtPmJhc2UuaWQsIGkpOwotCQkJCXJldHVybiBy ZXQ7Ci0JCQl9CisJCQkJbmV3LT5id19jdGwsIG5ldy0+Y29yZV9jbGtfcmF0ZSwKKwkJCQlzdG9w X3JlcSwgdXBkYXRlX2J1cywgdXBkYXRlX2Nsayk7CisKKwlpZiAodXBkYXRlX2J1cykgeworCQly ZXQgPSBfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9idXMoa21zLCBjcnRjKTsKKwkJaWYgKHJl dCkgeworCQkJRFBVX0VSUk9SKCJjcnRjLSVkOiBmYWlsZWQgdG8gdXBkYXRlIGJ1cyBidyB2b3Rl XG4iLAorCQkJCSAgY3J0Yy0+YmFzZS5pZCk7CisJCQlyZXR1cm4gcmV0OwogCQl9CiAJfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmgg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmgKaW5kZXggZmJj YmUwYzc1MjdhLi4wZmIyNzY5MjlkYzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY29yZV9wZXJmLmgKQEAgLTMwLDggKzMwLDggQEAKICAqIEBjb3JlX2Nsa19yYXRl OiBjb3JlIGNsb2NrIHJhdGUgcmVxdWVzdAogICovCiBzdHJ1Y3QgZHB1X2NvcmVfcGVyZl9wYXJh bXMgewotCXU2NCBtYXhfcGVyX3BpcGVfaWJbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWF07 Ci0JdTY0IGJ3X2N0bFtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYXTsKKwl1NjQgbWF4X3Bl cl9waXBlX2liOworCXU2NCBid19jdGw7CiAJdTY0IGNvcmVfY2xrX3JhdGU7CiB9OwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwppbmRleCBjNWJhNzUzZDQ0MWMuLjg0 MTQ3NmQ3N2Y1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCkBA IC0xMzczLDIxICsxMzczLDE0IEBAIHN0YXRpYyBpbnQgZHB1X2NydGNfZGVidWdmc19zdGF0ZV9z aG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdikKIHsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNy dGMgPSAoc3RydWN0IGRybV9jcnRjICopIHMtPnByaXZhdGU7CiAJc3RydWN0IGRwdV9jcnRjICpk cHVfY3J0YyA9IHRvX2RwdV9jcnRjKGNydGMpOwotCWludCBpOwogCiAJc2VxX3ByaW50ZihzLCAi Y2xpZW50IHR5cGU6ICVkXG4iLCBkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUoY3J0YykpOwogCXNl cV9wcmludGYocywgImludGZfbW9kZTogJWRcbiIsIGRwdV9jcnRjX2dldF9pbnRmX21vZGUoY3J0 YykpOwogCXNlcV9wcmludGYocywgImNvcmVfY2xrX3JhdGU6ICVsbHVcbiIsCiAJCQlkcHVfY3J0 Yy0+Y3VyX3BlcmYuY29yZV9jbGtfcmF0ZSk7Ci0JZm9yIChpID0gRFBVX1BPV0VSX0hBTkRMRV9E QlVTX0lEX01OT0M7Ci0JCQlpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWDsgaSsrKSB7 Ci0JCXNlcV9wcmludGYocywgImJ3X2N0bFslc106ICVsbHVcbiIsCi0JCQkJZHB1X3Bvd2VyX2hh bmRsZV9nZXRfZGJ1c19uYW1lKGkpLAotCQkJCWRwdV9jcnRjLT5jdXJfcGVyZi5id19jdGxbaV0p OwotCQlzZXFfcHJpbnRmKHMsICJtYXhfcGVyX3BpcGVfaWJbJXNdOiAlbGx1XG4iLAotCQkJCWRw dV9wb3dlcl9oYW5kbGVfZ2V0X2RidXNfbmFtZShpKSwKLQkJCQlkcHVfY3J0Yy0+Y3VyX3BlcmYu bWF4X3Blcl9waXBlX2liW2ldKTsKLQl9CisJc2VxX3ByaW50ZihzLCAiYndfY3RsOiAlbGx1XG4i LCBkcHVfY3J0Yy0+Y3VyX3BlcmYuYndfY3RsKTsKKwlzZXFfcHJpbnRmKHMsICJtYXhfcGVyX3Bp cGVfaWI6ICVsbHVcbiIsCisJCQkJZHB1X2NydGMtPmN1cl9wZXJmLm1heF9wZXJfcGlwZV9pYik7 CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9wb3dlcl9oYW5kbGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9wb3dlcl9oYW5kbGUuYwppbmRleCBmYzE0MTE2Nzg5ZjIuLmQ1OGQwMTU0NDczMSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuYwpAQCAt MjQsMjAgKzI0LDYgQEAKICNpbmNsdWRlICJkcHVfcG93ZXJfaGFuZGxlLmgiCiAjaW5jbHVkZSAi ZHB1X3RyYWNlLmgiCiAKLXN0YXRpYyBjb25zdCBjaGFyICpkYXRhX2J1c19uYW1lW0RQVV9QT1dF Ul9IQU5ETEVfREJVU19JRF9NQVhdID0gewotCVtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5P Q10gPSAicWNvbSxkcHUtZGF0YS1idXMiLAotCVtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTExD Q10gPSAicWNvbSxkcHUtbGxjYy1idXMiLAotCVtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfRUJJ XSA9ICJxY29tLGRwdS1lYmktYnVzIiwKLX07Ci0KLWNvbnN0IGNoYXIgKmRwdV9wb3dlcl9oYW5k bGVfZ2V0X2RidXNfbmFtZSh1MzIgYnVzX2lkKQotewotCWlmIChidXNfaWQgPCBEUFVfUE9XRVJf SEFORExFX0RCVVNfSURfTUFYKQotCQlyZXR1cm4gZGF0YV9idXNfbmFtZVtidXNfaWRdOwotCi0J cmV0dXJuIE5VTEw7Ci19Ci0KIHN0YXRpYyB2b2lkIGRwdV9wb3dlcl9ldmVudF90cmlnZ2VyX2xv Y2tlZChzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRsZSAqcGhhbmRsZSwKIAkJdTMyIGV2ZW50X3R5cGUp CiB7CkBAIC02Niw3ICs1Miw2IEBAIHN0cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpkcHVfcG93ZXJf Y2xpZW50X2NyZWF0ZSgKIAogCW11dGV4X2xvY2soJnBoYW5kbGUtPnBoYW5kbGVfbG9jayk7CiAJ c3RybGNweShjbGllbnQtPm5hbWUsIGNsaWVudF9uYW1lLCBNQVhfQ0xJRU5UX05BTUVfTEVOKTsK LQljbGllbnQtPnVzZWNhc2VfbmR4ID0gVk9URV9JTkRFWF9ESVNBQkxFOwogCWNsaWVudC0+aWQg PSBpZDsKIAljbGllbnQtPmFjdGl2ZSA9IHRydWU7CiAJcHJfZGVidWcoImNsaWVudCAlcyBjcmVh dGVkOiVwSyBpZCA6JWRcbiIsIGNsaWVudF9uYW1lLApAQCAtMTQzLDggKzEyOCw2IEBAIGludCBk cHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwaGFuZGxl LAogCXN0cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpwY2xpZW50LCBib29sIGVuYWJsZSkKIHsKIAli b29sIGNoYW5nZWQgPSBmYWxzZTsKLQl1MzIgbWF4X3VzZWNhc2VfbmR4ID0gVk9URV9JTkRFWF9E SVNBQkxFLCBwcmV2X3VzZWNhc2VfbmR4OwotCXN0cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpjbGll bnQ7CiAJdTMyIGV2ZW50X3R5cGU7CiAKIAlpZiAoIXBoYW5kbGUgfHwgIXBjbGllbnQpIHsKQEAg LTE1MywzMSArMTM2LDE5IEBAIGludCBkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKHN0cnVjdCBk cHVfcG93ZXJfaGFuZGxlICpwaGFuZGxlLAogCX0KIAogCW11dGV4X2xvY2soJnBoYW5kbGUtPnBo YW5kbGVfbG9jayk7Ci0JaWYgKGVuYWJsZSkKKwlpZiAoZW5hYmxlKSB7CiAJCXBjbGllbnQtPnJl ZmNvdW50Kys7Ci0JZWxzZSBpZiAocGNsaWVudC0+cmVmY291bnQpCisJCWlmIChwY2xpZW50LT5y ZWZjb3VudCA9PSAxKQorCQkJY2hhbmdlZCA9IHRydWU7CisJfSBlbHNlIGlmIChwY2xpZW50LT5y ZWZjb3VudCkgewogCQlwY2xpZW50LT5yZWZjb3VudC0tOwotCi0JaWYgKHBjbGllbnQtPnJlZmNv dW50KQotCQlwY2xpZW50LT51c2VjYXNlX25keCA9IFZPVEVfSU5ERVhfTE9XOwotCWVsc2UKLQkJ cGNsaWVudC0+dXNlY2FzZV9uZHggPSBWT1RFX0lOREVYX0RJU0FCTEU7Ci0KLQlsaXN0X2Zvcl9l YWNoX2VudHJ5KGNsaWVudCwgJnBoYW5kbGUtPnBvd2VyX2NsaWVudF9jbGlzdCwgbGlzdCkgewot CQlpZiAoY2xpZW50LT51c2VjYXNlX25keCA8IFZPVEVfSU5ERVhfTUFYICYmCi0JCSAgICBjbGll bnQtPnVzZWNhc2VfbmR4ID4gbWF4X3VzZWNhc2VfbmR4KQotCQkJbWF4X3VzZWNhc2VfbmR4ID0g Y2xpZW50LT51c2VjYXNlX25keDsKLQl9Ci0KLQlpZiAocGhhbmRsZS0+Y3VycmVudF91c2VjYXNl X25keCAhPSBtYXhfdXNlY2FzZV9uZHgpIHsKLQkJY2hhbmdlZCA9IHRydWU7Ci0JCXByZXZfdXNl Y2FzZV9uZHggPSBwaGFuZGxlLT5jdXJyZW50X3VzZWNhc2VfbmR4OwotCQlwaGFuZGxlLT5jdXJy ZW50X3VzZWNhc2VfbmR4ID0gbWF4X3VzZWNhc2VfbmR4OworCQlpZiAoIXBjbGllbnQtPnJlZmNv dW50KQorCQkJY2hhbmdlZCA9IHRydWU7CiAJfQogCi0JcHJfZGVidWcoIiVwUzogY2hhbmdlZD0l ZCBjdXJyZW50IGlkeD0lZCByZXF1ZXN0IGNsaWVudCAlcyBpZDoldSBlbmFibGU6JWQgcmVmY291 bnQ6JWRcbiIsCi0JCV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgY2hhbmdlZCwgbWF4X3Vz ZWNhc2VfbmR4LAotCQlwY2xpZW50LT5uYW1lLCBwY2xpZW50LT5pZCwgZW5hYmxlLCBwY2xpZW50 LT5yZWZjb3VudCk7CisJcHJfZGVidWcoIiVwUzpjaGFuZ2VkPSVkIGNsaWVudCAlcyBpZDoldSBl bmFibGU6JWQgcmVmY291bnQ6JWRcbiIsCisJCV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwg Y2hhbmdlZCwgcGNsaWVudC0+bmFtZSwKKwkJcGNsaWVudC0+aWQsIGVuYWJsZSwgcGNsaWVudC0+ cmVmY291bnQpOwogCiAJaWYgKCFjaGFuZ2VkKQogCQlnb3RvIGVuZDsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuaCBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuaAppbmRleCBhNjViN2EyOTdm MjEuLmIxYTVhZTRkNmY0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X3Bvd2VyX2hhbmRsZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9wb3dlcl9oYW5kbGUuaApAQCAtMTYsNzYgKzE2LDI4IEBACiAKICNkZWZpbmUgTUFYX0NM SUVOVF9OQU1FX0xFTiAxMjgKIAotI2RlZmluZSBEUFVfUE9XRVJfSEFORExFX0VOQUJMRV9CVVNf QUJfUVVPVEEJMAotI2RlZmluZSBEUFVfUE9XRVJfSEFORExFX0RJU0FCTEVfQlVTX0FCX1FVT1RB CTAKLSNkZWZpbmUgRFBVX1BPV0VSX0hBTkRMRV9FTkFCTEVfQlVTX0lCX1FVT1RBCTE2MDAwMDAw MDAKLSNkZWZpbmUgRFBVX1BPV0VSX0hBTkRMRV9ESVNBQkxFX0JVU19JQl9RVU9UQQkwCi0KICNp bmNsdWRlICJkcHVfaW9fdXRpbC5oIgogCiAvKiBldmVudHMgd2lsbCBiZSB0cmlnZ2VyZWQgb24g cG93ZXIgaGFuZGxlciBlbmFibGUvZGlzYWJsZSAqLwogI2RlZmluZSBEUFVfUE9XRVJfRVZFTlRf RElTQUJMRQlCSVQoMCkKICNkZWZpbmUgRFBVX1BPV0VSX0VWRU5UX0VOQUJMRQlCSVQoMSkKIAot LyoqCi0gKiBtZHNzX2J1c192b3RlX3R5cGU6IHJlZ2lzdGVyIGJ1cyB2b3RlIHR5cGUKLSAqIFZP VEVfSU5ERVhfRElTQUJMRTogcmVtb3ZlcyB0aGUgY2xpZW50IHZvdGUKLSAqIFZPVEVfSU5ERVhf TE9XOiBrZWVwcyB0aGUgbG93ZXN0IHZvdGUgZm9yIHJlZ2lzdGVyIGJ1cwotICogVk9URV9JTkRF WF9NQVg6IGludmFsaWQKLSAqLwotZW51bSBtZHNzX2J1c192b3RlX3R5cGUgewotCVZPVEVfSU5E RVhfRElTQUJMRSwKLQlWT1RFX0lOREVYX0xPVywKLQlWT1RFX0lOREVYX01BWCwKLX07Ci0KLS8q KgotICogZW51bSBkcHVfcG93ZXJfaGFuZGxlX2RhdGFfYnVzX2NsaWVudCAtIHR5cGUgb2YgYXhp IGJ1cyBjbGllbnRzCi0gKiBARFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfUlQ6IGNv cmUgcmVhbC10aW1lIGJ1cyBjbGllbnQKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NM SUVOVF9OUlQ6IGNvcmUgbm9uLXJlYWwtdGltZSBidXMgY2xpZW50Ci0gKiBARFBVX1BPV0VSX0hB TkRMRV9EQVRBX0JVU19DTElFTlRfTUFYOiBtYXhpbXVtIG51bWJlciBvZiBidXMgY2xpZW50IHR5 cGUKLSAqLwotZW51bSBkcHVfcG93ZXJfaGFuZGxlX2RhdGFfYnVzX2NsaWVudCB7Ci0JRFBVX1BP V0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfUlQsCi0JRFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JV U19DTElFTlRfTlJULAotCURQVV9QT1dFUl9IQU5ETEVfREFUQV9CVVNfQ0xJRU5UX01BWAotfTsK LQotLyoqCi0gKiBlbnVtIERQVV9QT1dFUl9IQU5ETEVfREJVU19JRCAtIGRhdGEgYnVzIGlkZW50 aWZpZXIKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQzogRFBVL01OT0MgZGF0YSBi dXMKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTExDQzogTU5PQy9MTENDIGRhdGEgYnVz Ci0gKiBARFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VCSTogTExDQy9FQkkgZGF0YSBidXMKLSAq LwotZW51bSBEUFVfUE9XRVJfSEFORExFX0RCVVNfSUQgewotCURQVV9QT1dFUl9IQU5ETEVfREJV U19JRF9NTk9DLAotCURQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9MTENDLAotCURQVV9QT1dFUl9I QU5ETEVfREJVU19JRF9FQkksCi0JRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWCwKLX07Ci0K IC8qKgogICogc3RydWN0IGRwdV9wb3dlcl9jbGllbnQ6IHN0b3JlcyB0aGUgcG93ZXIgY2xpZW50 IGZvciBkcHUgZHJpdmVyCiAgKiBAbmFtZToJbmFtZSBvZiB0aGUgY2xpZW50Ci0gKiBAdXNlY2Fz ZV9uZHg6IGN1cnJlbnQgcmVncyBidXMgdm90ZSB0eXBlCiAgKiBAcmVmY291bnQ6CWN1cnJlbnQg cmVmY291bnQgaWYgbXVsdGlwbGUgbW9kdWxlcyBhcmUgdXNpbmcgc2FtZQogICogICAgICAgICAg ICAgIHNhbWUgY2xpZW50IGZvciBlbmFibGUvZGlzYWJsZS4gUG93ZXIgbW9kdWxlIHdpbGwKICAq ICAgICAgICAgICAgICBhZ2dyZWdhdGUgdGhlIHJlZmNvdW50IGFuZCB2b3RlIGFjY29yZGluZ2x5 IGZvciB0aGlzCiAgKiAgICAgICAgICAgICAgY2xpZW50LgogICogQGlkOgkJYXNzaWduZWQgZHVy aW5nIGNyZWF0ZS4gaGVscHMgZm9yIGRlYnVnZ2luZy4KICAqIEBsaXN0OglsaXN0IHRvIGF0dGFj aCBwb3dlciBoYW5kbGUgbWFzdGVyIGxpc3QKLSAqIEBhYjogICAgICAgICBhcmJpdHJhdGVkIGJh bmR3aWR0aCBmb3IgZWFjaCBidXMgY2xpZW50Ci0gKiBAaWI6ICAgICAgICAgaW5zdGFudGFuZW91 cyBiYW5kd2lkdGggZm9yIGVhY2ggYnVzIGNsaWVudAogICogQGFjdGl2ZToJaW5pZGNhdGVzIHRo ZSBzdGF0ZSBvZiBkcHUgcG93ZXIgaGFuZGxlCiAgKi8KIHN0cnVjdCBkcHVfcG93ZXJfY2xpZW50 IHsKIAljaGFyIG5hbWVbTUFYX0NMSUVOVF9OQU1FX0xFTl07Ci0Jc2hvcnQgdXNlY2FzZV9uZHg7 CiAJc2hvcnQgcmVmY291bnQ7CiAJdTMyIGlkOwogCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKLQl1 NjQgYWJbRFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfTUFYXTsKLQl1NjQgaWJbRFBV X1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfTUFYXTsKIAlib29sIGFjdGl2ZTsKIH07CiAK QEAgLTExMiwxNCArNjQsMTIgQEAgc3RydWN0IGRwdV9wb3dlcl9ldmVudCB7CiAgKiBAY2xpZW50 X2NsaXN0OiBtYXN0ZXIgbGlzdCB0byBzdG9yZSBhbGwgY2xpZW50cwogICogQHBoYW5kbGVfbG9j azogbG9jayB0byBzeW5jaHJvbml6ZSB0aGUgZW5hYmxlL2Rpc2FibGUKICAqIEBkZXY6IHBvaW50 ZXIgdG8gZGV2aWNlIHN0cnVjdHVyZQotICogQHVzZWNhc2VfbmR4OiBjdXJyZW50IHVzZWNhc2Ug aW5kZXgKICAqIEBldmVudF9saXN0OiBjdXJyZW50IHBvd2VyIGhhbmRsZSBldmVudCBsaXN0CiAg Ki8KIHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIHBvd2VyX2Ns aWVudF9jbGlzdDsKIAlzdHJ1Y3QgbXV0ZXggcGhhbmRsZV9sb2NrOwogCXN0cnVjdCBkZXZpY2Ug KmRldjsKLQl1MzIgY3VycmVudF91c2VjYXNlX25keDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGV2ZW50 X2xpc3Q7CiB9OwogCkBAIC0xNzIsMTcgKzEyMiw2IEBAIHZvaWQgZHB1X3Bvd2VyX2NsaWVudF9k ZXN0cm95KHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwaGFuZGxlLAogaW50IGRwdV9wb3dlcl9y ZXNvdXJjZV9lbmFibGUoc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBkYXRhLAogCXN0cnVjdCBk cHVfcG93ZXJfY2xpZW50ICpwY2xpZW50LCBib29sIGVuYWJsZSk7CiAKLS8qKgotICogZHB1X3Bv d2VyX2RhdGFfYnVzX2JhbmR3aWR0aF9jdHJsKCkgLSBjb250cm9sIGRhdGEgYnVzIGJhbmR3aWR0 aCBlbmFibGUKLSAqIEBwaGFuZGxlOiAgcG93ZXIgaGFuZGxlIGNvbnRhaW5pbmcgdGhlIHJlc291 cmNlcwotICogQGNsaWVudDogY2xpZW50IGluZm9ybWF0aW9uIHRvIGJhbmR3aWR0aCBjb250cm9s Ci0gKiBAZW5hYmxlOiB0cnVlIHRvIGVuYWJsZSBiYW5kd2lkdGggZm9yIGRhdGEgYmFzZQotICoK LSAqIFJldHVybjogbm9uZQotICovCi12b2lkIGRwdV9wb3dlcl9kYXRhX2J1c19iYW5kd2lkdGhf Y3RybChzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRsZSAqcGhhbmRsZSwKLQkJc3RydWN0IGRwdV9wb3dl cl9jbGllbnQgKnBjbGllbnQsIGludCBlbmFibGUpOwotCiAvKioKICAqIGRwdV9wb3dlcl9oYW5k bGVfcmVnaXN0ZXJfZXZlbnQgLSByZWdpc3RlciBhIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbiBl dmVudC4KICAqCUNsaWVudHMgY2FuIHJlZ2lzdGVyIGZvciBtdWx0aXBsZSBldmVudHMgd2l0aCBh IHNpbmdsZSByZWdpc3Rlci4KQEAgLTIwNywxMSArMTQ2LDQgQEAgc3RydWN0IGRwdV9wb3dlcl9l dmVudCAqZHB1X3Bvd2VyX2hhbmRsZV9yZWdpc3Rlcl9ldmVudCgKIHZvaWQgZHB1X3Bvd2VyX2hh bmRsZV91bnJlZ2lzdGVyX2V2ZW50KHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwaGFuZGxlLAog CQlzdHJ1Y3QgZHB1X3Bvd2VyX2V2ZW50ICpldmVudCk7CiAKLS8qKgotICogZHB1X3Bvd2VyX2hh bmRsZV9nZXRfZGJ1c19uYW1lIC0gZ2V0IG5hbWUgb2YgZ2l2ZW4gZGF0YSBidXMgaWRlbnRpZmll cgotICogQGJ1c19pZDoJZGF0YSBidXMgaWRlbnRpZmllcgotICogUmV0dXJuOglQb2ludGVyIHRv IG5hbWUgc3RyaW5nIGlmIHN1Y2Nlc3M7IE5VTEwgb3RoZXJ3aXNlCi0gKi8KLWNvbnN0IGNoYXIg KmRwdV9wb3dlcl9oYW5kbGVfZ2V0X2RidXNfbmFtZSh1MzIgYnVzX2lkKTsKLQogI2VuZGlmIC8q IF9EUFVfUE9XRVJfSEFORExFX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfdHJhY2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV90cmFjZS5oCmluZGV4IDBjMTIyZTE3Mzg5Mi4uZjVlZDQ3YTE1NTZhIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfdHJhY2UuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfdHJhY2UuaApAQCAtMTY3LDE2ICsxNjcsMTMgQEAgVFJB Q0VfRVZFTlQoZHB1X3RyYWNlX2NvdW50ZXIsCiApCiAKIFRSQUNFX0VWRU5UKGRwdV9wZXJmX2Ny dGNfdXBkYXRlLAotCVRQX1BST1RPKHUzMiBjcnRjLCB1NjQgYndfY3RsX21ub2MsIHU2NCBid19j dGxfbGxjYywKLQkJCXU2NCBid19jdGxfZWJpLCB1MzIgY29yZV9jbGtfcmF0ZSwKLQkJCWJvb2wg c3RvcF9yZXEsIHUzMiB1cGRhdGVfYnVzLCB1MzIgdXBkYXRlX2NsayksCi0JVFBfQVJHUyhjcnRj LCBid19jdGxfbW5vYywgYndfY3RsX2xsY2MsIGJ3X2N0bF9lYmksIGNvcmVfY2xrX3JhdGUsCisJ VFBfUFJPVE8odTMyIGNydGMsIHU2NCBid19jdGwsIHUzMiBjb3JlX2Nsa19yYXRlLAorCQkJYm9v bCBzdG9wX3JlcSwgYm9vbCB1cGRhdGVfYnVzLCBib29sIHVwZGF0ZV9jbGspLAorCVRQX0FSR1Mo Y3J0YywgYndfY3RsLCBjb3JlX2Nsa19yYXRlLAogCQlzdG9wX3JlcSwgdXBkYXRlX2J1cywgdXBk YXRlX2NsayksCiAJVFBfU1RSVUNUX19lbnRyeSgKIAkJCV9fZmllbGQodTMyLCBjcnRjKQotCQkJ X19maWVsZCh1NjQsIGJ3X2N0bF9tbm9jKQotCQkJX19maWVsZCh1NjQsIGJ3X2N0bF9sbGNjKQot CQkJX19maWVsZCh1NjQsIGJ3X2N0bF9lYmkpCisJCQlfX2ZpZWxkKHU2NCwgYndfY3RsKQogCQkJ X19maWVsZCh1MzIsIGNvcmVfY2xrX3JhdGUpCiAJCQlfX2ZpZWxkKGJvb2wsIHN0b3BfcmVxKQog CQkJX19maWVsZCh1MzIsIHVwZGF0ZV9idXMpCkBAIC0xODQsMjAgKzE4MSwxNiBAQCBUUkFDRV9F VkVOVChkcHVfcGVyZl9jcnRjX3VwZGF0ZSwKIAkpLAogCVRQX2Zhc3RfYXNzaWduKAogCQkJX19l bnRyeS0+Y3J0YyA9IGNydGM7Ci0JCQlfX2VudHJ5LT5id19jdGxfbW5vYyA9IGJ3X2N0bF9tbm9j OwotCQkJX19lbnRyeS0+YndfY3RsX2xsY2MgPSBid19jdGxfbGxjYzsKLQkJCV9fZW50cnktPmJ3 X2N0bF9lYmkgPSBid19jdGxfZWJpOworCQkJX19lbnRyeS0+YndfY3RsID0gYndfY3RsOwogCQkJ X19lbnRyeS0+Y29yZV9jbGtfcmF0ZSA9IGNvcmVfY2xrX3JhdGU7CiAJCQlfX2VudHJ5LT5zdG9w X3JlcSA9IHN0b3BfcmVxOwogCQkJX19lbnRyeS0+dXBkYXRlX2J1cyA9IHVwZGF0ZV9idXM7CiAJ CQlfX2VudHJ5LT51cGRhdGVfY2xrID0gdXBkYXRlX2NsazsKIAkpLAogCSBUUF9wcmludGsoCi0J CSJjcnRjPSVkIGJ3X21ub2M9JWxsdSBid19sbGNjPSVsbHUgYndfZWJpPSVsbHUgY2xrX3JhdGU9 JXUgc3RvcF9yZXE9JWQgdV9idXM9JWQgdV9jbGs9JWQiLAorCQkiY3J0Yz0lZCBid19jdGw9JWxs dSBjbGtfcmF0ZT0ldSBzdG9wX3JlcT0lZCB1X2J1cz0lZCB1X2Nsaz0lZCIsCiAJCQlfX2VudHJ5 LT5jcnRjLAotCQkJX19lbnRyeS0+YndfY3RsX21ub2MsCi0JCQlfX2VudHJ5LT5id19jdGxfbGxj YywKLQkJCV9fZW50cnktPmJ3X2N0bF9lYmksCisJCQlfX2VudHJ5LT5id19jdGwsCiAJCQlfX2Vu dHJ5LT5jb3JlX2Nsa19yYXRlLAogCQkJX19lbnRyeS0+c3RvcF9yZXEsCiAJCQlfX2VudHJ5LT51 cGRhdGVfYnVzLAotLSAKVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEg bWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENvbGxh Ym9yYXRpdmUgUHJvamVjdAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJl ZWRyZW5vCg==