From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sravanthi Kollukuduru Subject: [PATCH v3 1/3] drm/msm/dpu: clean up references of DPU custom bus scaling Date: Thu, 22 Nov 2018 14:36:51 +0530 Message-ID: <20181122090653.3523-2-skolluku@codeaurora.org> References: <20181122090653.3523-1-skolluku@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181122090653.3523-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, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Sravanthi Kollukuduru List-Id: devicetree@vger.kernel.org U2luY2UgdGhlIHVwc3RyZWFtIGludGVyY29ubmVjdCBidXMgZnJhbWV3b3JrIGhhcyBsYW5kZWQK dXBzdHJlYW0sIHRoZSBleGlzdGluZyByZWZlcmVuY2VzIG9mIGN1c3RvbSBidXMgc2NhbGluZwpu ZWVkcyB0byBiZSBjbGVhbmVkIHVwLgoKQ2hhbmdlcyBpbiB2MjoKCS0gRml4ZWQgYnVpbGQgZXJy b3IgZHVlIHRvIHBhcnRpYWwgY2xlYW4gdXAKCkNoYW5nZXMgaW4gdjM6CgktIENvbmRlbnNlIG11 bHRpcGxlIGxpbmVzIGludG8gYSBzaW5nbGUgbGluZSAoU2VhbiBQYXVsKQoKU2lnbmVkLW9mZi1i eTogU3JhdmFudGhpIEtvbGx1a3VkdXJ1IDxza29sbHVrdUBjb2RlYXVyb3JhLm9yZz4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmMgICAgfCAxNzQgKysr KysrKysrLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j b3JlX3BlcmYuaCAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2NydGMuYyAgICAgICAgIHwgIDEzICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfcG93ZXJfaGFuZGxlLmMgfCAgNDcgKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmggfCAgNjggLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfdHJhY2UuaCAgICAgICAgfCAgMjIgKy0tCiA2IGZpbGVzIGNoYW5n ZWQsIDg5IGluc2VydGlvbnMoKyksIDIzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmMgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmMKaW5kZXggMjJlODRiM2Q3Zjk4Li5jNzU1 MzZlY2UzZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j b3JlX3BlcmYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9w ZXJmLmMKQEAgLTg0LDcgKzg0LDYgQEAgc3RhdGljIHZvaWQgX2RwdV9jb3JlX3BlcmZfY2FsY19j cnRjKHN0cnVjdCBkcHVfa21zICprbXMsCiAJCXN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcyAq cGVyZikKIHsKIAlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGU7Ci0JaW50IGk7CiAK IAlpZiAoIWttcyB8fCAha21zLT5jYXRhbG9nIHx8ICFjcnRjIHx8ICFzdGF0ZSB8fCAhcGVyZikg ewogCQlEUFVfRVJST1IoImludmFsaWQgcGFyYW1ldGVyc1xuIik7CkBAIC05NSwzNSArOTQsMjQg QEAgc3RhdGljIHZvaWQgX2RwdV9jb3JlX3BlcmZfY2FsY19jcnRjKHN0cnVjdCBkcHVfa21zICpr bXMsCiAJbWVtc2V0KHBlcmYsIDAsIHNpemVvZihzdHJ1Y3QgZHB1X2NvcmVfcGVyZl9wYXJhbXMp KTsKIAogCWlmICghZHB1X2NzdGF0ZS0+YndfY29udHJvbCkgewotCQlmb3IgKGkgPSAwOyBpIDwg RFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWDsgaSsrKSB7Ci0JCQlwZXJmLT5id19jdGxbaV0g PSBrbXMtPmNhdGFsb2ctPnBlcmYubWF4X2J3X2hpZ2ggKgorCQlwZXJmLT5id19jdGwgPSBrbXMt PmNhdGFsb2ctPnBlcmYubWF4X2J3X2hpZ2ggKgogCQkJCQkxMDAwVUxMOwotCQkJcGVyZi0+bWF4 X3Blcl9waXBlX2liW2ldID0gcGVyZi0+YndfY3RsW2ldOwotCQl9CisJCXBlcmYtPm1heF9wZXJf cGlwZV9pYiA9IHBlcmYtPmJ3X2N0bDsKIAkJcGVyZi0+Y29yZV9jbGtfcmF0ZSA9IGttcy0+cGVy Zi5tYXhfY29yZV9jbGtfcmF0ZTsKIAl9IGVsc2UgaWYgKGttcy0+cGVyZi5wZXJmX3R1bmUubW9k ZSA9PSBEUFVfUEVSRl9NT0RFX01JTklNVU0pIHsKLQkJZm9yIChpID0gMDsgaSA8IERQVV9QT1dF Ul9IQU5ETEVfREJVU19JRF9NQVg7IGkrKykgewotCQkJcGVyZi0+YndfY3RsW2ldID0gMDsKLQkJ CXBlcmYtPm1heF9wZXJfcGlwZV9pYltpXSA9IDA7Ci0JCX0KKwkJcGVyZi0+YndfY3RsID0gMDsK KwkJcGVyZi0+bWF4X3Blcl9waXBlX2liID0gMDsKIAkJcGVyZi0+Y29yZV9jbGtfcmF0ZSA9IDA7 CiAJfSBlbHNlIGlmIChrbXMtPnBlcmYucGVyZl90dW5lLm1vZGUgPT0gRFBVX1BFUkZfTU9ERV9G SVhFRCkgewotCQlmb3IgKGkgPSAwOyBpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWDsg aSsrKSB7Ci0JCQlwZXJmLT5id19jdGxbaV0gPSBrbXMtPnBlcmYuZml4X2NvcmVfYWJfdm90ZTsK LQkJCXBlcmYtPm1heF9wZXJfcGlwZV9pYltpXSA9IGttcy0+cGVyZi5maXhfY29yZV9pYl92b3Rl OwotCQl9CisJCXBlcmYtPmJ3X2N0bCA9IGttcy0+cGVyZi5maXhfY29yZV9hYl92b3RlOworCQlw ZXJmLT5tYXhfcGVyX3BpcGVfaWIgPSBrbXMtPnBlcmYuZml4X2NvcmVfaWJfdm90ZTsKIAkJcGVy Zi0+Y29yZV9jbGtfcmF0ZSA9IGttcy0+cGVyZi5maXhfY29yZV9jbGtfcmF0ZTsKIAl9CiAKIAlE UFVfREVCVUcoCi0JCSJjcnRjPSVkIGNsa19yYXRlPSVsbHUgY29yZV9pYj0lbGx1IGNvcmVfYWI9 JWxsdSBsbGNjX2liPSVsbHUgbGxjY19hYj0lbGx1IG1lbV9pYj0lbGx1IG1lbV9hYj0lbGx1XG4i LAorCQkiY3J0Yz0lZCBjbGtfcmF0ZT0lbGx1IGNvcmVfaWI9JWxsdSBjb3JlX2FiPSVsbHVcbiIs CiAJCQljcnRjLT5iYXNlLmlkLCBwZXJmLT5jb3JlX2Nsa19yYXRlLAotCQkJcGVyZi0+bWF4X3Bl cl9waXBlX2liW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NTk9DXSwKLQkJCXBlcmYtPmJ3X2N0 bFtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQ10sCi0JCQlwZXJmLT5tYXhfcGVyX3BpcGVf aWJbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0xMQ0NdLAotCQkJcGVyZi0+YndfY3RsW0RQVV9Q T1dFUl9IQU5ETEVfREJVU19JRF9MTENDXSwKLQkJCXBlcmYtPm1heF9wZXJfcGlwZV9pYltEUFVf UE9XRVJfSEFORExFX0RCVVNfSURfRUJJXSwKLQkJCXBlcmYtPmJ3X2N0bFtEUFVfUE9XRVJfSEFO RExFX0RCVVNfSURfRUJJXSk7CisJCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWIsIHBlcmYtPmJ3X2N0 bCk7CiB9CiAKIGludCBkcHVfY29yZV9wZXJmX2NydGNfY2hlY2soc3RydWN0IGRybV9jcnRjICpj cnRjLApAQCAtMTM2LDcgKzEyNCw2IEBAIGludCBkcHVfY29yZV9wZXJmX2NydGNfY2hlY2soc3Ry dWN0IGRybV9jcnRjICpjcnRjLAogCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZTsK IAlzdHJ1Y3QgZHJtX2NydGMgKnRtcF9jcnRjOwogCXN0cnVjdCBkcHVfa21zICprbXM7Ci0JaW50 IGk7CiAKIAlpZiAoIWNydGMgfHwgIXN0YXRlKSB7CiAJCURQVV9FUlJPUigiaW52YWxpZCBjcnRj XG4iKTsKQEAgLTE1OCwzMSArMTQ1LDI1IEBAIGludCBkcHVfY29yZV9wZXJmX2NydGNfY2hlY2so c3RydWN0IGRybV9jcnRjICpjcnRjLAogCS8qIG9idGFpbiBuZXcgdmFsdWVzICovCiAJX2RwdV9j b3JlX3BlcmZfY2FsY19jcnRjKGttcywgY3J0Yywgc3RhdGUsICZkcHVfY3N0YXRlLT5uZXdfcGVy Zik7CiAKLQlmb3IgKGkgPSBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQzsKLQkJCWkgPCBE UFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKLQkJYndfc3VtX29mX2ludGZzID0g ZHB1X2NzdGF0ZS0+bmV3X3BlcmYuYndfY3RsW2ldOwotCQljdXJyX2NsaWVudF90eXBlID0gZHB1 X2NydGNfZ2V0X2NsaWVudF90eXBlKGNydGMpOworCWJ3X3N1bV9vZl9pbnRmcyA9IGRwdV9jc3Rh dGUtPm5ld19wZXJmLmJ3X2N0bDsKKwljdXJyX2NsaWVudF90eXBlID0gZHB1X2NydGNfZ2V0X2Ns aWVudF90eXBlKGNydGMpOwogCi0JCWRybV9mb3JfZWFjaF9jcnRjKHRtcF9jcnRjLCBjcnRjLT5k ZXYpIHsKLQkJCWlmIChfZHB1X2NvcmVfcGVyZl9jcnRjX2lzX3Bvd2VyX29uKHRtcF9jcnRjKSAm JgotCQkJICAgIChkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUodG1wX2NydGMpID09Ci0JCQkJCSAg ICBjdXJyX2NsaWVudF90eXBlKSAmJgotCQkJICAgICh0bXBfY3J0YyAhPSBjcnRjKSkgewotCQkJ CXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqdG1wX2NzdGF0ZSA9Ci0JCQkJCXRvX2RwdV9jcnRjX3N0 YXRlKHRtcF9jcnRjLT5zdGF0ZSk7Ci0KLQkJCQlEUFVfREVCVUcoImNydGM6JWQgYnc6JWxsdSBj dHJsOiVkXG4iLAotCQkJCQl0bXBfY3J0Yy0+YmFzZS5pZCwKLQkJCQkJdG1wX2NzdGF0ZS0+bmV3 X3BlcmYuYndfY3RsW2ldLAotCQkJCQl0bXBfY3N0YXRlLT5id19jb250cm9sKTsKLQkJCQkvKgot CQkJCSAqIEZvciBidyBjaGVjayBvbmx5IHVzZSB0aGUgYncgaWYgdGhlCi0JCQkJICogYXRvbWlj IHByb3BlcnR5IGhhcyBiZWVuIGFscmVhZHkgc2V0Ci0JCQkJICovCi0JCQkJaWYgKHRtcF9jc3Rh dGUtPmJ3X2NvbnRyb2wpCi0JCQkJCWJ3X3N1bV9vZl9pbnRmcyArPQotCQkJCQkJdG1wX2NzdGF0 ZS0+bmV3X3BlcmYuYndfY3RsW2ldOwotCQkJfQorCWRybV9mb3JfZWFjaF9jcnRjKHRtcF9jcnRj LCBjcnRjLT5kZXYpIHsKKwkJaWYgKF9kcHVfY29yZV9wZXJmX2NydGNfaXNfcG93ZXJfb24odG1w X2NydGMpICYmCisJCSAgICAoZHB1X2NydGNfZ2V0X2NsaWVudF90eXBlKHRtcF9jcnRjKSA9PQor CQkJCWN1cnJfY2xpZW50X3R5cGUpICYmICh0bXBfY3J0YyAhPSBjcnRjKSkgeworCQkJc3RydWN0 IGRwdV9jcnRjX3N0YXRlICp0bXBfY3N0YXRlID0KKwkJCQl0b19kcHVfY3J0Y19zdGF0ZSh0bXBf Y3J0Yy0+c3RhdGUpOworCisJCQlEUFVfREVCVUcoImNydGM6JWQgYnc6JWxsdSBjdHJsOiVkXG4i LAorCQkJCXRtcF9jcnRjLT5iYXNlLmlkLCB0bXBfY3N0YXRlLT5uZXdfcGVyZi5id19jdGwsCisJ CQkJdG1wX2NzdGF0ZS0+YndfY29udHJvbCk7CisJCQkvKgorCQkJICogRm9yIGJ3IGNoZWNrIG9u bHkgdXNlIHRoZSBidyBpZiB0aGUKKwkJCSAqIGF0b21pYyBwcm9wZXJ0eSBoYXMgYmVlbiBhbHJl YWR5IHNldAorCQkJICovCisJCQlpZiAodG1wX2NzdGF0ZS0+YndfY29udHJvbCkKKwkJCQlid19z dW1fb2ZfaW50ZnMgKz0gdG1wX2NzdGF0ZS0+bmV3X3BlcmYuYndfY3RsOwogCQl9CiAKIAkJLyog Y29udmVydCBiYW5kd2lkdGggdG8ga2IgKi8KQEAgLTIxMyw5ICsxOTQsOSBAQCBpbnQgZHB1X2Nv cmVfcGVyZl9jcnRjX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIH0KIAogc3RhdGljIGlu dCBfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9idXMoc3RydWN0IGRwdV9rbXMgKmttcywKLQkJ c3RydWN0IGRybV9jcnRjICpjcnRjLCB1MzIgYnVzX2lkKQorCQlzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpCiB7Ci0Jc3RydWN0IGRwdV9jb3JlX3BlcmZfcGFyYW1zIHBlcmYgPSB7IHsgMCB9IH07CisJ c3RydWN0IGRwdV9jb3JlX3BlcmZfcGFyYW1zIHBlcmYgPSB7IDAgfTsKIAllbnVtIGRwdV9jcnRj X2NsaWVudF90eXBlIGN1cnJfY2xpZW50X3R5cGUKIAkJCQkJPSBkcHVfY3J0Y19nZXRfY2xpZW50 X3R5cGUoY3J0Yyk7CiAJc3RydWN0IGRybV9jcnRjICp0bXBfY3J0YzsKQEAgLTIyOCwxMyArMjA5 LDExIEBAIHN0YXRpYyBpbnQgX2RwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGVfYnVzKHN0cnVjdCBk cHVfa21zICprbXMsCiAJCQkJZHB1X2NydGNfZ2V0X2NsaWVudF90eXBlKHRtcF9jcnRjKSkgewog CQkJZHB1X2NzdGF0ZSA9IHRvX2RwdV9jcnRjX3N0YXRlKHRtcF9jcnRjLT5zdGF0ZSk7CiAKLQkJ CXBlcmYubWF4X3Blcl9waXBlX2liW2J1c19pZF0gPQotCQkJCW1heChwZXJmLm1heF9wZXJfcGlw ZV9pYltidXNfaWRdLAotCQkJCWRwdV9jc3RhdGUtPm5ld19wZXJmLm1heF9wZXJfcGlwZV9pYlti dXNfaWRdKTsKKwkJCXBlcmYubWF4X3Blcl9waXBlX2liID0gbWF4KHBlcmYubWF4X3Blcl9waXBl X2liLAorCQkJCQlkcHVfY3N0YXRlLT5uZXdfcGVyZi5tYXhfcGVyX3BpcGVfaWIpOwogCi0JCQlE UFVfREVCVUcoImNydGM9JWQgYnVzX2lkPSVkIGJ3PSVsbHVcbiIsCi0JCQkJdG1wX2NydGMtPmJh c2UuaWQsIGJ1c19pZCwKLQkJCQlkcHVfY3N0YXRlLT5uZXdfcGVyZi5id19jdGxbYnVzX2lkXSk7 CisJCQlEUFVfREVCVUcoImNydGM9JWQgYnc9JWxsdVxuIiwgdG1wX2NydGMtPmJhc2UuaWQsCisJ CQkJCWRwdV9jc3RhdGUtPm5ld19wZXJmLmJ3X2N0bCk7CiAJCX0KIAl9CiAJcmV0dXJuIHJldDsK QEAgLTI1NCw3ICsyMzMsNiBAQCB2b2lkIGRwdV9jb3JlX3BlcmZfY3J0Y19yZWxlYXNlX2J3KHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjOwogCXN0cnVj dCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZTsKIAlzdHJ1Y3QgZHB1X2ttcyAqa21zOwotCWlu dCBpOwogCiAJaWYgKCFjcnRjKSB7CiAJCURQVV9FUlJPUigiaW52YWxpZCBjcnRjXG4iKTsKQEAg LTI5MCwxMCArMjY4LDggQEAgdm9pZCBkcHVfY29yZV9wZXJmX2NydGNfcmVsZWFzZV9idyhzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCiAJaWYgKGttcy0+cGVyZi5lbmFibGVfYndfcmVsZWFzZSkgewog CQl0cmFjZV9kcHVfY21kX3JlbGVhc2VfYncoY3J0Yy0+YmFzZS5pZCk7CiAJCURQVV9ERUJVRygi UmVsZWFzZSBCVyBjcnRjPSVkXG4iLCBjcnRjLT5iYXNlLmlkKTsKLQkJZm9yIChpID0gMDsgaSA8 IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVg7IGkrKykgewotCQkJZHB1X2NydGMtPmN1cl9w ZXJmLmJ3X2N0bFtpXSA9IDA7Ci0JCQlfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9idXMoa21z LCBjcnRjLCBpKTsKLQkJfQorCQlkcHVfY3J0Yy0+Y3VyX3BlcmYuYndfY3RsID0gMDsKKwkJX2Rw dV9jb3JlX3BlcmZfY3J0Y191cGRhdGVfYnVzKGttcywgY3J0Yyk7CiAJfQogfQogCkBAIC0zMzYs MTEgKzMxMiwxMCBAQCBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCiAJCWludCBwYXJhbXNfY2hhbmdlZCwgYm9vbCBzdG9wX3JlcSkKIHsKIAlzdHJ1 Y3QgZHB1X2NvcmVfcGVyZl9wYXJhbXMgKm5ldywgKm9sZDsKLQlpbnQgdXBkYXRlX2J1cyA9IDAs IHVwZGF0ZV9jbGsgPSAwOworCWJvb2wgdXBkYXRlX2J1cyA9IGZhbHNlLCB1cGRhdGVfY2xrID0g ZmFsc2U7CiAJdTY0IGNsa19yYXRlID0gMDsKIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjOwog CXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZTsKLQlpbnQgaTsKIAlzdHJ1Y3QgbXNt X2RybV9wcml2YXRlICpwcml2OwogCXN0cnVjdCBkcHVfa21zICprbXM7CiAJaW50IHJldDsKQEAg LTM2Nyw2MiArMzQyLDQ5IEBAIGludCBkcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKIAluZXcgPSAmZHB1X2NzdGF0ZS0+bmV3X3BlcmY7CiAKIAlpZiAoX2Rw dV9jb3JlX3BlcmZfY3J0Y19pc19wb3dlcl9vbihjcnRjKSAmJiAhc3RvcF9yZXEpIHsKLQkJZm9y IChpID0gMDsgaSA8IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVg7IGkrKykgewotCQkJLyoK LQkJCSAqIGNhc2VzIGZvciBidXMgYmFuZHdpZHRoIHVwZGF0ZS4KLQkJCSAqIDEuIG5ldyBiYW5k d2lkdGggdm90ZSAtICJhYiBvciBpYiB2b3RlIiBpcyBoaWdoZXIKLQkJCSAqICAgIHRoYW4gY3Vy cmVudCB2b3RlIGZvciB1cGRhdGUgcmVxdWVzdC4KLQkJCSAqIDIuIG5ldyBiYW5kd2lkdGggdm90 ZSAtICJhYiBvciBpYiB2b3RlIiBpcyBsb3dlcgotCQkJICogICAgdGhhbiBjdXJyZW50IHZvdGUg YXQgZW5kIG9mIGNvbW1pdCBvciBzdG9wLgotCQkJICovCi0JCQlpZiAoKHBhcmFtc19jaGFuZ2Vk ICYmICgobmV3LT5id19jdGxbaV0gPgotCQkJCQkJb2xkLT5id19jdGxbaV0pIHx8Ci0JCQkJICAo bmV3LT5tYXhfcGVyX3BpcGVfaWJbaV0gPgotCQkJCQkJb2xkLT5tYXhfcGVyX3BpcGVfaWJbaV0p KSkgfHwKLQkJCSAgICAoIXBhcmFtc19jaGFuZ2VkICYmICgobmV3LT5id19jdGxbaV0gPAotCQkJ CQkJb2xkLT5id19jdGxbaV0pIHx8Ci0JCQkJICAobmV3LT5tYXhfcGVyX3BpcGVfaWJbaV0gPAot CQkJCQkJb2xkLT5tYXhfcGVyX3BpcGVfaWJbaV0pKSkpIHsKLQkJCQlEUFVfREVCVUcoCi0JCQkJ CSJjcnRjPSVkIHA9JWQgbmV3X2J3PSVsbHUsb2xkX2J3PSVsbHVcbiIsCi0JCQkJCWNydGMtPmJh c2UuaWQsIHBhcmFtc19jaGFuZ2VkLAotCQkJCQluZXctPmJ3X2N0bFtpXSwgb2xkLT5id19jdGxb aV0pOwotCQkJCW9sZC0+YndfY3RsW2ldID0gbmV3LT5id19jdGxbaV07Ci0JCQkJb2xkLT5tYXhf cGVyX3BpcGVfaWJbaV0gPQotCQkJCQkJbmV3LT5tYXhfcGVyX3BpcGVfaWJbaV07Ci0JCQkJdXBk YXRlX2J1cyB8PSBCSVQoaSk7Ci0JCQl9CisJCS8qCisJCSAqIGNhc2VzIGZvciBidXMgYmFuZHdp ZHRoIHVwZGF0ZS4KKwkJICogMS4gbmV3IGJhbmR3aWR0aCB2b3RlIC0gImFiIG9yIGliIHZvdGUi IGlzIGhpZ2hlcgorCQkgKiAgICB0aGFuIGN1cnJlbnQgdm90ZSBmb3IgdXBkYXRlIHJlcXVlc3Qu CisJCSAqIDIuIG5ldyBiYW5kd2lkdGggdm90ZSAtICJhYiBvciBpYiB2b3RlIiBpcyBsb3dlcgor CQkgKiAgICB0aGFuIGN1cnJlbnQgdm90ZSBhdCBlbmQgb2YgY29tbWl0IG9yIHN0b3AuCisJCSAq LworCQlpZiAoKHBhcmFtc19jaGFuZ2VkICYmICgobmV3LT5id19jdGwgPiBvbGQtPmJ3X2N0bCkg fHwKKwkJCShuZXctPm1heF9wZXJfcGlwZV9pYiA+IG9sZC0+bWF4X3Blcl9waXBlX2liKSkpCXx8 CisJCQkoIXBhcmFtc19jaGFuZ2VkICYmICgobmV3LT5id19jdGwgPCBvbGQtPmJ3X2N0bCkgfHwK KwkJCShuZXctPm1heF9wZXJfcGlwZV9pYiA8IG9sZC0+bWF4X3Blcl9waXBlX2liKSkpKSB7CisJ CQlEUFVfREVCVUcoImNydGM9JWQgcD0lZCBuZXdfYnc9JWxsdSxvbGRfYnc9JWxsdVxuIiwKKwkJ CQljcnRjLT5iYXNlLmlkLCBwYXJhbXNfY2hhbmdlZCwKKwkJCQluZXctPmJ3X2N0bCwgb2xkLT5i d19jdGwpOworCQkJb2xkLT5id19jdGwgPSBuZXctPmJ3X2N0bDsKKwkJCW9sZC0+bWF4X3Blcl9w aXBlX2liID0gbmV3LT5tYXhfcGVyX3BpcGVfaWI7CisJCQl1cGRhdGVfYnVzID0gdHJ1ZTsKIAkJ fQogCiAJCWlmICgocGFyYW1zX2NoYW5nZWQgJiYKLQkJCQkobmV3LT5jb3JlX2Nsa19yYXRlID4g b2xkLT5jb3JlX2Nsa19yYXRlKSkgfHwKLQkJCQkoIXBhcmFtc19jaGFuZ2VkICYmCi0JCQkJKG5l dy0+Y29yZV9jbGtfcmF0ZSA8IG9sZC0+Y29yZV9jbGtfcmF0ZSkpKSB7CisJCQkobmV3LT5jb3Jl X2Nsa19yYXRlID4gb2xkLT5jb3JlX2Nsa19yYXRlKSkgfHwKKwkJCSghcGFyYW1zX2NoYW5nZWQg JiYKKwkJCShuZXctPmNvcmVfY2xrX3JhdGUgPCBvbGQtPmNvcmVfY2xrX3JhdGUpKSkgewogCQkJ b2xkLT5jb3JlX2Nsa19yYXRlID0gbmV3LT5jb3JlX2Nsa19yYXRlOwotCQkJdXBkYXRlX2NsayA9 IDE7CisJCQl1cGRhdGVfY2xrID0gdHJ1ZTsKIAkJfQogCX0gZWxzZSB7CiAJCURQVV9ERUJVRygi Y3J0Yz0lZCBkaXNhYmxlXG4iLCBjcnRjLT5iYXNlLmlkKTsKIAkJbWVtc2V0KG9sZCwgMCwgc2l6 ZW9mKCpvbGQpKTsKIAkJbWVtc2V0KG5ldywgMCwgc2l6ZW9mKCpuZXcpKTsKLQkJdXBkYXRlX2J1 cyA9IH4wOwotCQl1cGRhdGVfY2xrID0gMTsKKwkJdXBkYXRlX2J1cyA9IHRydWU7CisJCXVwZGF0 ZV9jbGsgPSB0cnVlOwogCX0KLQl0cmFjZV9kcHVfcGVyZl9jcnRjX3VwZGF0ZShjcnRjLT5iYXNl LmlkLAotCQkJCW5ldy0+YndfY3RsW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NTk9DXSwKLQkJ CQluZXctPmJ3X2N0bFtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTExDQ10sCi0JCQkJbmV3LT5i d19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VCSV0sCi0JCQkJbmV3LT5jb3JlX2Nsa19y YXRlLCBzdG9wX3JlcSwKLQkJCQl1cGRhdGVfYnVzLCB1cGRhdGVfY2xrKTsKLQotCWZvciAoaSA9 IDA7IGkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKLQkJaWYgKHVwZGF0 ZV9idXMgJiBCSVQoaSkpIHsKLQkJCXJldCA9IF9kcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlX2J1 cyhrbXMsIGNydGMsIGkpOwotCQkJaWYgKHJldCkgewotCQkJCURQVV9FUlJPUigiY3J0Yy0lZDog ZmFpbGVkIHRvIHVwZGF0ZSBidyB2b3RlIGZvciBidXMtJWRcbiIsCi0JCQkJCSAgY3J0Yy0+YmFz ZS5pZCwgaSk7Ci0JCQkJcmV0dXJuIHJldDsKLQkJCX0KKworCXRyYWNlX2RwdV9wZXJmX2NydGNf dXBkYXRlKGNydGMtPmJhc2UuaWQsIG5ldy0+YndfY3RsLAorCQluZXctPmNvcmVfY2xrX3JhdGUs IHN0b3BfcmVxLCB1cGRhdGVfYnVzLCB1cGRhdGVfY2xrKTsKKworCWlmICh1cGRhdGVfYnVzKSB7 CisJCXJldCA9IF9kcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlX2J1cyhrbXMsIGNydGMpOworCQlp ZiAocmV0KSB7CisJCQlEUFVfRVJST1IoImNydGMtJWQ6IGZhaWxlZCB0byB1cGRhdGUgYnVzIGJ3 IHZvdGVcbiIsCisJCQkJICBjcnRjLT5iYXNlLmlkKTsKKwkJCXJldHVybiByZXQ7CiAJCX0KIAl9 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3Bl cmYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuaAppbmRl eCBmYmNiZTBjNzUyN2EuLjBmYjI3NjkyOWRjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuaApAQCAtMzAsOCArMzAsOCBAQAogICogQGNvcmVfY2xr X3JhdGU6IGNvcmUgY2xvY2sgcmF0ZSByZXF1ZXN0CiAgKi8KIHN0cnVjdCBkcHVfY29yZV9wZXJm X3BhcmFtcyB7Ci0JdTY0IG1heF9wZXJfcGlwZV9pYltEUFVfUE9XRVJfSEFORExFX0RCVVNfSURf TUFYXTsKLQl1NjQgYndfY3RsW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVhdOworCXU2NCBt YXhfcGVyX3BpcGVfaWI7CisJdTY0IGJ3X2N0bDsKIAl1NjQgY29yZV9jbGtfcmF0ZTsKIH07CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCmluZGV4IGVkODRjZjQ0YTIy Mi4uNWYwMjJlODhkOWEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRj LmMKQEAgLTEzNzMsMjEgKzEzNzMsMTQgQEAgc3RhdGljIGludCBkcHVfY3J0Y19kZWJ1Z2ZzX3N0 YXRlX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp2KQogewogCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9IChzdHJ1Y3QgZHJtX2NydGMgKikgcy0+cHJpdmF0ZTsKIAlzdHJ1Y3QgZHB1X2Ny dGMgKmRwdV9jcnRjID0gdG9fZHB1X2NydGMoY3J0Yyk7Ci0JaW50IGk7CiAKIAlzZXFfcHJpbnRm KHMsICJjbGllbnQgdHlwZTogJWRcbiIsIGRwdV9jcnRjX2dldF9jbGllbnRfdHlwZShjcnRjKSk7 CiAJc2VxX3ByaW50ZihzLCAiaW50Zl9tb2RlOiAlZFxuIiwgZHB1X2NydGNfZ2V0X2ludGZfbW9k ZShjcnRjKSk7CiAJc2VxX3ByaW50ZihzLCAiY29yZV9jbGtfcmF0ZTogJWxsdVxuIiwKIAkJCWRw dV9jcnRjLT5jdXJfcGVyZi5jb3JlX2Nsa19yYXRlKTsKLQlmb3IgKGkgPSBEUFVfUE9XRVJfSEFO RExFX0RCVVNfSURfTU5PQzsKLQkJCWkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBp KyspIHsKLQkJc2VxX3ByaW50ZihzLCAiYndfY3RsWyVzXTogJWxsdVxuIiwKLQkJCQlkcHVfcG93 ZXJfaGFuZGxlX2dldF9kYnVzX25hbWUoaSksCi0JCQkJZHB1X2NydGMtPmN1cl9wZXJmLmJ3X2N0 bFtpXSk7Ci0JCXNlcV9wcmludGYocywgIm1heF9wZXJfcGlwZV9pYlslc106ICVsbHVcbiIsCi0J CQkJZHB1X3Bvd2VyX2hhbmRsZV9nZXRfZGJ1c19uYW1lKGkpLAotCQkJCWRwdV9jcnRjLT5jdXJf cGVyZi5tYXhfcGVyX3BpcGVfaWJbaV0pOwotCX0KKwlzZXFfcHJpbnRmKHMsICJid19jdGw6ICVs bHVcbiIsIGRwdV9jcnRjLT5jdXJfcGVyZi5id19jdGwpOworCXNlcV9wcmludGYocywgIm1heF9w ZXJfcGlwZV9pYjogJWxsdVxuIiwKKwkJCQlkcHVfY3J0Yy0+Y3VyX3BlcmYubWF4X3Blcl9waXBl X2liKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X3Bvd2VyX2hhbmRsZS5jCmluZGV4IGZjMTQxMTY3ODlmMi4uZDU4ZDAxNTQ0NzMxIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5j CkBAIC0yNCwyMCArMjQsNiBAQAogI2luY2x1ZGUgImRwdV9wb3dlcl9oYW5kbGUuaCIKICNpbmNs dWRlICJkcHVfdHJhY2UuaCIKIAotc3RhdGljIGNvbnN0IGNoYXIgKmRhdGFfYnVzX25hbWVbRFBV X1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWF0gPSB7Ci0JW0RQVV9QT1dFUl9IQU5ETEVfREJVU19J RF9NTk9DXSA9ICJxY29tLGRwdS1kYXRhLWJ1cyIsCi0JW0RQVV9QT1dFUl9IQU5ETEVfREJVU19J RF9MTENDXSA9ICJxY29tLGRwdS1sbGNjLWJ1cyIsCi0JW0RQVV9QT1dFUl9IQU5ETEVfREJVU19J RF9FQkldID0gInFjb20sZHB1LWViaS1idXMiLAotfTsKLQotY29uc3QgY2hhciAqZHB1X3Bvd2Vy X2hhbmRsZV9nZXRfZGJ1c19uYW1lKHUzMiBidXNfaWQpCi17Ci0JaWYgKGJ1c19pZCA8IERQVV9Q T1dFUl9IQU5ETEVfREJVU19JRF9NQVgpCi0JCXJldHVybiBkYXRhX2J1c19uYW1lW2J1c19pZF07 Ci0KLQlyZXR1cm4gTlVMTDsKLX0KLQogc3RhdGljIHZvaWQgZHB1X3Bvd2VyX2V2ZW50X3RyaWdn ZXJfbG9ja2VkKHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwaGFuZGxlLAogCQl1MzIgZXZlbnRf dHlwZSkKIHsKQEAgLTY2LDcgKzUyLDYgQEAgc3RydWN0IGRwdV9wb3dlcl9jbGllbnQgKmRwdV9w b3dlcl9jbGllbnRfY3JlYXRlKAogCiAJbXV0ZXhfbG9jaygmcGhhbmRsZS0+cGhhbmRsZV9sb2Nr KTsKIAlzdHJsY3B5KGNsaWVudC0+bmFtZSwgY2xpZW50X25hbWUsIE1BWF9DTElFTlRfTkFNRV9M RU4pOwotCWNsaWVudC0+dXNlY2FzZV9uZHggPSBWT1RFX0lOREVYX0RJU0FCTEU7CiAJY2xpZW50 LT5pZCA9IGlkOwogCWNsaWVudC0+YWN0aXZlID0gdHJ1ZTsKIAlwcl9kZWJ1ZygiY2xpZW50ICVz IGNyZWF0ZWQ6JXBLIGlkIDolZFxuIiwgY2xpZW50X25hbWUsCkBAIC0xNDMsOCArMTI4LDYgQEAg aW50IGRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBo YW5kbGUsCiAJc3RydWN0IGRwdV9wb3dlcl9jbGllbnQgKnBjbGllbnQsIGJvb2wgZW5hYmxlKQog ewogCWJvb2wgY2hhbmdlZCA9IGZhbHNlOwotCXUzMiBtYXhfdXNlY2FzZV9uZHggPSBWT1RFX0lO REVYX0RJU0FCTEUsIHByZXZfdXNlY2FzZV9uZHg7Ci0Jc3RydWN0IGRwdV9wb3dlcl9jbGllbnQg KmNsaWVudDsKIAl1MzIgZXZlbnRfdHlwZTsKIAogCWlmICghcGhhbmRsZSB8fCAhcGNsaWVudCkg ewpAQCAtMTUzLDMxICsxMzYsMTkgQEAgaW50IGRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoc3Ry dWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBoYW5kbGUsCiAJfQogCiAJbXV0ZXhfbG9jaygmcGhhbmRs ZS0+cGhhbmRsZV9sb2NrKTsKLQlpZiAoZW5hYmxlKQorCWlmIChlbmFibGUpIHsKIAkJcGNsaWVu dC0+cmVmY291bnQrKzsKLQllbHNlIGlmIChwY2xpZW50LT5yZWZjb3VudCkKKwkJaWYgKHBjbGll bnQtPnJlZmNvdW50ID09IDEpCisJCQljaGFuZ2VkID0gdHJ1ZTsKKwl9IGVsc2UgaWYgKHBjbGll bnQtPnJlZmNvdW50KSB7CiAJCXBjbGllbnQtPnJlZmNvdW50LS07Ci0KLQlpZiAocGNsaWVudC0+ cmVmY291bnQpCi0JCXBjbGllbnQtPnVzZWNhc2VfbmR4ID0gVk9URV9JTkRFWF9MT1c7Ci0JZWxz ZQotCQlwY2xpZW50LT51c2VjYXNlX25keCA9IFZPVEVfSU5ERVhfRElTQUJMRTsKLQotCWxpc3Rf Zm9yX2VhY2hfZW50cnkoY2xpZW50LCAmcGhhbmRsZS0+cG93ZXJfY2xpZW50X2NsaXN0LCBsaXN0 KSB7Ci0JCWlmIChjbGllbnQtPnVzZWNhc2VfbmR4IDwgVk9URV9JTkRFWF9NQVggJiYKLQkJICAg IGNsaWVudC0+dXNlY2FzZV9uZHggPiBtYXhfdXNlY2FzZV9uZHgpCi0JCQltYXhfdXNlY2FzZV9u ZHggPSBjbGllbnQtPnVzZWNhc2VfbmR4OwotCX0KLQotCWlmIChwaGFuZGxlLT5jdXJyZW50X3Vz ZWNhc2VfbmR4ICE9IG1heF91c2VjYXNlX25keCkgewotCQljaGFuZ2VkID0gdHJ1ZTsKLQkJcHJl dl91c2VjYXNlX25keCA9IHBoYW5kbGUtPmN1cnJlbnRfdXNlY2FzZV9uZHg7Ci0JCXBoYW5kbGUt PmN1cnJlbnRfdXNlY2FzZV9uZHggPSBtYXhfdXNlY2FzZV9uZHg7CisJCWlmICghcGNsaWVudC0+ cmVmY291bnQpCisJCQljaGFuZ2VkID0gdHJ1ZTsKIAl9CiAKLQlwcl9kZWJ1ZygiJXBTOiBjaGFu Z2VkPSVkIGN1cnJlbnQgaWR4PSVkIHJlcXVlc3QgY2xpZW50ICVzIGlkOiV1IGVuYWJsZTolZCBy ZWZjb3VudDolZFxuIiwKLQkJX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApLCBjaGFuZ2VkLCBt YXhfdXNlY2FzZV9uZHgsCi0JCXBjbGllbnQtPm5hbWUsIHBjbGllbnQtPmlkLCBlbmFibGUsIHBj bGllbnQtPnJlZmNvdW50KTsKKwlwcl9kZWJ1ZygiJXBTOmNoYW5nZWQ9JWQgY2xpZW50ICVzIGlk OiV1IGVuYWJsZTolZCByZWZjb3VudDolZFxuIiwKKwkJX19idWlsdGluX3JldHVybl9hZGRyZXNz KDApLCBjaGFuZ2VkLCBwY2xpZW50LT5uYW1lLAorCQlwY2xpZW50LT5pZCwgZW5hYmxlLCBwY2xp ZW50LT5yZWZjb3VudCk7CiAKIAlpZiAoIWNoYW5nZWQpCiAJCWdvdG8gZW5kOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5oIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5oCmluZGV4IGE2NWI3 YTI5N2YyMS4uYjFhNWFlNGQ2ZjRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5oCkBAIC0xNiw3NiArMTYsMjggQEAKIAogI2RlZmluZSBN QVhfQ0xJRU5UX05BTUVfTEVOIDEyOAogCi0jZGVmaW5lIERQVV9QT1dFUl9IQU5ETEVfRU5BQkxF X0JVU19BQl9RVU9UQQkwCi0jZGVmaW5lIERQVV9QT1dFUl9IQU5ETEVfRElTQUJMRV9CVVNfQUJf UVVPVEEJMAotI2RlZmluZSBEUFVfUE9XRVJfSEFORExFX0VOQUJMRV9CVVNfSUJfUVVPVEEJMTYw MDAwMDAwMAotI2RlZmluZSBEUFVfUE9XRVJfSEFORExFX0RJU0FCTEVfQlVTX0lCX1FVT1RBCTAK LQogI2luY2x1ZGUgImRwdV9pb191dGlsLmgiCiAKIC8qIGV2ZW50cyB3aWxsIGJlIHRyaWdnZXJl ZCBvbiBwb3dlciBoYW5kbGVyIGVuYWJsZS9kaXNhYmxlICovCiAjZGVmaW5lIERQVV9QT1dFUl9F VkVOVF9ESVNBQkxFCUJJVCgwKQogI2RlZmluZSBEUFVfUE9XRVJfRVZFTlRfRU5BQkxFCUJJVCgx KQogCi0vKioKLSAqIG1kc3NfYnVzX3ZvdGVfdHlwZTogcmVnaXN0ZXIgYnVzIHZvdGUgdHlwZQot ICogVk9URV9JTkRFWF9ESVNBQkxFOiByZW1vdmVzIHRoZSBjbGllbnQgdm90ZQotICogVk9URV9J TkRFWF9MT1c6IGtlZXBzIHRoZSBsb3dlc3Qgdm90ZSBmb3IgcmVnaXN0ZXIgYnVzCi0gKiBWT1RF X0lOREVYX01BWDogaW52YWxpZAotICovCi1lbnVtIG1kc3NfYnVzX3ZvdGVfdHlwZSB7Ci0JVk9U RV9JTkRFWF9ESVNBQkxFLAotCVZPVEVfSU5ERVhfTE9XLAotCVZPVEVfSU5ERVhfTUFYLAotfTsK LQotLyoqCi0gKiBlbnVtIGRwdV9wb3dlcl9oYW5kbGVfZGF0YV9idXNfY2xpZW50IC0gdHlwZSBv ZiBheGkgYnVzIGNsaWVudHMKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9S VDogY29yZSByZWFsLXRpbWUgYnVzIGNsaWVudAotICogQERQVV9QT1dFUl9IQU5ETEVfREFUQV9C VVNfQ0xJRU5UX05SVDogY29yZSBub24tcmVhbC10aW1lIGJ1cyBjbGllbnQKLSAqIEBEUFVfUE9X RVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9NQVg6IG1heGltdW0gbnVtYmVyIG9mIGJ1cyBjbGll bnQgdHlwZQotICovCi1lbnVtIGRwdV9wb3dlcl9oYW5kbGVfZGF0YV9idXNfY2xpZW50IHsKLQlE UFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9SVCwKLQlEUFVfUE9XRVJfSEFORExFX0RB VEFfQlVTX0NMSUVOVF9OUlQsCi0JRFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfTUFY Ci19OwotCi0vKioKLSAqIGVudW0gRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEIC0gZGF0YSBidXMg aWRlbnRpZmllcgotICogQERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NTk9DOiBEUFUvTU5PQyBk YXRhIGJ1cwotICogQERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9MTENDOiBNTk9DL0xMQ0MgZGF0 YSBidXMKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfRUJJOiBMTENDL0VCSSBkYXRhIGJ1 cwotICovCi1lbnVtIERQVV9QT1dFUl9IQU5ETEVfREJVU19JRCB7Ci0JRFBVX1BPV0VSX0hBTkRM RV9EQlVTX0lEX01OT0MsCi0JRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0xMQ0MsCi0JRFBVX1BP V0VSX0hBTkRMRV9EQlVTX0lEX0VCSSwKLQlEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYLAot fTsKLQogLyoqCiAgKiBzdHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudDogc3RvcmVzIHRoZSBwb3dlciBj bGllbnQgZm9yIGRwdSBkcml2ZXIKICAqIEBuYW1lOgluYW1lIG9mIHRoZSBjbGllbnQKLSAqIEB1 c2VjYXNlX25keDogY3VycmVudCByZWdzIGJ1cyB2b3RlIHR5cGUKICAqIEByZWZjb3VudDoJY3Vy cmVudCByZWZjb3VudCBpZiBtdWx0aXBsZSBtb2R1bGVzIGFyZSB1c2luZyBzYW1lCiAgKiAgICAg ICAgICAgICAgc2FtZSBjbGllbnQgZm9yIGVuYWJsZS9kaXNhYmxlLiBQb3dlciBtb2R1bGUgd2ls bAogICogICAgICAgICAgICAgIGFnZ3JlZ2F0ZSB0aGUgcmVmY291bnQgYW5kIHZvdGUgYWNjb3Jk aW5nbHkgZm9yIHRoaXMKICAqICAgICAgICAgICAgICBjbGllbnQuCiAgKiBAaWQ6CQlhc3NpZ25l ZCBkdXJpbmcgY3JlYXRlLiBoZWxwcyBmb3IgZGVidWdnaW5nLgogICogQGxpc3Q6CWxpc3QgdG8g YXR0YWNoIHBvd2VyIGhhbmRsZSBtYXN0ZXIgbGlzdAotICogQGFiOiAgICAgICAgIGFyYml0cmF0 ZWQgYmFuZHdpZHRoIGZvciBlYWNoIGJ1cyBjbGllbnQKLSAqIEBpYjogICAgICAgICBpbnN0YW50 YW5lb3VzIGJhbmR3aWR0aCBmb3IgZWFjaCBidXMgY2xpZW50CiAgKiBAYWN0aXZlOglpbmlkY2F0 ZXMgdGhlIHN0YXRlIG9mIGRwdSBwb3dlciBoYW5kbGUKICAqLwogc3RydWN0IGRwdV9wb3dlcl9j bGllbnQgewogCWNoYXIgbmFtZVtNQVhfQ0xJRU5UX05BTUVfTEVOXTsKLQlzaG9ydCB1c2VjYXNl X25keDsKIAlzaG9ydCByZWZjb3VudDsKIAl1MzIgaWQ7CiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0 OwotCXU2NCBhYltEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9NQVhdOwotCXU2NCBp YltEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9NQVhdOwogCWJvb2wgYWN0aXZlOwog fTsKIApAQCAtMTEyLDE0ICs2NCwxMiBAQCBzdHJ1Y3QgZHB1X3Bvd2VyX2V2ZW50IHsKICAqIEBj bGllbnRfY2xpc3Q6IG1hc3RlciBsaXN0IHRvIHN0b3JlIGFsbCBjbGllbnRzCiAgKiBAcGhhbmRs ZV9sb2NrOiBsb2NrIHRvIHN5bmNocm9uaXplIHRoZSBlbmFibGUvZGlzYWJsZQogICogQGRldjog cG9pbnRlciB0byBkZXZpY2Ugc3RydWN0dXJlCi0gKiBAdXNlY2FzZV9uZHg6IGN1cnJlbnQgdXNl Y2FzZSBpbmRleAogICogQGV2ZW50X2xpc3Q6IGN1cnJlbnQgcG93ZXIgaGFuZGxlIGV2ZW50IGxp c3QKICAqLwogc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgewogCXN0cnVjdCBsaXN0X2hlYWQgcG93 ZXJfY2xpZW50X2NsaXN0OwogCXN0cnVjdCBtdXRleCBwaGFuZGxlX2xvY2s7CiAJc3RydWN0IGRl dmljZSAqZGV2OwotCXUzMiBjdXJyZW50X3VzZWNhc2VfbmR4OwogCXN0cnVjdCBsaXN0X2hlYWQg ZXZlbnRfbGlzdDsKIH07CiAKQEAgLTE3MiwxNyArMTIyLDYgQEAgdm9pZCBkcHVfcG93ZXJfY2xp ZW50X2Rlc3Ryb3koc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBoYW5kbGUsCiBpbnQgZHB1X3Bv d2VyX3Jlc291cmNlX2VuYWJsZShzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRsZSAqcGRhdGEsCiAJc3Ry dWN0IGRwdV9wb3dlcl9jbGllbnQgKnBjbGllbnQsIGJvb2wgZW5hYmxlKTsKIAotLyoqCi0gKiBk cHVfcG93ZXJfZGF0YV9idXNfYmFuZHdpZHRoX2N0cmwoKSAtIGNvbnRyb2wgZGF0YSBidXMgYmFu ZHdpZHRoIGVuYWJsZQotICogQHBoYW5kbGU6ICBwb3dlciBoYW5kbGUgY29udGFpbmluZyB0aGUg cmVzb3VyY2VzCi0gKiBAY2xpZW50OiBjbGllbnQgaW5mb3JtYXRpb24gdG8gYmFuZHdpZHRoIGNv bnRyb2wKLSAqIEBlbmFibGU6IHRydWUgdG8gZW5hYmxlIGJhbmR3aWR0aCBmb3IgZGF0YSBiYXNl Ci0gKgotICogUmV0dXJuOiBub25lCi0gKi8KLXZvaWQgZHB1X3Bvd2VyX2RhdGFfYnVzX2JhbmR3 aWR0aF9jdHJsKHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwaGFuZGxlLAotCQlzdHJ1Y3QgZHB1 X3Bvd2VyX2NsaWVudCAqcGNsaWVudCwgaW50IGVuYWJsZSk7Ci0KIC8qKgogICogZHB1X3Bvd2Vy X2hhbmRsZV9yZWdpc3Rlcl9ldmVudCAtIHJlZ2lzdGVyIGEgY2FsbGJhY2sgZnVuY3Rpb24gZm9y IGFuIGV2ZW50LgogICoJQ2xpZW50cyBjYW4gcmVnaXN0ZXIgZm9yIG11bHRpcGxlIGV2ZW50cyB3 aXRoIGEgc2luZ2xlIHJlZ2lzdGVyLgpAQCAtMjA3LDExICsxNDYsNCBAQCBzdHJ1Y3QgZHB1X3Bv d2VyX2V2ZW50ICpkcHVfcG93ZXJfaGFuZGxlX3JlZ2lzdGVyX2V2ZW50KAogdm9pZCBkcHVfcG93 ZXJfaGFuZGxlX3VucmVnaXN0ZXJfZXZlbnQoc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBoYW5k bGUsCiAJCXN0cnVjdCBkcHVfcG93ZXJfZXZlbnQgKmV2ZW50KTsKIAotLyoqCi0gKiBkcHVfcG93 ZXJfaGFuZGxlX2dldF9kYnVzX25hbWUgLSBnZXQgbmFtZSBvZiBnaXZlbiBkYXRhIGJ1cyBpZGVu dGlmaWVyCi0gKiBAYnVzX2lkOglkYXRhIGJ1cyBpZGVudGlmaWVyCi0gKiBSZXR1cm46CVBvaW50 ZXIgdG8gbmFtZSBzdHJpbmcgaWYgc3VjY2VzczsgTlVMTCBvdGhlcndpc2UKLSAqLwotY29uc3Qg Y2hhciAqZHB1X3Bvd2VyX2hhbmRsZV9nZXRfZGJ1c19uYW1lKHUzMiBidXNfaWQpOwotCiAjZW5k aWYgLyogX0RQVV9QT1dFUl9IQU5ETEVfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV90cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X3RyYWNlLmgKaW5kZXggMGMxMjJlMTczODkyLi43YzhhOTJkMmEyZjAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV90cmFjZS5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV90cmFjZS5oCkBAIC0xNjcsMTYgKzE2NywxMiBA QCBUUkFDRV9FVkVOVChkcHVfdHJhY2VfY291bnRlciwKICkKIAogVFJBQ0VfRVZFTlQoZHB1X3Bl cmZfY3J0Y191cGRhdGUsCi0JVFBfUFJPVE8odTMyIGNydGMsIHU2NCBid19jdGxfbW5vYywgdTY0 IGJ3X2N0bF9sbGNjLAotCQkJdTY0IGJ3X2N0bF9lYmksIHUzMiBjb3JlX2Nsa19yYXRlLAotCQkJ Ym9vbCBzdG9wX3JlcSwgdTMyIHVwZGF0ZV9idXMsIHUzMiB1cGRhdGVfY2xrKSwKLQlUUF9BUkdT KGNydGMsIGJ3X2N0bF9tbm9jLCBid19jdGxfbGxjYywgYndfY3RsX2ViaSwgY29yZV9jbGtfcmF0 ZSwKLQkJc3RvcF9yZXEsIHVwZGF0ZV9idXMsIHVwZGF0ZV9jbGspLAorCVRQX1BST1RPKHUzMiBj cnRjLCB1NjQgYndfY3RsLCB1MzIgY29yZV9jbGtfcmF0ZSwKKwkJCWJvb2wgc3RvcF9yZXEsIGJv b2wgdXBkYXRlX2J1cywgYm9vbCB1cGRhdGVfY2xrKSwKKwlUUF9BUkdTKGNydGMsIGJ3X2N0bCwg Y29yZV9jbGtfcmF0ZSwgc3RvcF9yZXEsIHVwZGF0ZV9idXMsIHVwZGF0ZV9jbGspLAogCVRQX1NU UlVDVF9fZW50cnkoCiAJCQlfX2ZpZWxkKHUzMiwgY3J0YykKLQkJCV9fZmllbGQodTY0LCBid19j dGxfbW5vYykKLQkJCV9fZmllbGQodTY0LCBid19jdGxfbGxjYykKLQkJCV9fZmllbGQodTY0LCBi d19jdGxfZWJpKQorCQkJX19maWVsZCh1NjQsIGJ3X2N0bCkKIAkJCV9fZmllbGQodTMyLCBjb3Jl X2Nsa19yYXRlKQogCQkJX19maWVsZChib29sLCBzdG9wX3JlcSkKIAkJCV9fZmllbGQodTMyLCB1 cGRhdGVfYnVzKQpAQCAtMTg0LDIwICsxODAsMTYgQEAgVFJBQ0VfRVZFTlQoZHB1X3BlcmZfY3J0 Y191cGRhdGUsCiAJKSwKIAlUUF9mYXN0X2Fzc2lnbigKIAkJCV9fZW50cnktPmNydGMgPSBjcnRj OwotCQkJX19lbnRyeS0+YndfY3RsX21ub2MgPSBid19jdGxfbW5vYzsKLQkJCV9fZW50cnktPmJ3 X2N0bF9sbGNjID0gYndfY3RsX2xsY2M7Ci0JCQlfX2VudHJ5LT5id19jdGxfZWJpID0gYndfY3Rs X2ViaTsKKwkJCV9fZW50cnktPmJ3X2N0bCA9IGJ3X2N0bDsKIAkJCV9fZW50cnktPmNvcmVfY2xr X3JhdGUgPSBjb3JlX2Nsa19yYXRlOwogCQkJX19lbnRyeS0+c3RvcF9yZXEgPSBzdG9wX3JlcTsK IAkJCV9fZW50cnktPnVwZGF0ZV9idXMgPSB1cGRhdGVfYnVzOwogCQkJX19lbnRyeS0+dXBkYXRl X2NsayA9IHVwZGF0ZV9jbGs7CiAJKSwKIAkgVFBfcHJpbnRrKAotCQkiY3J0Yz0lZCBid19tbm9j PSVsbHUgYndfbGxjYz0lbGx1IGJ3X2ViaT0lbGx1IGNsa19yYXRlPSV1IHN0b3BfcmVxPSVkIHVf YnVzPSVkIHVfY2xrPSVkIiwKKwkJImNydGM9JWQgYndfY3RsPSVsbHUgY2xrX3JhdGU9JXUgc3Rv cF9yZXE9JWQgdV9idXM9JWQgdV9jbGs9JWQiLAogCQkJX19lbnRyeS0+Y3J0YywKLQkJCV9fZW50 cnktPmJ3X2N0bF9tbm9jLAotCQkJX19lbnRyeS0+YndfY3RsX2xsY2MsCi0JCQlfX2VudHJ5LT5i d19jdGxfZWJpLAorCQkJX19lbnRyeS0+YndfY3RsLAogCQkJX19lbnRyeS0+Y29yZV9jbGtfcmF0 ZSwKIAkJCV9fZW50cnktPnN0b3BfcmVxLAogCQkJX19lbnRyeS0+dXBkYXRlX2J1cywKLS0gClRo ZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29k ZSBBdXJvcmEgRm9ydW0sCmEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVu byBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=