From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jayant Shekhar Subject: [v5 1/3] drm/msm/dpu: clean up references of DPU custom bus scaling Date: Wed, 9 Jan 2019 23:22:03 +0530 Message-ID: <1547056325-1919-2-git-send-email-jshekhar@codeaurora.org> References: <1547056325-1919-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: <1547056325-1919-1-git-send-email-jshekhar@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org, abhinavk@codeaurora.org, Jayant Shekhar , seanpaul@chromium.org, chandanu@codeaurora.org, hoegsberg@chromium.org, Sravanthi Kollukuduru List-Id: devicetree@vger.kernel.org RnJvbTogU3JhdmFudGhpIEtvbGx1a3VkdXJ1IDxza29sbHVrdUBjb2RlYXVyb3JhLm9yZz4KClNp bmNlIHRoZSB1cHN0cmVhbSBpbnRlcmNvbm5lY3QgYnVzIGZyYW1ld29yayBoYXMgbGFuZGVkCnVw c3RyZWFtLCB0aGUgZXhpc3RpbmcgcmVmZXJlbmNlcyBvZiBjdXN0b20gYnVzIHNjYWxpbmcKbmVl ZHMgdG8gYmUgY2xlYW5lZCB1cC4KCkNoYW5nZXMgaW4gdjI6CgktIEZpeGVkIGJ1aWxkIGVycm9y IGR1ZSB0byBwYXJ0aWFsIGNsZWFuIHVwCgpDaGFuZ2VzIGluIHYzOgoJLSBDb25kZW5zZSBtdWx0 aXBsZSBsaW5lcyBpbnRvIGEgc2luZ2xlIGxpbmUgKFNlYW4gUGF1bCkKCkNoYW5nZXMgaW4gdjQ6 CgktIE5vbmUKCkNoYW5nZXMgaW4gdjU6CgktIE5vbmUKClNpZ25lZC1vZmYtYnk6IFNyYXZhbnRo aSBLb2xsdWt1ZHVydSA8c2tvbGx1a3VAY29kZWF1cm9yYS5vcmc+ClNpZ25lZC1vZmYtYnk6IEph eWFudCBTaGVraGFyIDxqc2hla2hhckBjb2RlYXVyb3JhLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmMgICAgfCAxNzQgKysrKysrKysrLS0tLS0t LS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuaCAg ICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYyAgICAg ICAgIHwgIDEzICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFu ZGxlLmMgfCAgNDcgKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93 ZXJfaGFuZGxlLmggfCAgNjggLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfdHJhY2UuaCAgICAgICAgfCAgMjIgKy0tCiA2IGZpbGVzIGNoYW5nZWQsIDg5IGluc2Vy dGlvbnMoKyksIDIzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY29yZV9wZXJmLmMKaW5kZXggMjJlODRiMy4uYzc1NTM2ZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuYwpAQCAtODQsNyArODQsNiBA QCBzdGF0aWMgdm9pZCBfZHB1X2NvcmVfcGVyZl9jYWxjX2NydGMoc3RydWN0IGRwdV9rbXMgKmtt cywKIAkJc3RydWN0IGRwdV9jb3JlX3BlcmZfcGFyYW1zICpwZXJmKQogewogCXN0cnVjdCBkcHVf Y3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZTsKLQlpbnQgaTsKIAogCWlmICgha21zIHx8ICFrbXMtPmNh dGFsb2cgfHwgIWNydGMgfHwgIXN0YXRlIHx8ICFwZXJmKSB7CiAJCURQVV9FUlJPUigiaW52YWxp ZCBwYXJhbWV0ZXJzXG4iKTsKQEAgLTk1LDM1ICs5NCwyNCBAQCBzdGF0aWMgdm9pZCBfZHB1X2Nv cmVfcGVyZl9jYWxjX2NydGMoc3RydWN0IGRwdV9rbXMgKmttcywKIAltZW1zZXQocGVyZiwgMCwg c2l6ZW9mKHN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcykpOwogCiAJaWYgKCFkcHVfY3N0YXRl LT5id19jb250cm9sKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNf SURfTUFYOyBpKyspIHsKLQkJCXBlcmYtPmJ3X2N0bFtpXSA9IGttcy0+Y2F0YWxvZy0+cGVyZi5t YXhfYndfaGlnaCAqCisJCXBlcmYtPmJ3X2N0bCA9IGttcy0+Y2F0YWxvZy0+cGVyZi5tYXhfYndf aGlnaCAqCiAJCQkJCTEwMDBVTEw7Ci0JCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJbaV0gPSBwZXJm LT5id19jdGxbaV07Ci0JCX0KKwkJcGVyZi0+bWF4X3Blcl9waXBlX2liID0gcGVyZi0+YndfY3Rs OwogCQlwZXJmLT5jb3JlX2Nsa19yYXRlID0ga21zLT5wZXJmLm1heF9jb3JlX2Nsa19yYXRlOwog CX0gZWxzZSBpZiAoa21zLT5wZXJmLnBlcmZfdHVuZS5tb2RlID09IERQVV9QRVJGX01PREVfTUlO SU1VTSkgewotCQlmb3IgKGkgPSAwOyBpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWDsg aSsrKSB7Ci0JCQlwZXJmLT5id19jdGxbaV0gPSAwOwotCQkJcGVyZi0+bWF4X3Blcl9waXBlX2li W2ldID0gMDsKLQkJfQorCQlwZXJmLT5id19jdGwgPSAwOworCQlwZXJmLT5tYXhfcGVyX3BpcGVf aWIgPSAwOwogCQlwZXJmLT5jb3JlX2Nsa19yYXRlID0gMDsKIAl9IGVsc2UgaWYgKGttcy0+cGVy Zi5wZXJmX3R1bmUubW9kZSA9PSBEUFVfUEVSRl9NT0RFX0ZJWEVEKSB7Ci0JCWZvciAoaSA9IDA7 IGkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKLQkJCXBlcmYtPmJ3X2N0 bFtpXSA9IGttcy0+cGVyZi5maXhfY29yZV9hYl92b3RlOwotCQkJcGVyZi0+bWF4X3Blcl9waXBl X2liW2ldID0ga21zLT5wZXJmLmZpeF9jb3JlX2liX3ZvdGU7Ci0JCX0KKwkJcGVyZi0+YndfY3Rs ID0ga21zLT5wZXJmLmZpeF9jb3JlX2FiX3ZvdGU7CisJCXBlcmYtPm1heF9wZXJfcGlwZV9pYiA9 IGttcy0+cGVyZi5maXhfY29yZV9pYl92b3RlOwogCQlwZXJmLT5jb3JlX2Nsa19yYXRlID0ga21z LT5wZXJmLmZpeF9jb3JlX2Nsa19yYXRlOwogCX0KIAogCURQVV9ERUJVRygKLQkJImNydGM9JWQg Y2xrX3JhdGU9JWxsdSBjb3JlX2liPSVsbHUgY29yZV9hYj0lbGx1IGxsY2NfaWI9JWxsdSBsbGNj X2FiPSVsbHUgbWVtX2liPSVsbHUgbWVtX2FiPSVsbHVcbiIsCisJCSJjcnRjPSVkIGNsa19yYXRl PSVsbHUgY29yZV9pYj0lbGx1IGNvcmVfYWI9JWxsdVxuIiwKIAkJCWNydGMtPmJhc2UuaWQsIHBl cmYtPmNvcmVfY2xrX3JhdGUsCi0JCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJbRFBVX1BPV0VSX0hB TkRMRV9EQlVTX0lEX01OT0NdLAotCQkJcGVyZi0+YndfY3RsW0RQVV9QT1dFUl9IQU5ETEVfREJV U19JRF9NTk9DXSwKLQkJCXBlcmYtPm1heF9wZXJfcGlwZV9pYltEUFVfUE9XRVJfSEFORExFX0RC VVNfSURfTExDQ10sCi0JCQlwZXJmLT5id19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0xM Q0NdLAotCQkJcGVyZi0+bWF4X3Blcl9waXBlX2liW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9F QkldLAotCQkJcGVyZi0+YndfY3RsW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9FQkldKTsKKwkJ CXBlcmYtPm1heF9wZXJfcGlwZV9pYiwgcGVyZi0+YndfY3RsKTsKIH0KIAogaW50IGRwdV9jb3Jl X3BlcmZfY3J0Y19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCkBAIC0xMzYsNyArMTI0LDYg QEAgaW50IGRwdV9jb3JlX3BlcmZfY3J0Y19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJ c3RydWN0IGRwdV9jcnRjX3N0YXRlICpkcHVfY3N0YXRlOwogCXN0cnVjdCBkcm1fY3J0YyAqdG1w X2NydGM7CiAJc3RydWN0IGRwdV9rbXMgKmttczsKLQlpbnQgaTsKIAogCWlmICghY3J0YyB8fCAh c3RhdGUpIHsKIAkJRFBVX0VSUk9SKCJpbnZhbGlkIGNydGNcbiIpOwpAQCAtMTU4LDMxICsxNDUs MjUgQEAgaW50IGRwdV9jb3JlX3BlcmZfY3J0Y19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMs CiAJLyogb2J0YWluIG5ldyB2YWx1ZXMgKi8KIAlfZHB1X2NvcmVfcGVyZl9jYWxjX2NydGMoa21z LCBjcnRjLCBzdGF0ZSwgJmRwdV9jc3RhdGUtPm5ld19wZXJmKTsKIAotCWZvciAoaSA9IERQVV9Q T1dFUl9IQU5ETEVfREJVU19JRF9NTk9DOwotCQkJaSA8IERQVV9QT1dFUl9IQU5ETEVfREJVU19J RF9NQVg7IGkrKykgewotCQlid19zdW1fb2ZfaW50ZnMgPSBkcHVfY3N0YXRlLT5uZXdfcGVyZi5i d19jdGxbaV07Ci0JCWN1cnJfY2xpZW50X3R5cGUgPSBkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUo Y3J0Yyk7CisJYndfc3VtX29mX2ludGZzID0gZHB1X2NzdGF0ZS0+bmV3X3BlcmYuYndfY3RsOwor CWN1cnJfY2xpZW50X3R5cGUgPSBkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUoY3J0Yyk7CiAKLQkJ ZHJtX2Zvcl9lYWNoX2NydGModG1wX2NydGMsIGNydGMtPmRldikgewotCQkJaWYgKF9kcHVfY29y ZV9wZXJmX2NydGNfaXNfcG93ZXJfb24odG1wX2NydGMpICYmCi0JCQkgICAgKGRwdV9jcnRjX2dl dF9jbGllbnRfdHlwZSh0bXBfY3J0YykgPT0KLQkJCQkJICAgIGN1cnJfY2xpZW50X3R5cGUpICYm Ci0JCQkgICAgKHRtcF9jcnRjICE9IGNydGMpKSB7Ci0JCQkJc3RydWN0IGRwdV9jcnRjX3N0YXRl ICp0bXBfY3N0YXRlID0KLQkJCQkJdG9fZHB1X2NydGNfc3RhdGUodG1wX2NydGMtPnN0YXRlKTsK LQotCQkJCURQVV9ERUJVRygiY3J0YzolZCBidzolbGx1IGN0cmw6JWRcbiIsCi0JCQkJCXRtcF9j cnRjLT5iYXNlLmlkLAotCQkJCQl0bXBfY3N0YXRlLT5uZXdfcGVyZi5id19jdGxbaV0sCi0JCQkJ CXRtcF9jc3RhdGUtPmJ3X2NvbnRyb2wpOwotCQkJCS8qCi0JCQkJICogRm9yIGJ3IGNoZWNrIG9u bHkgdXNlIHRoZSBidyBpZiB0aGUKLQkJCQkgKiBhdG9taWMgcHJvcGVydHkgaGFzIGJlZW4gYWxy ZWFkeSBzZXQKLQkJCQkgKi8KLQkJCQlpZiAodG1wX2NzdGF0ZS0+YndfY29udHJvbCkKLQkJCQkJ Yndfc3VtX29mX2ludGZzICs9Ci0JCQkJCQl0bXBfY3N0YXRlLT5uZXdfcGVyZi5id19jdGxbaV07 Ci0JCQl9CisJZHJtX2Zvcl9lYWNoX2NydGModG1wX2NydGMsIGNydGMtPmRldikgeworCQlpZiAo X2RwdV9jb3JlX3BlcmZfY3J0Y19pc19wb3dlcl9vbih0bXBfY3J0YykgJiYKKwkJICAgIChkcHVf Y3J0Y19nZXRfY2xpZW50X3R5cGUodG1wX2NydGMpID09CisJCQkJY3Vycl9jbGllbnRfdHlwZSkg JiYgKHRtcF9jcnRjICE9IGNydGMpKSB7CisJCQlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKnRtcF9j c3RhdGUgPQorCQkJCXRvX2RwdV9jcnRjX3N0YXRlKHRtcF9jcnRjLT5zdGF0ZSk7CisKKwkJCURQ VV9ERUJVRygiY3J0YzolZCBidzolbGx1IGN0cmw6JWRcbiIsCisJCQkJdG1wX2NydGMtPmJhc2Uu aWQsIHRtcF9jc3RhdGUtPm5ld19wZXJmLmJ3X2N0bCwKKwkJCQl0bXBfY3N0YXRlLT5id19jb250 cm9sKTsKKwkJCS8qCisJCQkgKiBGb3IgYncgY2hlY2sgb25seSB1c2UgdGhlIGJ3IGlmIHRoZQor CQkJICogYXRvbWljIHByb3BlcnR5IGhhcyBiZWVuIGFscmVhZHkgc2V0CisJCQkgKi8KKwkJCWlm ICh0bXBfY3N0YXRlLT5id19jb250cm9sKQorCQkJCWJ3X3N1bV9vZl9pbnRmcyArPSB0bXBfY3N0 YXRlLT5uZXdfcGVyZi5id19jdGw7CiAJCX0KIAogCQkvKiBjb252ZXJ0IGJhbmR3aWR0aCB0byBr YiAqLwpAQCAtMjEzLDkgKzE5NCw5IEBAIGludCBkcHVfY29yZV9wZXJmX2NydGNfY2hlY2soc3Ry dWN0IGRybV9jcnRjICpjcnRjLAogfQogCiBzdGF0aWMgaW50IF9kcHVfY29yZV9wZXJmX2NydGNf dXBkYXRlX2J1cyhzdHJ1Y3QgZHB1X2ttcyAqa21zLAotCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMs IHUzMiBidXNfaWQpCisJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgZHB1X2Nv cmVfcGVyZl9wYXJhbXMgcGVyZiA9IHsgeyAwIH0gfTsKKwlzdHJ1Y3QgZHB1X2NvcmVfcGVyZl9w YXJhbXMgcGVyZiA9IHsgMCB9OwogCWVudW0gZHB1X2NydGNfY2xpZW50X3R5cGUgY3Vycl9jbGll bnRfdHlwZQogCQkJCQk9IGRwdV9jcnRjX2dldF9jbGllbnRfdHlwZShjcnRjKTsKIAlzdHJ1Y3Qg ZHJtX2NydGMgKnRtcF9jcnRjOwpAQCAtMjI4LDEzICsyMDksMTEgQEAgc3RhdGljIGludCBfZHB1 X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9idXMoc3RydWN0IGRwdV9rbXMgKmttcywKIAkJCQlkcHVf Y3J0Y19nZXRfY2xpZW50X3R5cGUodG1wX2NydGMpKSB7CiAJCQlkcHVfY3N0YXRlID0gdG9fZHB1 X2NydGNfc3RhdGUodG1wX2NydGMtPnN0YXRlKTsKIAotCQkJcGVyZi5tYXhfcGVyX3BpcGVfaWJb YnVzX2lkXSA9Ci0JCQkJbWF4KHBlcmYubWF4X3Blcl9waXBlX2liW2J1c19pZF0sCi0JCQkJZHB1 X2NzdGF0ZS0+bmV3X3BlcmYubWF4X3Blcl9waXBlX2liW2J1c19pZF0pOworCQkJcGVyZi5tYXhf cGVyX3BpcGVfaWIgPSBtYXgocGVyZi5tYXhfcGVyX3BpcGVfaWIsCisJCQkJCWRwdV9jc3RhdGUt Pm5ld19wZXJmLm1heF9wZXJfcGlwZV9pYik7CiAKLQkJCURQVV9ERUJVRygiY3J0Yz0lZCBidXNf aWQ9JWQgYnc9JWxsdVxuIiwKLQkJCQl0bXBfY3J0Yy0+YmFzZS5pZCwgYnVzX2lkLAotCQkJCWRw dV9jc3RhdGUtPm5ld19wZXJmLmJ3X2N0bFtidXNfaWRdKTsKKwkJCURQVV9ERUJVRygiY3J0Yz0l ZCBidz0lbGx1XG4iLCB0bXBfY3J0Yy0+YmFzZS5pZCwKKwkJCQkJZHB1X2NzdGF0ZS0+bmV3X3Bl cmYuYndfY3RsKTsKIAkJfQogCX0KIAlyZXR1cm4gcmV0OwpAQCAtMjU0LDcgKzIzMyw2IEBAIHZv aWQgZHB1X2NvcmVfcGVyZl9jcnRjX3JlbGVhc2VfYncoc3RydWN0IGRybV9jcnRjICpjcnRjKQog CXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGM7CiAJc3RydWN0IGRwdV9jcnRjX3N0YXRlICpkcHVf Y3N0YXRlOwogCXN0cnVjdCBkcHVfa21zICprbXM7Ci0JaW50IGk7CiAKIAlpZiAoIWNydGMpIHsK IAkJRFBVX0VSUk9SKCJpbnZhbGlkIGNydGNcbiIpOwpAQCAtMjkwLDEwICsyNjgsOCBAQCB2b2lk IGRwdV9jb3JlX3BlcmZfY3J0Y19yZWxlYXNlX2J3KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlp ZiAoa21zLT5wZXJmLmVuYWJsZV9id19yZWxlYXNlKSB7CiAJCXRyYWNlX2RwdV9jbWRfcmVsZWFz ZV9idyhjcnRjLT5iYXNlLmlkKTsKIAkJRFBVX0RFQlVHKCJSZWxlYXNlIEJXIGNydGM9JWRcbiIs IGNydGMtPmJhc2UuaWQpOwotCQlmb3IgKGkgPSAwOyBpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVT X0lEX01BWDsgaSsrKSB7Ci0JCQlkcHVfY3J0Yy0+Y3VyX3BlcmYuYndfY3RsW2ldID0gMDsKLQkJ CV9kcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlX2J1cyhrbXMsIGNydGMsIGkpOwotCQl9CisJCWRw dV9jcnRjLT5jdXJfcGVyZi5id19jdGwgPSAwOworCQlfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0 ZV9idXMoa21zLCBjcnRjKTsKIAl9CiB9CiAKQEAgLTMzNiwxMSArMzEyLDEwIEBAIGludCBkcHVf Y29yZV9wZXJmX2NydGNfdXBkYXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJaW50IHBhcmFt c19jaGFuZ2VkLCBib29sIHN0b3BfcmVxKQogewogCXN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFt cyAqbmV3LCAqb2xkOwotCWludCB1cGRhdGVfYnVzID0gMCwgdXBkYXRlX2NsayA9IDA7CisJYm9v bCB1cGRhdGVfYnVzID0gZmFsc2UsIHVwZGF0ZV9jbGsgPSBmYWxzZTsKIAl1NjQgY2xrX3JhdGUg PSAwOwogCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGM7CiAJc3RydWN0IGRwdV9jcnRjX3N0YXRl ICpkcHVfY3N0YXRlOwotCWludCBpOwogCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7CiAJ c3RydWN0IGRwdV9rbXMgKmttczsKIAlpbnQgcmV0OwpAQCAtMzY3LDYyICszNDIsNDkgQEAgaW50 IGRwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCW5ldyA9 ICZkcHVfY3N0YXRlLT5uZXdfcGVyZjsKIAogCWlmIChfZHB1X2NvcmVfcGVyZl9jcnRjX2lzX3Bv d2VyX29uKGNydGMpICYmICFzdG9wX3JlcSkgewotCQlmb3IgKGkgPSAwOyBpIDwgRFBVX1BPV0VS X0hBTkRMRV9EQlVTX0lEX01BWDsgaSsrKSB7Ci0JCQkvKgotCQkJICogY2FzZXMgZm9yIGJ1cyBi YW5kd2lkdGggdXBkYXRlLgotCQkJICogMS4gbmV3IGJhbmR3aWR0aCB2b3RlIC0gImFiIG9yIGli IHZvdGUiIGlzIGhpZ2hlcgotCQkJICogICAgdGhhbiBjdXJyZW50IHZvdGUgZm9yIHVwZGF0ZSBy ZXF1ZXN0LgotCQkJICogMi4gbmV3IGJhbmR3aWR0aCB2b3RlIC0gImFiIG9yIGliIHZvdGUiIGlz IGxvd2VyCi0JCQkgKiAgICB0aGFuIGN1cnJlbnQgdm90ZSBhdCBlbmQgb2YgY29tbWl0IG9yIHN0 b3AuCi0JCQkgKi8KLQkJCWlmICgocGFyYW1zX2NoYW5nZWQgJiYgKChuZXctPmJ3X2N0bFtpXSA+ Ci0JCQkJCQlvbGQtPmJ3X2N0bFtpXSkgfHwKLQkJCQkgIChuZXctPm1heF9wZXJfcGlwZV9pYltp XSA+Ci0JCQkJCQlvbGQtPm1heF9wZXJfcGlwZV9pYltpXSkpKSB8fAotCQkJICAgICghcGFyYW1z X2NoYW5nZWQgJiYgKChuZXctPmJ3X2N0bFtpXSA8Ci0JCQkJCQlvbGQtPmJ3X2N0bFtpXSkgfHwK LQkJCQkgIChuZXctPm1heF9wZXJfcGlwZV9pYltpXSA8Ci0JCQkJCQlvbGQtPm1heF9wZXJfcGlw ZV9pYltpXSkpKSkgewotCQkJCURQVV9ERUJVRygKLQkJCQkJImNydGM9JWQgcD0lZCBuZXdfYnc9 JWxsdSxvbGRfYnc9JWxsdVxuIiwKLQkJCQkJY3J0Yy0+YmFzZS5pZCwgcGFyYW1zX2NoYW5nZWQs Ci0JCQkJCW5ldy0+YndfY3RsW2ldLCBvbGQtPmJ3X2N0bFtpXSk7Ci0JCQkJb2xkLT5id19jdGxb aV0gPSBuZXctPmJ3X2N0bFtpXTsKLQkJCQlvbGQtPm1heF9wZXJfcGlwZV9pYltpXSA9Ci0JCQkJ CQluZXctPm1heF9wZXJfcGlwZV9pYltpXTsKLQkJCQl1cGRhdGVfYnVzIHw9IEJJVChpKTsKLQkJ CX0KKwkJLyoKKwkJICogY2FzZXMgZm9yIGJ1cyBiYW5kd2lkdGggdXBkYXRlLgorCQkgKiAxLiBu ZXcgYmFuZHdpZHRoIHZvdGUgLSAiYWIgb3IgaWIgdm90ZSIgaXMgaGlnaGVyCisJCSAqICAgIHRo YW4gY3VycmVudCB2b3RlIGZvciB1cGRhdGUgcmVxdWVzdC4KKwkJICogMi4gbmV3IGJhbmR3aWR0 aCB2b3RlIC0gImFiIG9yIGliIHZvdGUiIGlzIGxvd2VyCisJCSAqICAgIHRoYW4gY3VycmVudCB2 b3RlIGF0IGVuZCBvZiBjb21taXQgb3Igc3RvcC4KKwkJICovCisJCWlmICgocGFyYW1zX2NoYW5n ZWQgJiYgKChuZXctPmJ3X2N0bCA+IG9sZC0+YndfY3RsKSB8fAorCQkJKG5ldy0+bWF4X3Blcl9w aXBlX2liID4gb2xkLT5tYXhfcGVyX3BpcGVfaWIpKSkJfHwKKwkJCSghcGFyYW1zX2NoYW5nZWQg JiYgKChuZXctPmJ3X2N0bCA8IG9sZC0+YndfY3RsKSB8fAorCQkJKG5ldy0+bWF4X3Blcl9waXBl X2liIDwgb2xkLT5tYXhfcGVyX3BpcGVfaWIpKSkpIHsKKwkJCURQVV9ERUJVRygiY3J0Yz0lZCBw PSVkIG5ld19idz0lbGx1LG9sZF9idz0lbGx1XG4iLAorCQkJCWNydGMtPmJhc2UuaWQsIHBhcmFt c19jaGFuZ2VkLAorCQkJCW5ldy0+YndfY3RsLCBvbGQtPmJ3X2N0bCk7CisJCQlvbGQtPmJ3X2N0 bCA9IG5ldy0+YndfY3RsOworCQkJb2xkLT5tYXhfcGVyX3BpcGVfaWIgPSBuZXctPm1heF9wZXJf cGlwZV9pYjsKKwkJCXVwZGF0ZV9idXMgPSB0cnVlOwogCQl9CiAKIAkJaWYgKChwYXJhbXNfY2hh bmdlZCAmJgotCQkJCShuZXctPmNvcmVfY2xrX3JhdGUgPiBvbGQtPmNvcmVfY2xrX3JhdGUpKSB8 fAotCQkJCSghcGFyYW1zX2NoYW5nZWQgJiYKLQkJCQkobmV3LT5jb3JlX2Nsa19yYXRlIDwgb2xk LT5jb3JlX2Nsa19yYXRlKSkpIHsKKwkJCShuZXctPmNvcmVfY2xrX3JhdGUgPiBvbGQtPmNvcmVf Y2xrX3JhdGUpKSB8fAorCQkJKCFwYXJhbXNfY2hhbmdlZCAmJgorCQkJKG5ldy0+Y29yZV9jbGtf cmF0ZSA8IG9sZC0+Y29yZV9jbGtfcmF0ZSkpKSB7CiAJCQlvbGQtPmNvcmVfY2xrX3JhdGUgPSBu ZXctPmNvcmVfY2xrX3JhdGU7Ci0JCQl1cGRhdGVfY2xrID0gMTsKKwkJCXVwZGF0ZV9jbGsgPSB0 cnVlOwogCQl9CiAJfSBlbHNlIHsKIAkJRFBVX0RFQlVHKCJjcnRjPSVkIGRpc2FibGVcbiIsIGNy dGMtPmJhc2UuaWQpOwogCQltZW1zZXQob2xkLCAwLCBzaXplb2YoKm9sZCkpOwogCQltZW1zZXQo bmV3LCAwLCBzaXplb2YoKm5ldykpOwotCQl1cGRhdGVfYnVzID0gfjA7Ci0JCXVwZGF0ZV9jbGsg PSAxOworCQl1cGRhdGVfYnVzID0gdHJ1ZTsKKwkJdXBkYXRlX2NsayA9IHRydWU7CiAJfQotCXRy YWNlX2RwdV9wZXJmX2NydGNfdXBkYXRlKGNydGMtPmJhc2UuaWQsCi0JCQkJbmV3LT5id19jdGxb RFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01OT0NdLAotCQkJCW5ldy0+YndfY3RsW0RQVV9QT1dF Ul9IQU5ETEVfREJVU19JRF9MTENDXSwKLQkJCQluZXctPmJ3X2N0bFtEUFVfUE9XRVJfSEFORExF X0RCVVNfSURfRUJJXSwKLQkJCQluZXctPmNvcmVfY2xrX3JhdGUsIHN0b3BfcmVxLAotCQkJCXVw ZGF0ZV9idXMsIHVwZGF0ZV9jbGspOwotCi0JZm9yIChpID0gMDsgaSA8IERQVV9QT1dFUl9IQU5E TEVfREJVU19JRF9NQVg7IGkrKykgewotCQlpZiAodXBkYXRlX2J1cyAmIEJJVChpKSkgewotCQkJ cmV0ID0gX2RwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGVfYnVzKGttcywgY3J0YywgaSk7Ci0JCQlp ZiAocmV0KSB7Ci0JCQkJRFBVX0VSUk9SKCJjcnRjLSVkOiBmYWlsZWQgdG8gdXBkYXRlIGJ3IHZv dGUgZm9yIGJ1cy0lZFxuIiwKLQkJCQkJICBjcnRjLT5iYXNlLmlkLCBpKTsKLQkJCQlyZXR1cm4g cmV0OwotCQkJfQorCisJdHJhY2VfZHB1X3BlcmZfY3J0Y191cGRhdGUoY3J0Yy0+YmFzZS5pZCwg bmV3LT5id19jdGwsCisJCW5ldy0+Y29yZV9jbGtfcmF0ZSwgc3RvcF9yZXEsIHVwZGF0ZV9idXMs IHVwZGF0ZV9jbGspOworCisJaWYgKHVwZGF0ZV9idXMpIHsKKwkJcmV0ID0gX2RwdV9jb3JlX3Bl cmZfY3J0Y191cGRhdGVfYnVzKGttcywgY3J0Yyk7CisJCWlmIChyZXQpIHsKKwkJCURQVV9FUlJP UigiY3J0Yy0lZDogZmFpbGVkIHRvIHVwZGF0ZSBidXMgYncgdm90ZVxuIiwKKwkJCQkgIGNydGMt PmJhc2UuaWQpOworCQkJcmV0dXJuIHJldDsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5oIGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5oCmluZGV4IGZiY2JlMGMuLjBmYjI3NjkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmgKQEAgLTMw LDggKzMwLDggQEAKICAqIEBjb3JlX2Nsa19yYXRlOiBjb3JlIGNsb2NrIHJhdGUgcmVxdWVzdAog ICovCiBzdHJ1Y3QgZHB1X2NvcmVfcGVyZl9wYXJhbXMgewotCXU2NCBtYXhfcGVyX3BpcGVfaWJb RFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWF07Ci0JdTY0IGJ3X2N0bFtEUFVfUE9XRVJfSEFO RExFX0RCVVNfSURfTUFYXTsKKwl1NjQgbWF4X3Blcl9waXBlX2liOworCXU2NCBid19jdGw7CiAJ dTY0IGNvcmVfY2xrX3JhdGU7CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2NydGMuYwppbmRleCBkMjdlYTJhLi5kMzRlYzlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9jcnRjLmMKQEAgLTEzODksMjEgKzEzODksMTQgQEAgc3RhdGljIGludCBkcHVf Y3J0Y19kZWJ1Z2ZzX3N0YXRlX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp2KQogewog CXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IChzdHJ1Y3QgZHJtX2NydGMgKikgcy0+cHJpdmF0ZTsK IAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjID0gdG9fZHB1X2NydGMoY3J0Yyk7Ci0JaW50IGk7 CiAKIAlzZXFfcHJpbnRmKHMsICJjbGllbnQgdHlwZTogJWRcbiIsIGRwdV9jcnRjX2dldF9jbGll bnRfdHlwZShjcnRjKSk7CiAJc2VxX3ByaW50ZihzLCAiaW50Zl9tb2RlOiAlZFxuIiwgZHB1X2Ny dGNfZ2V0X2ludGZfbW9kZShjcnRjKSk7CiAJc2VxX3ByaW50ZihzLCAiY29yZV9jbGtfcmF0ZTog JWxsdVxuIiwKIAkJCWRwdV9jcnRjLT5jdXJfcGVyZi5jb3JlX2Nsa19yYXRlKTsKLQlmb3IgKGkg PSBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQzsKLQkJCWkgPCBEUFVfUE9XRVJfSEFORExF X0RCVVNfSURfTUFYOyBpKyspIHsKLQkJc2VxX3ByaW50ZihzLCAiYndfY3RsWyVzXTogJWxsdVxu IiwKLQkJCQlkcHVfcG93ZXJfaGFuZGxlX2dldF9kYnVzX25hbWUoaSksCi0JCQkJZHB1X2NydGMt PmN1cl9wZXJmLmJ3X2N0bFtpXSk7Ci0JCXNlcV9wcmludGYocywgIm1heF9wZXJfcGlwZV9pYlsl c106ICVsbHVcbiIsCi0JCQkJZHB1X3Bvd2VyX2hhbmRsZV9nZXRfZGJ1c19uYW1lKGkpLAotCQkJ CWRwdV9jcnRjLT5jdXJfcGVyZi5tYXhfcGVyX3BpcGVfaWJbaV0pOwotCX0KKwlzZXFfcHJpbnRm KHMsICJid19jdGw6ICVsbHVcbiIsIGRwdV9jcnRjLT5jdXJfcGVyZi5id19jdGwpOworCXNlcV9w cmludGYocywgIm1heF9wZXJfcGlwZV9pYjogJWxsdVxuIiwKKwkJCQlkcHVfY3J0Yy0+Y3VyX3Bl cmYubWF4X3Blcl9waXBlX2liKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5jIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5jCmluZGV4IGZjMTQxMTYuLmQ1OGQw MTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9o YW5kbGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFu ZGxlLmMKQEAgLTI0LDIwICsyNCw2IEBACiAjaW5jbHVkZSAiZHB1X3Bvd2VyX2hhbmRsZS5oIgog I2luY2x1ZGUgImRwdV90cmFjZS5oIgogCi1zdGF0aWMgY29uc3QgY2hhciAqZGF0YV9idXNfbmFt ZVtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYXSA9IHsKLQlbRFBVX1BPV0VSX0hBTkRMRV9E QlVTX0lEX01OT0NdID0gInFjb20sZHB1LWRhdGEtYnVzIiwKLQlbRFBVX1BPV0VSX0hBTkRMRV9E QlVTX0lEX0xMQ0NdID0gInFjb20sZHB1LWxsY2MtYnVzIiwKLQlbRFBVX1BPV0VSX0hBTkRMRV9E QlVTX0lEX0VCSV0gPSAicWNvbSxkcHUtZWJpLWJ1cyIsCi19OwotCi1jb25zdCBjaGFyICpkcHVf cG93ZXJfaGFuZGxlX2dldF9kYnVzX25hbWUodTMyIGJ1c19pZCkKLXsKLQlpZiAoYnVzX2lkIDwg RFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWCkKLQkJcmV0dXJuIGRhdGFfYnVzX25hbWVbYnVz X2lkXTsKLQotCXJldHVybiBOVUxMOwotfQotCiBzdGF0aWMgdm9pZCBkcHVfcG93ZXJfZXZlbnRf dHJpZ2dlcl9sb2NrZWQoc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBoYW5kbGUsCiAJCXUzMiBl dmVudF90eXBlKQogewpAQCAtNjYsNyArNTIsNiBAQCBzdHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudCAq ZHB1X3Bvd2VyX2NsaWVudF9jcmVhdGUoCiAKIAltdXRleF9sb2NrKCZwaGFuZGxlLT5waGFuZGxl X2xvY2spOwogCXN0cmxjcHkoY2xpZW50LT5uYW1lLCBjbGllbnRfbmFtZSwgTUFYX0NMSUVOVF9O QU1FX0xFTik7Ci0JY2xpZW50LT51c2VjYXNlX25keCA9IFZPVEVfSU5ERVhfRElTQUJMRTsKIAlj bGllbnQtPmlkID0gaWQ7CiAJY2xpZW50LT5hY3RpdmUgPSB0cnVlOwogCXByX2RlYnVnKCJjbGll bnQgJXMgY3JlYXRlZDolcEsgaWQgOiVkXG4iLCBjbGllbnRfbmFtZSwKQEAgLTE0Myw4ICsxMjgs NiBAQCBpbnQgZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZShzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRs ZSAqcGhhbmRsZSwKIAlzdHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudCAqcGNsaWVudCwgYm9vbCBlbmFi bGUpCiB7CiAJYm9vbCBjaGFuZ2VkID0gZmFsc2U7Ci0JdTMyIG1heF91c2VjYXNlX25keCA9IFZP VEVfSU5ERVhfRElTQUJMRSwgcHJldl91c2VjYXNlX25keDsKLQlzdHJ1Y3QgZHB1X3Bvd2VyX2Ns aWVudCAqY2xpZW50OwogCXUzMiBldmVudF90eXBlOwogCiAJaWYgKCFwaGFuZGxlIHx8ICFwY2xp ZW50KSB7CkBAIC0xNTMsMzEgKzEzNiwxOSBAQCBpbnQgZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJs ZShzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRsZSAqcGhhbmRsZSwKIAl9CiAKIAltdXRleF9sb2NrKCZw aGFuZGxlLT5waGFuZGxlX2xvY2spOwotCWlmIChlbmFibGUpCisJaWYgKGVuYWJsZSkgewogCQlw Y2xpZW50LT5yZWZjb3VudCsrOwotCWVsc2UgaWYgKHBjbGllbnQtPnJlZmNvdW50KQorCQlpZiAo cGNsaWVudC0+cmVmY291bnQgPT0gMSkKKwkJCWNoYW5nZWQgPSB0cnVlOworCX0gZWxzZSBpZiAo cGNsaWVudC0+cmVmY291bnQpIHsKIAkJcGNsaWVudC0+cmVmY291bnQtLTsKLQotCWlmIChwY2xp ZW50LT5yZWZjb3VudCkKLQkJcGNsaWVudC0+dXNlY2FzZV9uZHggPSBWT1RFX0lOREVYX0xPVzsK LQllbHNlCi0JCXBjbGllbnQtPnVzZWNhc2VfbmR4ID0gVk9URV9JTkRFWF9ESVNBQkxFOwotCi0J bGlzdF9mb3JfZWFjaF9lbnRyeShjbGllbnQsICZwaGFuZGxlLT5wb3dlcl9jbGllbnRfY2xpc3Qs IGxpc3QpIHsKLQkJaWYgKGNsaWVudC0+dXNlY2FzZV9uZHggPCBWT1RFX0lOREVYX01BWCAmJgot CQkgICAgY2xpZW50LT51c2VjYXNlX25keCA+IG1heF91c2VjYXNlX25keCkKLQkJCW1heF91c2Vj YXNlX25keCA9IGNsaWVudC0+dXNlY2FzZV9uZHg7Ci0JfQotCi0JaWYgKHBoYW5kbGUtPmN1cnJl bnRfdXNlY2FzZV9uZHggIT0gbWF4X3VzZWNhc2VfbmR4KSB7Ci0JCWNoYW5nZWQgPSB0cnVlOwot CQlwcmV2X3VzZWNhc2VfbmR4ID0gcGhhbmRsZS0+Y3VycmVudF91c2VjYXNlX25keDsKLQkJcGhh bmRsZS0+Y3VycmVudF91c2VjYXNlX25keCA9IG1heF91c2VjYXNlX25keDsKKwkJaWYgKCFwY2xp ZW50LT5yZWZjb3VudCkKKwkJCWNoYW5nZWQgPSB0cnVlOwogCX0KIAotCXByX2RlYnVnKCIlcFM6 IGNoYW5nZWQ9JWQgY3VycmVudCBpZHg9JWQgcmVxdWVzdCBjbGllbnQgJXMgaWQ6JXUgZW5hYmxl OiVkIHJlZmNvdW50OiVkXG4iLAotCQlfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksIGNoYW5n ZWQsIG1heF91c2VjYXNlX25keCwKLQkJcGNsaWVudC0+bmFtZSwgcGNsaWVudC0+aWQsIGVuYWJs ZSwgcGNsaWVudC0+cmVmY291bnQpOworCXByX2RlYnVnKCIlcFM6Y2hhbmdlZD0lZCBjbGllbnQg JXMgaWQ6JXUgZW5hYmxlOiVkIHJlZmNvdW50OiVkXG4iLAorCQlfX2J1aWx0aW5fcmV0dXJuX2Fk ZHJlc3MoMCksIGNoYW5nZWQsIHBjbGllbnQtPm5hbWUsCisJCXBjbGllbnQtPmlkLCBlbmFibGUs IHBjbGllbnQtPnJlZmNvdW50KTsKIAogCWlmICghY2hhbmdlZCkKIAkJZ290byBlbmQ7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmgg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmgKaW5kZXgg YTY1YjdhMi4uYjFhNWFlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X3Bvd2VyX2hhbmRsZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9wb3dlcl9oYW5kbGUuaApAQCAtMTYsMTEgKzE2LDYgQEAKIAogI2RlZmluZSBNQVhfQ0xJ RU5UX05BTUVfTEVOIDEyOAogCi0jZGVmaW5lIERQVV9QT1dFUl9IQU5ETEVfRU5BQkxFX0JVU19B Ql9RVU9UQQkwCi0jZGVmaW5lIERQVV9QT1dFUl9IQU5ETEVfRElTQUJMRV9CVVNfQUJfUVVPVEEJ MAotI2RlZmluZSBEUFVfUE9XRVJfSEFORExFX0VOQUJMRV9CVVNfSUJfUVVPVEEJMTYwMDAwMDAw MAotI2RlZmluZSBEUFVfUE9XRVJfSEFORExFX0RJU0FCTEVfQlVTX0lCX1FVT1RBCTAKLQogI2lu Y2x1ZGUgImRwdV9pb191dGlsLmgiCiAKIC8qIGV2ZW50cyB3aWxsIGJlIHRyaWdnZXJlZCBvbiBw b3dlciBoYW5kbGVyIGVuYWJsZS9kaXNhYmxlICovCkBAIC0yOCw2NCArMjMsMjEgQEAKICNkZWZp bmUgRFBVX1BPV0VSX0VWRU5UX0VOQUJMRQlCSVQoMSkKIAogLyoqCi0gKiBtZHNzX2J1c192b3Rl X3R5cGU6IHJlZ2lzdGVyIGJ1cyB2b3RlIHR5cGUKLSAqIFZPVEVfSU5ERVhfRElTQUJMRTogcmVt b3ZlcyB0aGUgY2xpZW50IHZvdGUKLSAqIFZPVEVfSU5ERVhfTE9XOiBrZWVwcyB0aGUgbG93ZXN0 IHZvdGUgZm9yIHJlZ2lzdGVyIGJ1cwotICogVk9URV9JTkRFWF9NQVg6IGludmFsaWQKLSAqLwot ZW51bSBtZHNzX2J1c192b3RlX3R5cGUgewotCVZPVEVfSU5ERVhfRElTQUJMRSwKLQlWT1RFX0lO REVYX0xPVywKLQlWT1RFX0lOREVYX01BWCwKLX07Ci0KLS8qKgotICogZW51bSBkcHVfcG93ZXJf aGFuZGxlX2RhdGFfYnVzX2NsaWVudCAtIHR5cGUgb2YgYXhpIGJ1cyBjbGllbnRzCi0gKiBARFBV X1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfUlQ6IGNvcmUgcmVhbC10aW1lIGJ1cyBjbGll bnQKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9OUlQ6IGNvcmUgbm9uLXJl YWwtdGltZSBidXMgY2xpZW50Ci0gKiBARFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRf TUFYOiBtYXhpbXVtIG51bWJlciBvZiBidXMgY2xpZW50IHR5cGUKLSAqLwotZW51bSBkcHVfcG93 ZXJfaGFuZGxlX2RhdGFfYnVzX2NsaWVudCB7Ci0JRFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19D TElFTlRfUlQsCi0JRFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfTlJULAotCURQVV9Q T1dFUl9IQU5ETEVfREFUQV9CVVNfQ0xJRU5UX01BWAotfTsKLQotLyoqCi0gKiBlbnVtIERQVV9Q T1dFUl9IQU5ETEVfREJVU19JRCAtIGRhdGEgYnVzIGlkZW50aWZpZXIKLSAqIEBEUFVfUE9XRVJf SEFORExFX0RCVVNfSURfTU5PQzogRFBVL01OT0MgZGF0YSBidXMKLSAqIEBEUFVfUE9XRVJfSEFO RExFX0RCVVNfSURfTExDQzogTU5PQy9MTENDIGRhdGEgYnVzCi0gKiBARFBVX1BPV0VSX0hBTkRM RV9EQlVTX0lEX0VCSTogTExDQy9FQkkgZGF0YSBidXMKLSAqLwotZW51bSBEUFVfUE9XRVJfSEFO RExFX0RCVVNfSUQgewotCURQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NTk9DLAotCURQVV9QT1dF Ul9IQU5ETEVfREJVU19JRF9MTENDLAotCURQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9FQkksCi0J RFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWCwKLX07Ci0KLS8qKgogICogc3RydWN0IGRwdV9w b3dlcl9jbGllbnQ6IHN0b3JlcyB0aGUgcG93ZXIgY2xpZW50IGZvciBkcHUgZHJpdmVyCiAgKiBA bmFtZToJbmFtZSBvZiB0aGUgY2xpZW50Ci0gKiBAdXNlY2FzZV9uZHg6IGN1cnJlbnQgcmVncyBi dXMgdm90ZSB0eXBlCiAgKiBAcmVmY291bnQ6CWN1cnJlbnQgcmVmY291bnQgaWYgbXVsdGlwbGUg bW9kdWxlcyBhcmUgdXNpbmcgc2FtZQogICogICAgICAgICAgICAgIHNhbWUgY2xpZW50IGZvciBl bmFibGUvZGlzYWJsZS4gUG93ZXIgbW9kdWxlIHdpbGwKICAqICAgICAgICAgICAgICBhZ2dyZWdh dGUgdGhlIHJlZmNvdW50IGFuZCB2b3RlIGFjY29yZGluZ2x5IGZvciB0aGlzCiAgKiAgICAgICAg ICAgICAgY2xpZW50LgogICogQGlkOgkJYXNzaWduZWQgZHVyaW5nIGNyZWF0ZS4gaGVscHMgZm9y IGRlYnVnZ2luZy4KICAqIEBsaXN0OglsaXN0IHRvIGF0dGFjaCBwb3dlciBoYW5kbGUgbWFzdGVy IGxpc3QKLSAqIEBhYjogICAgICAgICBhcmJpdHJhdGVkIGJhbmR3aWR0aCBmb3IgZWFjaCBidXMg Y2xpZW50Ci0gKiBAaWI6ICAgICAgICAgaW5zdGFudGFuZW91cyBiYW5kd2lkdGggZm9yIGVhY2gg YnVzIGNsaWVudAogICogQGFjdGl2ZToJaW5pZGNhdGVzIHRoZSBzdGF0ZSBvZiBkcHUgcG93ZXIg aGFuZGxlCiAgKi8KIHN0cnVjdCBkcHVfcG93ZXJfY2xpZW50IHsKIAljaGFyIG5hbWVbTUFYX0NM SUVOVF9OQU1FX0xFTl07Ci0Jc2hvcnQgdXNlY2FzZV9uZHg7CiAJc2hvcnQgcmVmY291bnQ7CiAJ dTMyIGlkOwogCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKLQl1NjQgYWJbRFBVX1BPV0VSX0hBTkRM RV9EQVRBX0JVU19DTElFTlRfTUFYXTsKLQl1NjQgaWJbRFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JV U19DTElFTlRfTUFYXTsKIAlib29sIGFjdGl2ZTsKIH07CiAKQEAgLTExMiwxNCArNjQsMTIgQEAg c3RydWN0IGRwdV9wb3dlcl9ldmVudCB7CiAgKiBAY2xpZW50X2NsaXN0OiBtYXN0ZXIgbGlzdCB0 byBzdG9yZSBhbGwgY2xpZW50cwogICogQHBoYW5kbGVfbG9jazogbG9jayB0byBzeW5jaHJvbml6 ZSB0aGUgZW5hYmxlL2Rpc2FibGUKICAqIEBkZXY6IHBvaW50ZXIgdG8gZGV2aWNlIHN0cnVjdHVy ZQotICogQHVzZWNhc2VfbmR4OiBjdXJyZW50IHVzZWNhc2UgaW5kZXgKICAqIEBldmVudF9saXN0 OiBjdXJyZW50IHBvd2VyIGhhbmRsZSBldmVudCBsaXN0CiAgKi8KIHN0cnVjdCBkcHVfcG93ZXJf aGFuZGxlIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIHBvd2VyX2NsaWVudF9jbGlzdDsKIAlzdHJ1Y3Qg bXV0ZXggcGhhbmRsZV9sb2NrOwogCXN0cnVjdCBkZXZpY2UgKmRldjsKLQl1MzIgY3VycmVudF91 c2VjYXNlX25keDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGV2ZW50X2xpc3Q7CiB9OwogCkBAIC0xNzMs MTcgKzEyMyw2IEBAIGludCBkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKHN0cnVjdCBkcHVfcG93 ZXJfaGFuZGxlICpwZGF0YSwKIAlzdHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudCAqcGNsaWVudCwgYm9v bCBlbmFibGUpOwogCiAvKioKLSAqIGRwdV9wb3dlcl9kYXRhX2J1c19iYW5kd2lkdGhfY3RybCgp IC0gY29udHJvbCBkYXRhIGJ1cyBiYW5kd2lkdGggZW5hYmxlCi0gKiBAcGhhbmRsZTogIHBvd2Vy IGhhbmRsZSBjb250YWluaW5nIHRoZSByZXNvdXJjZXMKLSAqIEBjbGllbnQ6IGNsaWVudCBpbmZv cm1hdGlvbiB0byBiYW5kd2lkdGggY29udHJvbAotICogQGVuYWJsZTogdHJ1ZSB0byBlbmFibGUg YmFuZHdpZHRoIGZvciBkYXRhIGJhc2UKLSAqCi0gKiBSZXR1cm46IG5vbmUKLSAqLwotdm9pZCBk cHVfcG93ZXJfZGF0YV9idXNfYmFuZHdpZHRoX2N0cmwoc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUg KnBoYW5kbGUsCi0JCXN0cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpwY2xpZW50LCBpbnQgZW5hYmxl KTsKLQotLyoqCiAgKiBkcHVfcG93ZXJfaGFuZGxlX3JlZ2lzdGVyX2V2ZW50IC0gcmVnaXN0ZXIg YSBjYWxsYmFjayBmdW5jdGlvbiBmb3IgYW4gZXZlbnQuCiAgKglDbGllbnRzIGNhbiByZWdpc3Rl ciBmb3IgbXVsdGlwbGUgZXZlbnRzIHdpdGggYSBzaW5nbGUgcmVnaXN0ZXIuCiAgKglBbnkgYmxv Y2sgd2l0aCBhY2Nlc3MgdG8gcGhhbmRsZSBjYW4gcmVnaXN0ZXIgZm9yIHRoZSBldmVudApAQCAt MjA3LDExICsxNDYsNCBAQCBzdHJ1Y3QgZHB1X3Bvd2VyX2V2ZW50ICpkcHVfcG93ZXJfaGFuZGxl X3JlZ2lzdGVyX2V2ZW50KAogdm9pZCBkcHVfcG93ZXJfaGFuZGxlX3VucmVnaXN0ZXJfZXZlbnQo c3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBoYW5kbGUsCiAJCXN0cnVjdCBkcHVfcG93ZXJfZXZl bnQgKmV2ZW50KTsKIAotLyoqCi0gKiBkcHVfcG93ZXJfaGFuZGxlX2dldF9kYnVzX25hbWUgLSBn ZXQgbmFtZSBvZiBnaXZlbiBkYXRhIGJ1cyBpZGVudGlmaWVyCi0gKiBAYnVzX2lkOglkYXRhIGJ1 cyBpZGVudGlmaWVyCi0gKiBSZXR1cm46CVBvaW50ZXIgdG8gbmFtZSBzdHJpbmcgaWYgc3VjY2Vz czsgTlVMTCBvdGhlcndpc2UKLSAqLwotY29uc3QgY2hhciAqZHB1X3Bvd2VyX2hhbmRsZV9nZXRf ZGJ1c19uYW1lKHUzMiBidXNfaWQpOwotCiAjZW5kaWYgLyogX0RQVV9QT1dFUl9IQU5ETEVfSF8g Ki8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV90cmFjZS5o IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmgKaW5kZXggMGMxMjJl MS4uN2M4YTkyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X3RyYWNlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmgK QEAgLTE2NywxNiArMTY3LDEyIEBACiApCiAKIFRSQUNFX0VWRU5UKGRwdV9wZXJmX2NydGNfdXBk YXRlLAotCVRQX1BST1RPKHUzMiBjcnRjLCB1NjQgYndfY3RsX21ub2MsIHU2NCBid19jdGxfbGxj YywKLQkJCXU2NCBid19jdGxfZWJpLCB1MzIgY29yZV9jbGtfcmF0ZSwKLQkJCWJvb2wgc3RvcF9y ZXEsIHUzMiB1cGRhdGVfYnVzLCB1MzIgdXBkYXRlX2NsayksCi0JVFBfQVJHUyhjcnRjLCBid19j dGxfbW5vYywgYndfY3RsX2xsY2MsIGJ3X2N0bF9lYmksIGNvcmVfY2xrX3JhdGUsCi0JCXN0b3Bf cmVxLCB1cGRhdGVfYnVzLCB1cGRhdGVfY2xrKSwKKwlUUF9QUk9UTyh1MzIgY3J0YywgdTY0IGJ3 X2N0bCwgdTMyIGNvcmVfY2xrX3JhdGUsCisJCQlib29sIHN0b3BfcmVxLCBib29sIHVwZGF0ZV9i dXMsIGJvb2wgdXBkYXRlX2NsayksCisJVFBfQVJHUyhjcnRjLCBid19jdGwsIGNvcmVfY2xrX3Jh dGUsIHN0b3BfcmVxLCB1cGRhdGVfYnVzLCB1cGRhdGVfY2xrKSwKIAlUUF9TVFJVQ1RfX2VudHJ5 KAogCQkJX19maWVsZCh1MzIsIGNydGMpCi0JCQlfX2ZpZWxkKHU2NCwgYndfY3RsX21ub2MpCi0J CQlfX2ZpZWxkKHU2NCwgYndfY3RsX2xsY2MpCi0JCQlfX2ZpZWxkKHU2NCwgYndfY3RsX2ViaSkK KwkJCV9fZmllbGQodTY0LCBid19jdGwpCiAJCQlfX2ZpZWxkKHUzMiwgY29yZV9jbGtfcmF0ZSkK IAkJCV9fZmllbGQoYm9vbCwgc3RvcF9yZXEpCiAJCQlfX2ZpZWxkKHUzMiwgdXBkYXRlX2J1cykK QEAgLTE4NCwyMCArMTgwLDE2IEBACiAJKSwKIAlUUF9mYXN0X2Fzc2lnbigKIAkJCV9fZW50cnkt PmNydGMgPSBjcnRjOwotCQkJX19lbnRyeS0+YndfY3RsX21ub2MgPSBid19jdGxfbW5vYzsKLQkJ CV9fZW50cnktPmJ3X2N0bF9sbGNjID0gYndfY3RsX2xsY2M7Ci0JCQlfX2VudHJ5LT5id19jdGxf ZWJpID0gYndfY3RsX2ViaTsKKwkJCV9fZW50cnktPmJ3X2N0bCA9IGJ3X2N0bDsKIAkJCV9fZW50 cnktPmNvcmVfY2xrX3JhdGUgPSBjb3JlX2Nsa19yYXRlOwogCQkJX19lbnRyeS0+c3RvcF9yZXEg PSBzdG9wX3JlcTsKIAkJCV9fZW50cnktPnVwZGF0ZV9idXMgPSB1cGRhdGVfYnVzOwogCQkJX19l bnRyeS0+dXBkYXRlX2NsayA9IHVwZGF0ZV9jbGs7CiAJKSwKIAkgVFBfcHJpbnRrKAotCQkiY3J0 Yz0lZCBid19tbm9jPSVsbHUgYndfbGxjYz0lbGx1IGJ3X2ViaT0lbGx1IGNsa19yYXRlPSV1IHN0 b3BfcmVxPSVkIHVfYnVzPSVkIHVfY2xrPSVkIiwKKwkJImNydGM9JWQgYndfY3RsPSVsbHUgY2xr X3JhdGU9JXUgc3RvcF9yZXE9JWQgdV9idXM9JWQgdV9jbGs9JWQiLAogCQkJX19lbnRyeS0+Y3J0 YywKLQkJCV9fZW50cnktPmJ3X2N0bF9tbm9jLAotCQkJX19lbnRyeS0+YndfY3RsX2xsY2MsCi0J CQlfX2VudHJ5LT5id19jdGxfZWJpLAorCQkJX19lbnRyeS0+YndfY3RsLAogCQkJX19lbnRyeS0+ Y29yZV9jbGtfcmF0ZSwKIAkJCV9fZW50cnktPnN0b3BfcmVxLAogCQkJX19lbnRyeS0+dXBkYXRl X2J1cywKLS0gClRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJl ciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0sCmEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0 aXZlIFByb2plY3QKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo=