From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jayant Shekhar Subject: [v6 1/3] drm/msm/dpu: clean up references of DPU custom bus scaling Date: Wed, 23 Jan 2019 09:12:33 +0530 Message-ID: <1548214955-19692-2-git-send-email-jshekhar@codeaurora.org> References: <1548214955-19692-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: <1548214955-19692-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: linux-kernel-u79uwXL29TY76Z2rM5mHXA@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, Sravanthi Kollukuduru , hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, chandanu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org U2luY2UgdGhlIHVwc3RyZWFtIGludGVyY29ubmVjdCBidXMgZnJhbWV3b3JrIGhhcyBsYW5kZWQK dXBzdHJlYW0sIHRoZSBleGlzdGluZyByZWZlcmVuY2VzIG9mIGN1c3RvbSBidXMgc2NhbGluZwpu ZWVkcyB0byBiZSBjbGVhbmVkIHVwLgoKQ2hhbmdlcyBpbiB2MjoKCS0gRml4ZWQgYnVpbGQgZXJy b3IgZHVlIHRvIHBhcnRpYWwgY2xlYW4gdXAKCkNoYW5nZXMgaW4gdjM6CgktIENvbmRlbnNlIG11 bHRpcGxlIGxpbmVzIGludG8gYSBzaW5nbGUgbGluZSAoU2VhbiBQYXVsKQoKQ2hhbmdlcyBpbiB2 NDoKCS0gTm9uZQoKQ2hhbmdlcyBpbiB2NToKCS0gTm9uZQoKQ2hhbmdlcyBpbiB2NjoKCS0gTm9u ZQoKU2lnbmVkLW9mZi1ieTogU3JhdmFudGhpIEtvbGx1a3VkdXJ1IDxza29sbHVrdUBjb2RlYXVy b3JhLm9yZz4KU2lnbmVkLW9mZi1ieTogSmF5YW50IFNoZWtoYXIgPGpzaGVraGFyQGNvZGVhdXJv cmEub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYu YyAgICB8IDE3NCArKysrKysrKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5oICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfY3J0Yy5jICAgICAgICAgfCAgMTMgKy0KIGRyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuYyB8ICA0NyArKy0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuaCB8ICA2OCAtLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV90cmFjZS5oICAgICAgICB8ICAyMiArLS0K IDYgZmlsZXMgY2hhbmdlZCwgODkgaW5zZXJ0aW9ucygrKSwgMjM5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuYyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuYwppbmRleCAyMmU4 NGIzLi5jNzU1MzZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfY29yZV9wZXJmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Nv cmVfcGVyZi5jCkBAIC04NCw3ICs4NCw2IEBAIHN0YXRpYyB2b2lkIF9kcHVfY29yZV9wZXJmX2Nh bGNfY3J0YyhzdHJ1Y3QgZHB1X2ttcyAqa21zLAogCQlzdHJ1Y3QgZHB1X2NvcmVfcGVyZl9wYXJh bXMgKnBlcmYpCiB7CiAJc3RydWN0IGRwdV9jcnRjX3N0YXRlICpkcHVfY3N0YXRlOwotCWludCBp OwogCiAJaWYgKCFrbXMgfHwgIWttcy0+Y2F0YWxvZyB8fCAhY3J0YyB8fCAhc3RhdGUgfHwgIXBl cmYpIHsKIAkJRFBVX0VSUk9SKCJpbnZhbGlkIHBhcmFtZXRlcnNcbiIpOwpAQCAtOTUsMzUgKzk0 LDI0IEBAIHN0YXRpYyB2b2lkIF9kcHVfY29yZV9wZXJmX2NhbGNfY3J0YyhzdHJ1Y3QgZHB1X2tt cyAqa21zLAogCW1lbXNldChwZXJmLCAwLCBzaXplb2Yoc3RydWN0IGRwdV9jb3JlX3BlcmZfcGFy YW1zKSk7CiAKIAlpZiAoIWRwdV9jc3RhdGUtPmJ3X2NvbnRyb2wpIHsKLQkJZm9yIChpID0gMDsg aSA8IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVg7IGkrKykgewotCQkJcGVyZi0+YndfY3Rs W2ldID0ga21zLT5jYXRhbG9nLT5wZXJmLm1heF9id19oaWdoICoKKwkJcGVyZi0+YndfY3RsID0g a21zLT5jYXRhbG9nLT5wZXJmLm1heF9id19oaWdoICoKIAkJCQkJMTAwMFVMTDsKLQkJCXBlcmYt Pm1heF9wZXJfcGlwZV9pYltpXSA9IHBlcmYtPmJ3X2N0bFtpXTsKLQkJfQorCQlwZXJmLT5tYXhf cGVyX3BpcGVfaWIgPSBwZXJmLT5id19jdGw7CiAJCXBlcmYtPmNvcmVfY2xrX3JhdGUgPSBrbXMt PnBlcmYubWF4X2NvcmVfY2xrX3JhdGU7CiAJfSBlbHNlIGlmIChrbXMtPnBlcmYucGVyZl90dW5l Lm1vZGUgPT0gRFBVX1BFUkZfTU9ERV9NSU5JTVVNKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBEUFVf UE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKLQkJCXBlcmYtPmJ3X2N0bFtpXSA9IDA7 Ci0JCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJbaV0gPSAwOwotCQl9CisJCXBlcmYtPmJ3X2N0bCA9 IDA7CisJCXBlcmYtPm1heF9wZXJfcGlwZV9pYiA9IDA7CiAJCXBlcmYtPmNvcmVfY2xrX3JhdGUg PSAwOwogCX0gZWxzZSBpZiAoa21zLT5wZXJmLnBlcmZfdHVuZS5tb2RlID09IERQVV9QRVJGX01P REVfRklYRUQpIHsKLQkJZm9yIChpID0gMDsgaSA8IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9N QVg7IGkrKykgewotCQkJcGVyZi0+YndfY3RsW2ldID0ga21zLT5wZXJmLmZpeF9jb3JlX2FiX3Zv dGU7Ci0JCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJbaV0gPSBrbXMtPnBlcmYuZml4X2NvcmVfaWJf dm90ZTsKLQkJfQorCQlwZXJmLT5id19jdGwgPSBrbXMtPnBlcmYuZml4X2NvcmVfYWJfdm90ZTsK KwkJcGVyZi0+bWF4X3Blcl9waXBlX2liID0ga21zLT5wZXJmLmZpeF9jb3JlX2liX3ZvdGU7CiAJ CXBlcmYtPmNvcmVfY2xrX3JhdGUgPSBrbXMtPnBlcmYuZml4X2NvcmVfY2xrX3JhdGU7CiAJfQog CiAJRFBVX0RFQlVHKAotCQkiY3J0Yz0lZCBjbGtfcmF0ZT0lbGx1IGNvcmVfaWI9JWxsdSBjb3Jl X2FiPSVsbHUgbGxjY19pYj0lbGx1IGxsY2NfYWI9JWxsdSBtZW1faWI9JWxsdSBtZW1fYWI9JWxs dVxuIiwKKwkJImNydGM9JWQgY2xrX3JhdGU9JWxsdSBjb3JlX2liPSVsbHUgY29yZV9hYj0lbGx1 XG4iLAogCQkJY3J0Yy0+YmFzZS5pZCwgcGVyZi0+Y29yZV9jbGtfcmF0ZSwKLQkJCXBlcmYtPm1h eF9wZXJfcGlwZV9pYltEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQ10sCi0JCQlwZXJmLT5i d19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01OT0NdLAotCQkJcGVyZi0+bWF4X3Blcl9w aXBlX2liW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9MTENDXSwKLQkJCXBlcmYtPmJ3X2N0bFtE UFVfUE9XRVJfSEFORExFX0RCVVNfSURfTExDQ10sCi0JCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJb RFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VCSV0sCi0JCQlwZXJmLT5id19jdGxbRFBVX1BPV0VS X0hBTkRMRV9EQlVTX0lEX0VCSV0pOworCQkJcGVyZi0+bWF4X3Blcl9waXBlX2liLCBwZXJmLT5i d19jdGwpOwogfQogCiBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX2NoZWNrKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKQEAgLTEzNiw3ICsxMjQsNiBAQCBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX2NoZWNr KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3Rh dGU7CiAJc3RydWN0IGRybV9jcnRjICp0bXBfY3J0YzsKIAlzdHJ1Y3QgZHB1X2ttcyAqa21zOwot CWludCBpOwogCiAJaWYgKCFjcnRjIHx8ICFzdGF0ZSkgewogCQlEUFVfRVJST1IoImludmFsaWQg Y3J0Y1xuIik7CkBAIC0xNTgsMzEgKzE0NSwyNSBAQCBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX2No ZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkvKiBvYnRhaW4gbmV3IHZhbHVlcyAqLwogCV9k cHVfY29yZV9wZXJmX2NhbGNfY3J0YyhrbXMsIGNydGMsIHN0YXRlLCAmZHB1X2NzdGF0ZS0+bmV3 X3BlcmYpOwogCi0JZm9yIChpID0gRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01OT0M7Ci0JCQlp IDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWDsgaSsrKSB7Ci0JCWJ3X3N1bV9vZl9pbnRm cyA9IGRwdV9jc3RhdGUtPm5ld19wZXJmLmJ3X2N0bFtpXTsKLQkJY3Vycl9jbGllbnRfdHlwZSA9 IGRwdV9jcnRjX2dldF9jbGllbnRfdHlwZShjcnRjKTsKKwlid19zdW1fb2ZfaW50ZnMgPSBkcHVf Y3N0YXRlLT5uZXdfcGVyZi5id19jdGw7CisJY3Vycl9jbGllbnRfdHlwZSA9IGRwdV9jcnRjX2dl dF9jbGllbnRfdHlwZShjcnRjKTsKIAotCQlkcm1fZm9yX2VhY2hfY3J0Yyh0bXBfY3J0YywgY3J0 Yy0+ZGV2KSB7Ci0JCQlpZiAoX2RwdV9jb3JlX3BlcmZfY3J0Y19pc19wb3dlcl9vbih0bXBfY3J0 YykgJiYKLQkJCSAgICAoZHB1X2NydGNfZ2V0X2NsaWVudF90eXBlKHRtcF9jcnRjKSA9PQotCQkJ CQkgICAgY3Vycl9jbGllbnRfdHlwZSkgJiYKLQkJCSAgICAodG1wX2NydGMgIT0gY3J0YykpIHsK LQkJCQlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKnRtcF9jc3RhdGUgPQotCQkJCQl0b19kcHVfY3J0 Y19zdGF0ZSh0bXBfY3J0Yy0+c3RhdGUpOwotCi0JCQkJRFBVX0RFQlVHKCJjcnRjOiVkIGJ3OiVs bHUgY3RybDolZFxuIiwKLQkJCQkJdG1wX2NydGMtPmJhc2UuaWQsCi0JCQkJCXRtcF9jc3RhdGUt Pm5ld19wZXJmLmJ3X2N0bFtpXSwKLQkJCQkJdG1wX2NzdGF0ZS0+YndfY29udHJvbCk7Ci0JCQkJ LyoKLQkJCQkgKiBGb3IgYncgY2hlY2sgb25seSB1c2UgdGhlIGJ3IGlmIHRoZQotCQkJCSAqIGF0 b21pYyBwcm9wZXJ0eSBoYXMgYmVlbiBhbHJlYWR5IHNldAotCQkJCSAqLwotCQkJCWlmICh0bXBf Y3N0YXRlLT5id19jb250cm9sKQotCQkJCQlid19zdW1fb2ZfaW50ZnMgKz0KLQkJCQkJCXRtcF9j c3RhdGUtPm5ld19wZXJmLmJ3X2N0bFtpXTsKLQkJCX0KKwlkcm1fZm9yX2VhY2hfY3J0Yyh0bXBf Y3J0YywgY3J0Yy0+ZGV2KSB7CisJCWlmIChfZHB1X2NvcmVfcGVyZl9jcnRjX2lzX3Bvd2VyX29u KHRtcF9jcnRjKSAmJgorCQkgICAgKGRwdV9jcnRjX2dldF9jbGllbnRfdHlwZSh0bXBfY3J0Yykg PT0KKwkJCQljdXJyX2NsaWVudF90eXBlKSAmJiAodG1wX2NydGMgIT0gY3J0YykpIHsKKwkJCXN0 cnVjdCBkcHVfY3J0Y19zdGF0ZSAqdG1wX2NzdGF0ZSA9CisJCQkJdG9fZHB1X2NydGNfc3RhdGUo dG1wX2NydGMtPnN0YXRlKTsKKworCQkJRFBVX0RFQlVHKCJjcnRjOiVkIGJ3OiVsbHUgY3RybDol ZFxuIiwKKwkJCQl0bXBfY3J0Yy0+YmFzZS5pZCwgdG1wX2NzdGF0ZS0+bmV3X3BlcmYuYndfY3Rs LAorCQkJCXRtcF9jc3RhdGUtPmJ3X2NvbnRyb2wpOworCQkJLyoKKwkJCSAqIEZvciBidyBjaGVj ayBvbmx5IHVzZSB0aGUgYncgaWYgdGhlCisJCQkgKiBhdG9taWMgcHJvcGVydHkgaGFzIGJlZW4g YWxyZWFkeSBzZXQKKwkJCSAqLworCQkJaWYgKHRtcF9jc3RhdGUtPmJ3X2NvbnRyb2wpCisJCQkJ Yndfc3VtX29mX2ludGZzICs9IHRtcF9jc3RhdGUtPm5ld19wZXJmLmJ3X2N0bDsKIAkJfQogCiAJ CS8qIGNvbnZlcnQgYmFuZHdpZHRoIHRvIGtiICovCkBAIC0yMTMsOSArMTk0LDkgQEAgaW50IGRw dV9jb3JlX3BlcmZfY3J0Y19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiB9CiAKIHN0YXRp YyBpbnQgX2RwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGVfYnVzKHN0cnVjdCBkcHVfa21zICprbXMs Ci0JCXN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJ1c19pZCkKKwkJc3RydWN0IGRybV9jcnRj ICpjcnRjKQogewotCXN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcyBwZXJmID0geyB7IDAgfSB9 OworCXN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcyBwZXJmID0geyAwIH07CiAJZW51bSBkcHVf Y3J0Y19jbGllbnRfdHlwZSBjdXJyX2NsaWVudF90eXBlCiAJCQkJCT0gZHB1X2NydGNfZ2V0X2Ns aWVudF90eXBlKGNydGMpOwogCXN0cnVjdCBkcm1fY3J0YyAqdG1wX2NydGM7CkBAIC0yMjgsMTMg KzIwOSwxMSBAQCBzdGF0aWMgaW50IF9kcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlX2J1cyhzdHJ1 Y3QgZHB1X2ttcyAqa21zLAogCQkJCWRwdV9jcnRjX2dldF9jbGllbnRfdHlwZSh0bXBfY3J0Yykp IHsKIAkJCWRwdV9jc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZSh0bXBfY3J0Yy0+c3RhdGUpOwog Ci0JCQlwZXJmLm1heF9wZXJfcGlwZV9pYltidXNfaWRdID0KLQkJCQltYXgocGVyZi5tYXhfcGVy X3BpcGVfaWJbYnVzX2lkXSwKLQkJCQlkcHVfY3N0YXRlLT5uZXdfcGVyZi5tYXhfcGVyX3BpcGVf aWJbYnVzX2lkXSk7CisJCQlwZXJmLm1heF9wZXJfcGlwZV9pYiA9IG1heChwZXJmLm1heF9wZXJf cGlwZV9pYiwKKwkJCQkJZHB1X2NzdGF0ZS0+bmV3X3BlcmYubWF4X3Blcl9waXBlX2liKTsKIAot CQkJRFBVX0RFQlVHKCJjcnRjPSVkIGJ1c19pZD0lZCBidz0lbGx1XG4iLAotCQkJCXRtcF9jcnRj LT5iYXNlLmlkLCBidXNfaWQsCi0JCQkJZHB1X2NzdGF0ZS0+bmV3X3BlcmYuYndfY3RsW2J1c19p ZF0pOworCQkJRFBVX0RFQlVHKCJjcnRjPSVkIGJ3PSVsbHVcbiIsIHRtcF9jcnRjLT5iYXNlLmlk LAorCQkJCQlkcHVfY3N0YXRlLT5uZXdfcGVyZi5id19jdGwpOwogCQl9CiAJfQogCXJldHVybiBy ZXQ7CkBAIC0yNTQsNyArMjMzLDYgQEAgdm9pZCBkcHVfY29yZV9wZXJmX2NydGNfcmVsZWFzZV9i dyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YzsKIAlz dHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGU7CiAJc3RydWN0IGRwdV9rbXMgKmttczsK LQlpbnQgaTsKIAogCWlmICghY3J0YykgewogCQlEUFVfRVJST1IoImludmFsaWQgY3J0Y1xuIik7 CkBAIC0yOTAsMTAgKzI2OCw4IEBAIHZvaWQgZHB1X2NvcmVfcGVyZl9jcnRjX3JlbGVhc2VfYnco c3RydWN0IGRybV9jcnRjICpjcnRjKQogCWlmIChrbXMtPnBlcmYuZW5hYmxlX2J3X3JlbGVhc2Up IHsKIAkJdHJhY2VfZHB1X2NtZF9yZWxlYXNlX2J3KGNydGMtPmJhc2UuaWQpOwogCQlEUFVfREVC VUcoIlJlbGVhc2UgQlcgY3J0Yz0lZFxuIiwgY3J0Yy0+YmFzZS5pZCk7Ci0JCWZvciAoaSA9IDA7 IGkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKLQkJCWRwdV9jcnRjLT5j dXJfcGVyZi5id19jdGxbaV0gPSAwOwotCQkJX2RwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGVfYnVz KGttcywgY3J0YywgaSk7Ci0JCX0KKwkJZHB1X2NydGMtPmN1cl9wZXJmLmJ3X2N0bCA9IDA7CisJ CV9kcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlX2J1cyhrbXMsIGNydGMpOwogCX0KIH0KIApAQCAt MzM2LDExICszMTIsMTAgQEAgaW50IGRwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGUoc3RydWN0IGRy bV9jcnRjICpjcnRjLAogCQlpbnQgcGFyYW1zX2NoYW5nZWQsIGJvb2wgc3RvcF9yZXEpCiB7CiAJ c3RydWN0IGRwdV9jb3JlX3BlcmZfcGFyYW1zICpuZXcsICpvbGQ7Ci0JaW50IHVwZGF0ZV9idXMg PSAwLCB1cGRhdGVfY2xrID0gMDsKKwlib29sIHVwZGF0ZV9idXMgPSBmYWxzZSwgdXBkYXRlX2Ns ayA9IGZhbHNlOwogCXU2NCBjbGtfcmF0ZSA9IDA7CiAJc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0 YzsKIAlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGU7Ci0JaW50IGk7CiAJc3RydWN0 IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdjsKIAlzdHJ1Y3QgZHB1X2ttcyAqa21zOwogCWludCByZXQ7 CkBAIC0zNjcsNjIgKzM0Miw0OSBAQCBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJbmV3ID0gJmRwdV9jc3RhdGUtPm5ld19wZXJmOwogCiAJaWYg KF9kcHVfY29yZV9wZXJmX2NydGNfaXNfcG93ZXJfb24oY3J0YykgJiYgIXN0b3BfcmVxKSB7Ci0J CWZvciAoaSA9IDA7IGkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKLQkJ CS8qCi0JCQkgKiBjYXNlcyBmb3IgYnVzIGJhbmR3aWR0aCB1cGRhdGUuCi0JCQkgKiAxLiBuZXcg YmFuZHdpZHRoIHZvdGUgLSAiYWIgb3IgaWIgdm90ZSIgaXMgaGlnaGVyCi0JCQkgKiAgICB0aGFu IGN1cnJlbnQgdm90ZSBmb3IgdXBkYXRlIHJlcXVlc3QuCi0JCQkgKiAyLiBuZXcgYmFuZHdpZHRo IHZvdGUgLSAiYWIgb3IgaWIgdm90ZSIgaXMgbG93ZXIKLQkJCSAqICAgIHRoYW4gY3VycmVudCB2 b3RlIGF0IGVuZCBvZiBjb21taXQgb3Igc3RvcC4KLQkJCSAqLwotCQkJaWYgKChwYXJhbXNfY2hh bmdlZCAmJiAoKG5ldy0+YndfY3RsW2ldID4KLQkJCQkJCW9sZC0+YndfY3RsW2ldKSB8fAotCQkJ CSAgKG5ldy0+bWF4X3Blcl9waXBlX2liW2ldID4KLQkJCQkJCW9sZC0+bWF4X3Blcl9waXBlX2li W2ldKSkpIHx8Ci0JCQkgICAgKCFwYXJhbXNfY2hhbmdlZCAmJiAoKG5ldy0+YndfY3RsW2ldIDwK LQkJCQkJCW9sZC0+YndfY3RsW2ldKSB8fAotCQkJCSAgKG5ldy0+bWF4X3Blcl9waXBlX2liW2ld IDwKLQkJCQkJCW9sZC0+bWF4X3Blcl9waXBlX2liW2ldKSkpKSB7Ci0JCQkJRFBVX0RFQlVHKAot CQkJCQkiY3J0Yz0lZCBwPSVkIG5ld19idz0lbGx1LG9sZF9idz0lbGx1XG4iLAotCQkJCQljcnRj LT5iYXNlLmlkLCBwYXJhbXNfY2hhbmdlZCwKLQkJCQkJbmV3LT5id19jdGxbaV0sIG9sZC0+Yndf Y3RsW2ldKTsKLQkJCQlvbGQtPmJ3X2N0bFtpXSA9IG5ldy0+YndfY3RsW2ldOwotCQkJCW9sZC0+ bWF4X3Blcl9waXBlX2liW2ldID0KLQkJCQkJCW5ldy0+bWF4X3Blcl9waXBlX2liW2ldOwotCQkJ CXVwZGF0ZV9idXMgfD0gQklUKGkpOwotCQkJfQorCQkvKgorCQkgKiBjYXNlcyBmb3IgYnVzIGJh bmR3aWR0aCB1cGRhdGUuCisJCSAqIDEuIG5ldyBiYW5kd2lkdGggdm90ZSAtICJhYiBvciBpYiB2 b3RlIiBpcyBoaWdoZXIKKwkJICogICAgdGhhbiBjdXJyZW50IHZvdGUgZm9yIHVwZGF0ZSByZXF1 ZXN0LgorCQkgKiAyLiBuZXcgYmFuZHdpZHRoIHZvdGUgLSAiYWIgb3IgaWIgdm90ZSIgaXMgbG93 ZXIKKwkJICogICAgdGhhbiBjdXJyZW50IHZvdGUgYXQgZW5kIG9mIGNvbW1pdCBvciBzdG9wLgor CQkgKi8KKwkJaWYgKChwYXJhbXNfY2hhbmdlZCAmJiAoKG5ldy0+YndfY3RsID4gb2xkLT5id19j dGwpIHx8CisJCQkobmV3LT5tYXhfcGVyX3BpcGVfaWIgPiBvbGQtPm1heF9wZXJfcGlwZV9pYikp KQl8fAorCQkJKCFwYXJhbXNfY2hhbmdlZCAmJiAoKG5ldy0+YndfY3RsIDwgb2xkLT5id19jdGwp IHx8CisJCQkobmV3LT5tYXhfcGVyX3BpcGVfaWIgPCBvbGQtPm1heF9wZXJfcGlwZV9pYikpKSkg eworCQkJRFBVX0RFQlVHKCJjcnRjPSVkIHA9JWQgbmV3X2J3PSVsbHUsb2xkX2J3PSVsbHVcbiIs CisJCQkJY3J0Yy0+YmFzZS5pZCwgcGFyYW1zX2NoYW5nZWQsCisJCQkJbmV3LT5id19jdGwsIG9s ZC0+YndfY3RsKTsKKwkJCW9sZC0+YndfY3RsID0gbmV3LT5id19jdGw7CisJCQlvbGQtPm1heF9w ZXJfcGlwZV9pYiA9IG5ldy0+bWF4X3Blcl9waXBlX2liOworCQkJdXBkYXRlX2J1cyA9IHRydWU7 CiAJCX0KIAogCQlpZiAoKHBhcmFtc19jaGFuZ2VkICYmCi0JCQkJKG5ldy0+Y29yZV9jbGtfcmF0 ZSA+IG9sZC0+Y29yZV9jbGtfcmF0ZSkpIHx8Ci0JCQkJKCFwYXJhbXNfY2hhbmdlZCAmJgotCQkJ CShuZXctPmNvcmVfY2xrX3JhdGUgPCBvbGQtPmNvcmVfY2xrX3JhdGUpKSkgeworCQkJKG5ldy0+ Y29yZV9jbGtfcmF0ZSA+IG9sZC0+Y29yZV9jbGtfcmF0ZSkpIHx8CisJCQkoIXBhcmFtc19jaGFu Z2VkICYmCisJCQkobmV3LT5jb3JlX2Nsa19yYXRlIDwgb2xkLT5jb3JlX2Nsa19yYXRlKSkpIHsK IAkJCW9sZC0+Y29yZV9jbGtfcmF0ZSA9IG5ldy0+Y29yZV9jbGtfcmF0ZTsKLQkJCXVwZGF0ZV9j bGsgPSAxOworCQkJdXBkYXRlX2NsayA9IHRydWU7CiAJCX0KIAl9IGVsc2UgewogCQlEUFVfREVC VUcoImNydGM9JWQgZGlzYWJsZVxuIiwgY3J0Yy0+YmFzZS5pZCk7CiAJCW1lbXNldChvbGQsIDAs IHNpemVvZigqb2xkKSk7CiAJCW1lbXNldChuZXcsIDAsIHNpemVvZigqbmV3KSk7Ci0JCXVwZGF0 ZV9idXMgPSB+MDsKLQkJdXBkYXRlX2NsayA9IDE7CisJCXVwZGF0ZV9idXMgPSB0cnVlOworCQl1 cGRhdGVfY2xrID0gdHJ1ZTsKIAl9Ci0JdHJhY2VfZHB1X3BlcmZfY3J0Y191cGRhdGUoY3J0Yy0+ YmFzZS5pZCwKLQkJCQluZXctPmJ3X2N0bFtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQ10s Ci0JCQkJbmV3LT5id19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0xMQ0NdLAotCQkJCW5l dy0+YndfY3RsW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9FQkldLAotCQkJCW5ldy0+Y29yZV9j bGtfcmF0ZSwgc3RvcF9yZXEsCi0JCQkJdXBkYXRlX2J1cywgdXBkYXRlX2Nsayk7Ci0KLQlmb3Ig KGkgPSAwOyBpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWDsgaSsrKSB7Ci0JCWlmICh1 cGRhdGVfYnVzICYgQklUKGkpKSB7Ci0JCQlyZXQgPSBfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0 ZV9idXMoa21zLCBjcnRjLCBpKTsKLQkJCWlmIChyZXQpIHsKLQkJCQlEUFVfRVJST1IoImNydGMt JWQ6IGZhaWxlZCB0byB1cGRhdGUgYncgdm90ZSBmb3IgYnVzLSVkXG4iLAotCQkJCQkgIGNydGMt PmJhc2UuaWQsIGkpOwotCQkJCXJldHVybiByZXQ7Ci0JCQl9CisKKwl0cmFjZV9kcHVfcGVyZl9j cnRjX3VwZGF0ZShjcnRjLT5iYXNlLmlkLCBuZXctPmJ3X2N0bCwKKwkJbmV3LT5jb3JlX2Nsa19y YXRlLCBzdG9wX3JlcSwgdXBkYXRlX2J1cywgdXBkYXRlX2Nsayk7CisKKwlpZiAodXBkYXRlX2J1 cykgeworCQlyZXQgPSBfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9idXMoa21zLCBjcnRjKTsK KwkJaWYgKHJldCkgeworCQkJRFBVX0VSUk9SKCJjcnRjLSVkOiBmYWlsZWQgdG8gdXBkYXRlIGJ1 cyBidyB2b3RlXG4iLAorCQkJCSAgY3J0Yy0+YmFzZS5pZCk7CisJCQlyZXR1cm4gcmV0OwogCQl9 CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29y ZV9wZXJmLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmgK aW5kZXggZmJjYmUwYy4uMGZiMjc2OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9jb3JlX3BlcmYuaApAQCAtMzAsOCArMzAsOCBAQAogICogQGNvcmVfY2xrX3JhdGU6 IGNvcmUgY2xvY2sgcmF0ZSByZXF1ZXN0CiAgKi8KIHN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFt cyB7Ci0JdTY0IG1heF9wZXJfcGlwZV9pYltEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYXTsK LQl1NjQgYndfY3RsW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVhdOworCXU2NCBtYXhfcGVy X3BpcGVfaWI7CisJdTY0IGJ3X2N0bDsKIAl1NjQgY29yZV9jbGtfcmF0ZTsKIH07CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCmluZGV4IGQyN2VhMmEuLmQzNGVjOWYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwpAQCAtMTM4OSwyMSAr MTM4OSwxNCBAQCBzdGF0aWMgaW50IGRwdV9jcnRjX2RlYnVnZnNfc3RhdGVfc2hvdyhzdHJ1Y3Qg c2VxX2ZpbGUgKnMsIHZvaWQgKnYpCiB7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gKHN0cnVj dCBkcm1fY3J0YyAqKSBzLT5wcml2YXRlOwogCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGMgPSB0 b19kcHVfY3J0YyhjcnRjKTsKLQlpbnQgaTsKIAogCXNlcV9wcmludGYocywgImNsaWVudCB0eXBl OiAlZFxuIiwgZHB1X2NydGNfZ2V0X2NsaWVudF90eXBlKGNydGMpKTsKIAlzZXFfcHJpbnRmKHMs ICJpbnRmX21vZGU6ICVkXG4iLCBkcHVfY3J0Y19nZXRfaW50Zl9tb2RlKGNydGMpKTsKIAlzZXFf cHJpbnRmKHMsICJjb3JlX2Nsa19yYXRlOiAlbGx1XG4iLAogCQkJZHB1X2NydGMtPmN1cl9wZXJm LmNvcmVfY2xrX3JhdGUpOwotCWZvciAoaSA9IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NTk9D OwotCQkJaSA8IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVg7IGkrKykgewotCQlzZXFfcHJp bnRmKHMsICJid19jdGxbJXNdOiAlbGx1XG4iLAotCQkJCWRwdV9wb3dlcl9oYW5kbGVfZ2V0X2Ri dXNfbmFtZShpKSwKLQkJCQlkcHVfY3J0Yy0+Y3VyX3BlcmYuYndfY3RsW2ldKTsKLQkJc2VxX3By aW50ZihzLCAibWF4X3Blcl9waXBlX2liWyVzXTogJWxsdVxuIiwKLQkJCQlkcHVfcG93ZXJfaGFu ZGxlX2dldF9kYnVzX25hbWUoaSksCi0JCQkJZHB1X2NydGMtPmN1cl9wZXJmLm1heF9wZXJfcGlw ZV9pYltpXSk7Ci0JfQorCXNlcV9wcmludGYocywgImJ3X2N0bDogJWxsdVxuIiwgZHB1X2NydGMt PmN1cl9wZXJmLmJ3X2N0bCk7CisJc2VxX3ByaW50ZihzLCAibWF4X3Blcl9waXBlX2liOiAlbGx1 XG4iLAorCQkJCWRwdV9jcnRjLT5jdXJfcGVyZi5tYXhfcGVyX3BpcGVfaWIpOwogCiAJcmV0dXJu IDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93 ZXJfaGFuZGxlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFu ZGxlLmMKaW5kZXggZmMxNDExNi4uZDU4ZDAxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuYwpAQCAtMjQsMjAgKzI0LDYgQEAKICNpbmNs dWRlICJkcHVfcG93ZXJfaGFuZGxlLmgiCiAjaW5jbHVkZSAiZHB1X3RyYWNlLmgiCiAKLXN0YXRp YyBjb25zdCBjaGFyICpkYXRhX2J1c19uYW1lW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVhd ID0gewotCVtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQ10gPSAicWNvbSxkcHUtZGF0YS1i dXMiLAotCVtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTExDQ10gPSAicWNvbSxkcHUtbGxjYy1i dXMiLAotCVtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfRUJJXSA9ICJxY29tLGRwdS1lYmktYnVz IiwKLX07Ci0KLWNvbnN0IGNoYXIgKmRwdV9wb3dlcl9oYW5kbGVfZ2V0X2RidXNfbmFtZSh1MzIg YnVzX2lkKQotewotCWlmIChidXNfaWQgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYKQot CQlyZXR1cm4gZGF0YV9idXNfbmFtZVtidXNfaWRdOwotCi0JcmV0dXJuIE5VTEw7Ci19Ci0KIHN0 YXRpYyB2b2lkIGRwdV9wb3dlcl9ldmVudF90cmlnZ2VyX2xvY2tlZChzdHJ1Y3QgZHB1X3Bvd2Vy X2hhbmRsZSAqcGhhbmRsZSwKIAkJdTMyIGV2ZW50X3R5cGUpCiB7CkBAIC02Niw3ICs1Miw2IEBA IHN0cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpkcHVfcG93ZXJfY2xpZW50X2NyZWF0ZSgKIAogCW11 dGV4X2xvY2soJnBoYW5kbGUtPnBoYW5kbGVfbG9jayk7CiAJc3RybGNweShjbGllbnQtPm5hbWUs IGNsaWVudF9uYW1lLCBNQVhfQ0xJRU5UX05BTUVfTEVOKTsKLQljbGllbnQtPnVzZWNhc2VfbmR4 ID0gVk9URV9JTkRFWF9ESVNBQkxFOwogCWNsaWVudC0+aWQgPSBpZDsKIAljbGllbnQtPmFjdGl2 ZSA9IHRydWU7CiAJcHJfZGVidWcoImNsaWVudCAlcyBjcmVhdGVkOiVwSyBpZCA6JWRcbiIsIGNs aWVudF9uYW1lLApAQCAtMTQzLDggKzEyOCw2IEBAIGludCBkcHVfcG93ZXJfcmVzb3VyY2VfZW5h YmxlKHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwaGFuZGxlLAogCXN0cnVjdCBkcHVfcG93ZXJf Y2xpZW50ICpwY2xpZW50LCBib29sIGVuYWJsZSkKIHsKIAlib29sIGNoYW5nZWQgPSBmYWxzZTsK LQl1MzIgbWF4X3VzZWNhc2VfbmR4ID0gVk9URV9JTkRFWF9ESVNBQkxFLCBwcmV2X3VzZWNhc2Vf bmR4OwotCXN0cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpjbGllbnQ7CiAJdTMyIGV2ZW50X3R5cGU7 CiAKIAlpZiAoIXBoYW5kbGUgfHwgIXBjbGllbnQpIHsKQEAgLTE1MywzMSArMTM2LDE5IEBAIGlu dCBkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwaGFu ZGxlLAogCX0KIAogCW11dGV4X2xvY2soJnBoYW5kbGUtPnBoYW5kbGVfbG9jayk7Ci0JaWYgKGVu YWJsZSkKKwlpZiAoZW5hYmxlKSB7CiAJCXBjbGllbnQtPnJlZmNvdW50Kys7Ci0JZWxzZSBpZiAo cGNsaWVudC0+cmVmY291bnQpCisJCWlmIChwY2xpZW50LT5yZWZjb3VudCA9PSAxKQorCQkJY2hh bmdlZCA9IHRydWU7CisJfSBlbHNlIGlmIChwY2xpZW50LT5yZWZjb3VudCkgewogCQlwY2xpZW50 LT5yZWZjb3VudC0tOwotCi0JaWYgKHBjbGllbnQtPnJlZmNvdW50KQotCQlwY2xpZW50LT51c2Vj YXNlX25keCA9IFZPVEVfSU5ERVhfTE9XOwotCWVsc2UKLQkJcGNsaWVudC0+dXNlY2FzZV9uZHgg PSBWT1RFX0lOREVYX0RJU0FCTEU7Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNsaWVudCwgJnBo YW5kbGUtPnBvd2VyX2NsaWVudF9jbGlzdCwgbGlzdCkgewotCQlpZiAoY2xpZW50LT51c2VjYXNl X25keCA8IFZPVEVfSU5ERVhfTUFYICYmCi0JCSAgICBjbGllbnQtPnVzZWNhc2VfbmR4ID4gbWF4 X3VzZWNhc2VfbmR4KQotCQkJbWF4X3VzZWNhc2VfbmR4ID0gY2xpZW50LT51c2VjYXNlX25keDsK LQl9Ci0KLQlpZiAocGhhbmRsZS0+Y3VycmVudF91c2VjYXNlX25keCAhPSBtYXhfdXNlY2FzZV9u ZHgpIHsKLQkJY2hhbmdlZCA9IHRydWU7Ci0JCXByZXZfdXNlY2FzZV9uZHggPSBwaGFuZGxlLT5j dXJyZW50X3VzZWNhc2VfbmR4OwotCQlwaGFuZGxlLT5jdXJyZW50X3VzZWNhc2VfbmR4ID0gbWF4 X3VzZWNhc2VfbmR4OworCQlpZiAoIXBjbGllbnQtPnJlZmNvdW50KQorCQkJY2hhbmdlZCA9IHRy dWU7CiAJfQogCi0JcHJfZGVidWcoIiVwUzogY2hhbmdlZD0lZCBjdXJyZW50IGlkeD0lZCByZXF1 ZXN0IGNsaWVudCAlcyBpZDoldSBlbmFibGU6JWQgcmVmY291bnQ6JWRcbiIsCi0JCV9fYnVpbHRp bl9yZXR1cm5fYWRkcmVzcygwKSwgY2hhbmdlZCwgbWF4X3VzZWNhc2VfbmR4LAotCQlwY2xpZW50 LT5uYW1lLCBwY2xpZW50LT5pZCwgZW5hYmxlLCBwY2xpZW50LT5yZWZjb3VudCk7CisJcHJfZGVi dWcoIiVwUzpjaGFuZ2VkPSVkIGNsaWVudCAlcyBpZDoldSBlbmFibGU6JWQgcmVmY291bnQ6JWRc biIsCisJCV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgY2hhbmdlZCwgcGNsaWVudC0+bmFt ZSwKKwkJcGNsaWVudC0+aWQsIGVuYWJsZSwgcGNsaWVudC0+cmVmY291bnQpOwogCiAJaWYgKCFj aGFuZ2VkKQogCQlnb3RvIGVuZDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9wb3dlcl9oYW5kbGUuaAppbmRleCBhNjViN2EyLi5iMWE1YWU0IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5oCkBAIC0xNiwxMSAr MTYsNiBAQAogCiAjZGVmaW5lIE1BWF9DTElFTlRfTkFNRV9MRU4gMTI4CiAKLSNkZWZpbmUgRFBV X1BPV0VSX0hBTkRMRV9FTkFCTEVfQlVTX0FCX1FVT1RBCTAKLSNkZWZpbmUgRFBVX1BPV0VSX0hB TkRMRV9ESVNBQkxFX0JVU19BQl9RVU9UQQkwCi0jZGVmaW5lIERQVV9QT1dFUl9IQU5ETEVfRU5B QkxFX0JVU19JQl9RVU9UQQkxNjAwMDAwMDAwCi0jZGVmaW5lIERQVV9QT1dFUl9IQU5ETEVfRElT QUJMRV9CVVNfSUJfUVVPVEEJMAotCiAjaW5jbHVkZSAiZHB1X2lvX3V0aWwuaCIKIAogLyogZXZl bnRzIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIHBvd2VyIGhhbmRsZXIgZW5hYmxlL2Rpc2FibGUgKi8K QEAgLTI4LDY0ICsyMywyMSBAQAogI2RlZmluZSBEUFVfUE9XRVJfRVZFTlRfRU5BQkxFCUJJVCgx KQogCiAvKioKLSAqIG1kc3NfYnVzX3ZvdGVfdHlwZTogcmVnaXN0ZXIgYnVzIHZvdGUgdHlwZQot ICogVk9URV9JTkRFWF9ESVNBQkxFOiByZW1vdmVzIHRoZSBjbGllbnQgdm90ZQotICogVk9URV9J TkRFWF9MT1c6IGtlZXBzIHRoZSBsb3dlc3Qgdm90ZSBmb3IgcmVnaXN0ZXIgYnVzCi0gKiBWT1RF X0lOREVYX01BWDogaW52YWxpZAotICovCi1lbnVtIG1kc3NfYnVzX3ZvdGVfdHlwZSB7Ci0JVk9U RV9JTkRFWF9ESVNBQkxFLAotCVZPVEVfSU5ERVhfTE9XLAotCVZPVEVfSU5ERVhfTUFYLAotfTsK LQotLyoqCi0gKiBlbnVtIGRwdV9wb3dlcl9oYW5kbGVfZGF0YV9idXNfY2xpZW50IC0gdHlwZSBv ZiBheGkgYnVzIGNsaWVudHMKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9S VDogY29yZSByZWFsLXRpbWUgYnVzIGNsaWVudAotICogQERQVV9QT1dFUl9IQU5ETEVfREFUQV9C VVNfQ0xJRU5UX05SVDogY29yZSBub24tcmVhbC10aW1lIGJ1cyBjbGllbnQKLSAqIEBEUFVfUE9X RVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9NQVg6IG1heGltdW0gbnVtYmVyIG9mIGJ1cyBjbGll bnQgdHlwZQotICovCi1lbnVtIGRwdV9wb3dlcl9oYW5kbGVfZGF0YV9idXNfY2xpZW50IHsKLQlE UFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9SVCwKLQlEUFVfUE9XRVJfSEFORExFX0RB VEFfQlVTX0NMSUVOVF9OUlQsCi0JRFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfTUFY Ci19OwotCi0vKioKLSAqIGVudW0gRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEIC0gZGF0YSBidXMg aWRlbnRpZmllcgotICogQERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NTk9DOiBEUFUvTU5PQyBk YXRhIGJ1cwotICogQERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9MTENDOiBNTk9DL0xMQ0MgZGF0 YSBidXMKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfRUJJOiBMTENDL0VCSSBkYXRhIGJ1 cwotICovCi1lbnVtIERQVV9QT1dFUl9IQU5ETEVfREJVU19JRCB7Ci0JRFBVX1BPV0VSX0hBTkRM RV9EQlVTX0lEX01OT0MsCi0JRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0xMQ0MsCi0JRFBVX1BP V0VSX0hBTkRMRV9EQlVTX0lEX0VCSSwKLQlEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYLAot fTsKLQotLyoqCiAgKiBzdHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudDogc3RvcmVzIHRoZSBwb3dlciBj bGllbnQgZm9yIGRwdSBkcml2ZXIKICAqIEBuYW1lOgluYW1lIG9mIHRoZSBjbGllbnQKLSAqIEB1 c2VjYXNlX25keDogY3VycmVudCByZWdzIGJ1cyB2b3RlIHR5cGUKICAqIEByZWZjb3VudDoJY3Vy cmVudCByZWZjb3VudCBpZiBtdWx0aXBsZSBtb2R1bGVzIGFyZSB1c2luZyBzYW1lCiAgKiAgICAg ICAgICAgICAgc2FtZSBjbGllbnQgZm9yIGVuYWJsZS9kaXNhYmxlLiBQb3dlciBtb2R1bGUgd2ls bAogICogICAgICAgICAgICAgIGFnZ3JlZ2F0ZSB0aGUgcmVmY291bnQgYW5kIHZvdGUgYWNjb3Jk aW5nbHkgZm9yIHRoaXMKICAqICAgICAgICAgICAgICBjbGllbnQuCiAgKiBAaWQ6CQlhc3NpZ25l ZCBkdXJpbmcgY3JlYXRlLiBoZWxwcyBmb3IgZGVidWdnaW5nLgogICogQGxpc3Q6CWxpc3QgdG8g YXR0YWNoIHBvd2VyIGhhbmRsZSBtYXN0ZXIgbGlzdAotICogQGFiOiAgICAgICAgIGFyYml0cmF0 ZWQgYmFuZHdpZHRoIGZvciBlYWNoIGJ1cyBjbGllbnQKLSAqIEBpYjogICAgICAgICBpbnN0YW50 YW5lb3VzIGJhbmR3aWR0aCBmb3IgZWFjaCBidXMgY2xpZW50CiAgKiBAYWN0aXZlOglpbmlkY2F0 ZXMgdGhlIHN0YXRlIG9mIGRwdSBwb3dlciBoYW5kbGUKICAqLwogc3RydWN0IGRwdV9wb3dlcl9j bGllbnQgewogCWNoYXIgbmFtZVtNQVhfQ0xJRU5UX05BTUVfTEVOXTsKLQlzaG9ydCB1c2VjYXNl X25keDsKIAlzaG9ydCByZWZjb3VudDsKIAl1MzIgaWQ7CiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0 OwotCXU2NCBhYltEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9NQVhdOwotCXU2NCBp YltEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9NQVhdOwogCWJvb2wgYWN0aXZlOwog fTsKIApAQCAtMTEyLDE0ICs2NCwxMiBAQCBzdHJ1Y3QgZHB1X3Bvd2VyX2V2ZW50IHsKICAqIEBj bGllbnRfY2xpc3Q6IG1hc3RlciBsaXN0IHRvIHN0b3JlIGFsbCBjbGllbnRzCiAgKiBAcGhhbmRs ZV9sb2NrOiBsb2NrIHRvIHN5bmNocm9uaXplIHRoZSBlbmFibGUvZGlzYWJsZQogICogQGRldjog cG9pbnRlciB0byBkZXZpY2Ugc3RydWN0dXJlCi0gKiBAdXNlY2FzZV9uZHg6IGN1cnJlbnQgdXNl Y2FzZSBpbmRleAogICogQGV2ZW50X2xpc3Q6IGN1cnJlbnQgcG93ZXIgaGFuZGxlIGV2ZW50IGxp c3QKICAqLwogc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgewogCXN0cnVjdCBsaXN0X2hlYWQgcG93 ZXJfY2xpZW50X2NsaXN0OwogCXN0cnVjdCBtdXRleCBwaGFuZGxlX2xvY2s7CiAJc3RydWN0IGRl dmljZSAqZGV2OwotCXUzMiBjdXJyZW50X3VzZWNhc2VfbmR4OwogCXN0cnVjdCBsaXN0X2hlYWQg ZXZlbnRfbGlzdDsKIH07CiAKQEAgLTE3MywxNyArMTIzLDYgQEAgaW50IGRwdV9wb3dlcl9yZXNv dXJjZV9lbmFibGUoc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBkYXRhLAogCXN0cnVjdCBkcHVf cG93ZXJfY2xpZW50ICpwY2xpZW50LCBib29sIGVuYWJsZSk7CiAKIC8qKgotICogZHB1X3Bvd2Vy X2RhdGFfYnVzX2JhbmR3aWR0aF9jdHJsKCkgLSBjb250cm9sIGRhdGEgYnVzIGJhbmR3aWR0aCBl bmFibGUKLSAqIEBwaGFuZGxlOiAgcG93ZXIgaGFuZGxlIGNvbnRhaW5pbmcgdGhlIHJlc291cmNl cwotICogQGNsaWVudDogY2xpZW50IGluZm9ybWF0aW9uIHRvIGJhbmR3aWR0aCBjb250cm9sCi0g KiBAZW5hYmxlOiB0cnVlIHRvIGVuYWJsZSBiYW5kd2lkdGggZm9yIGRhdGEgYmFzZQotICoKLSAq IFJldHVybjogbm9uZQotICovCi12b2lkIGRwdV9wb3dlcl9kYXRhX2J1c19iYW5kd2lkdGhfY3Ry bChzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRsZSAqcGhhbmRsZSwKLQkJc3RydWN0IGRwdV9wb3dlcl9j bGllbnQgKnBjbGllbnQsIGludCBlbmFibGUpOwotCi0vKioKICAqIGRwdV9wb3dlcl9oYW5kbGVf cmVnaXN0ZXJfZXZlbnQgLSByZWdpc3RlciBhIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBhbiBldmVu dC4KICAqCUNsaWVudHMgY2FuIHJlZ2lzdGVyIGZvciBtdWx0aXBsZSBldmVudHMgd2l0aCBhIHNp bmdsZSByZWdpc3Rlci4KICAqCUFueSBibG9jayB3aXRoIGFjY2VzcyB0byBwaGFuZGxlIGNhbiBy ZWdpc3RlciBmb3IgdGhlIGV2ZW50CkBAIC0yMDcsMTEgKzE0Niw0IEBAIHN0cnVjdCBkcHVfcG93 ZXJfZXZlbnQgKmRwdV9wb3dlcl9oYW5kbGVfcmVnaXN0ZXJfZXZlbnQoCiB2b2lkIGRwdV9wb3dl cl9oYW5kbGVfdW5yZWdpc3Rlcl9ldmVudChzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRsZSAqcGhhbmRs ZSwKIAkJc3RydWN0IGRwdV9wb3dlcl9ldmVudCAqZXZlbnQpOwogCi0vKioKLSAqIGRwdV9wb3dl cl9oYW5kbGVfZ2V0X2RidXNfbmFtZSAtIGdldCBuYW1lIG9mIGdpdmVuIGRhdGEgYnVzIGlkZW50 aWZpZXIKLSAqIEBidXNfaWQ6CWRhdGEgYnVzIGlkZW50aWZpZXIKLSAqIFJldHVybjoJUG9pbnRl ciB0byBuYW1lIHN0cmluZyBpZiBzdWNjZXNzOyBOVUxMIG90aGVyd2lzZQotICovCi1jb25zdCBj aGFyICpkcHVfcG93ZXJfaGFuZGxlX2dldF9kYnVzX25hbWUodTMyIGJ1c19pZCk7Ci0KICNlbmRp ZiAvKiBfRFBVX1BPV0VSX0hBTkRMRV9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfdHJhY2UuaAppbmRleCAwYzEyMmUxLi43YzhhOTJkIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfdHJhY2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfdHJhY2UuaApAQCAtMTY3LDE2ICsxNjcsMTIgQEAKICkKIAogVFJB Q0VfRVZFTlQoZHB1X3BlcmZfY3J0Y191cGRhdGUsCi0JVFBfUFJPVE8odTMyIGNydGMsIHU2NCBi d19jdGxfbW5vYywgdTY0IGJ3X2N0bF9sbGNjLAotCQkJdTY0IGJ3X2N0bF9lYmksIHUzMiBjb3Jl X2Nsa19yYXRlLAotCQkJYm9vbCBzdG9wX3JlcSwgdTMyIHVwZGF0ZV9idXMsIHUzMiB1cGRhdGVf Y2xrKSwKLQlUUF9BUkdTKGNydGMsIGJ3X2N0bF9tbm9jLCBid19jdGxfbGxjYywgYndfY3RsX2Vi aSwgY29yZV9jbGtfcmF0ZSwKLQkJc3RvcF9yZXEsIHVwZGF0ZV9idXMsIHVwZGF0ZV9jbGspLAor CVRQX1BST1RPKHUzMiBjcnRjLCB1NjQgYndfY3RsLCB1MzIgY29yZV9jbGtfcmF0ZSwKKwkJCWJv b2wgc3RvcF9yZXEsIGJvb2wgdXBkYXRlX2J1cywgYm9vbCB1cGRhdGVfY2xrKSwKKwlUUF9BUkdT KGNydGMsIGJ3X2N0bCwgY29yZV9jbGtfcmF0ZSwgc3RvcF9yZXEsIHVwZGF0ZV9idXMsIHVwZGF0 ZV9jbGspLAogCVRQX1NUUlVDVF9fZW50cnkoCiAJCQlfX2ZpZWxkKHUzMiwgY3J0YykKLQkJCV9f ZmllbGQodTY0LCBid19jdGxfbW5vYykKLQkJCV9fZmllbGQodTY0LCBid19jdGxfbGxjYykKLQkJ CV9fZmllbGQodTY0LCBid19jdGxfZWJpKQorCQkJX19maWVsZCh1NjQsIGJ3X2N0bCkKIAkJCV9f ZmllbGQodTMyLCBjb3JlX2Nsa19yYXRlKQogCQkJX19maWVsZChib29sLCBzdG9wX3JlcSkKIAkJ CV9fZmllbGQodTMyLCB1cGRhdGVfYnVzKQpAQCAtMTg0LDIwICsxODAsMTYgQEAKIAkpLAogCVRQ X2Zhc3RfYXNzaWduKAogCQkJX19lbnRyeS0+Y3J0YyA9IGNydGM7Ci0JCQlfX2VudHJ5LT5id19j dGxfbW5vYyA9IGJ3X2N0bF9tbm9jOwotCQkJX19lbnRyeS0+YndfY3RsX2xsY2MgPSBid19jdGxf bGxjYzsKLQkJCV9fZW50cnktPmJ3X2N0bF9lYmkgPSBid19jdGxfZWJpOworCQkJX19lbnRyeS0+ YndfY3RsID0gYndfY3RsOwogCQkJX19lbnRyeS0+Y29yZV9jbGtfcmF0ZSA9IGNvcmVfY2xrX3Jh dGU7CiAJCQlfX2VudHJ5LT5zdG9wX3JlcSA9IHN0b3BfcmVxOwogCQkJX19lbnRyeS0+dXBkYXRl X2J1cyA9IHVwZGF0ZV9idXM7CiAJCQlfX2VudHJ5LT51cGRhdGVfY2xrID0gdXBkYXRlX2NsazsK IAkpLAogCSBUUF9wcmludGsoCi0JCSJjcnRjPSVkIGJ3X21ub2M9JWxsdSBid19sbGNjPSVsbHUg YndfZWJpPSVsbHUgY2xrX3JhdGU9JXUgc3RvcF9yZXE9JWQgdV9idXM9JWQgdV9jbGs9JWQiLAor CQkiY3J0Yz0lZCBid19jdGw9JWxsdSBjbGtfcmF0ZT0ldSBzdG9wX3JlcT0lZCB1X2J1cz0lZCB1 X2Nsaz0lZCIsCiAJCQlfX2VudHJ5LT5jcnRjLAotCQkJX19lbnRyeS0+YndfY3RsX21ub2MsCi0J CQlfX2VudHJ5LT5id19jdGxfbGxjYywKLQkJCV9fZW50cnktPmJ3X2N0bF9lYmksCisJCQlfX2Vu dHJ5LT5id19jdGwsCiAJCQlfX2VudHJ5LT5jb3JlX2Nsa19yYXRlLAogCQkJX19lbnRyeS0+c3Rv cF9yZXEsCiAJCQlfX2VudHJ5LT51cGRhdGVfYnVzLAotLSAKVGhlIFF1YWxjb21tIElubm92YXRp b24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKYSBM aW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVl ZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==