From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jayant Shekhar Subject: [v7 1/3] drm/msm/dpu: clean up references of DPU custom bus scaling Date: Thu, 24 Jan 2019 10:39:50 +0530 Message-ID: <1548306592-4708-2-git-send-email-jshekhar@codeaurora.org> References: <1548306592-4708-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: <1548306592-4708-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 NC12NzoKCS0gTm9uZQoKU2lnbmVkLW9mZi1ieTogU3JhdmFudGhpIEtvbGx1a3VkdXJ1IDxza29s bHVrdUBjb2RlYXVyb3JhLm9yZz4KU2lnbmVkLW9mZi1ieTogSmF5YW50IFNoZWtoYXIgPGpzaGVr aGFyQGNvZGVhdXJvcmEub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9jb3JlX3BlcmYuYyAgICB8IDE3NCArKysrKysrKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5oICAgIHwgICA0ICstCiBkcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jICAgICAgICAgfCAgMTMgKy0KIGRyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuYyB8ICA0NyArKy0tLS0K IGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuaCB8ICA2OCAt LS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV90cmFjZS5oICAgICAg ICB8ICAyMiArLS0KIDYgZmlsZXMgY2hhbmdlZCwgODkgaW5zZXJ0aW9ucygrKSwgMjM5IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j b3JlX3BlcmYuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYu YwppbmRleCAyMmU4NGIzLi5jNzU1MzZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2NvcmVfcGVyZi5jCkBAIC04NCw3ICs4NCw2IEBAIHN0YXRpYyB2b2lkIF9kcHVf Y29yZV9wZXJmX2NhbGNfY3J0YyhzdHJ1Y3QgZHB1X2ttcyAqa21zLAogCQlzdHJ1Y3QgZHB1X2Nv cmVfcGVyZl9wYXJhbXMgKnBlcmYpCiB7CiAJc3RydWN0IGRwdV9jcnRjX3N0YXRlICpkcHVfY3N0 YXRlOwotCWludCBpOwogCiAJaWYgKCFrbXMgfHwgIWttcy0+Y2F0YWxvZyB8fCAhY3J0YyB8fCAh c3RhdGUgfHwgIXBlcmYpIHsKIAkJRFBVX0VSUk9SKCJpbnZhbGlkIHBhcmFtZXRlcnNcbiIpOwpA QCAtOTUsMzUgKzk0LDI0IEBAIHN0YXRpYyB2b2lkIF9kcHVfY29yZV9wZXJmX2NhbGNfY3J0Yyhz dHJ1Y3QgZHB1X2ttcyAqa21zLAogCW1lbXNldChwZXJmLCAwLCBzaXplb2Yoc3RydWN0IGRwdV9j b3JlX3BlcmZfcGFyYW1zKSk7CiAKIAlpZiAoIWRwdV9jc3RhdGUtPmJ3X2NvbnRyb2wpIHsKLQkJ Zm9yIChpID0gMDsgaSA8IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVg7IGkrKykgewotCQkJ cGVyZi0+YndfY3RsW2ldID0ga21zLT5jYXRhbG9nLT5wZXJmLm1heF9id19oaWdoICoKKwkJcGVy Zi0+YndfY3RsID0ga21zLT5jYXRhbG9nLT5wZXJmLm1heF9id19oaWdoICoKIAkJCQkJMTAwMFVM TDsKLQkJCXBlcmYtPm1heF9wZXJfcGlwZV9pYltpXSA9IHBlcmYtPmJ3X2N0bFtpXTsKLQkJfQor CQlwZXJmLT5tYXhfcGVyX3BpcGVfaWIgPSBwZXJmLT5id19jdGw7CiAJCXBlcmYtPmNvcmVfY2xr X3JhdGUgPSBrbXMtPnBlcmYubWF4X2NvcmVfY2xrX3JhdGU7CiAJfSBlbHNlIGlmIChrbXMtPnBl cmYucGVyZl90dW5lLm1vZGUgPT0gRFBVX1BFUkZfTU9ERV9NSU5JTVVNKSB7Ci0JCWZvciAoaSA9 IDA7IGkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKLQkJCXBlcmYtPmJ3 X2N0bFtpXSA9IDA7Ci0JCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJbaV0gPSAwOwotCQl9CisJCXBl cmYtPmJ3X2N0bCA9IDA7CisJCXBlcmYtPm1heF9wZXJfcGlwZV9pYiA9IDA7CiAJCXBlcmYtPmNv cmVfY2xrX3JhdGUgPSAwOwogCX0gZWxzZSBpZiAoa21zLT5wZXJmLnBlcmZfdHVuZS5tb2RlID09 IERQVV9QRVJGX01PREVfRklYRUQpIHsKLQkJZm9yIChpID0gMDsgaSA8IERQVV9QT1dFUl9IQU5E TEVfREJVU19JRF9NQVg7IGkrKykgewotCQkJcGVyZi0+YndfY3RsW2ldID0ga21zLT5wZXJmLmZp eF9jb3JlX2FiX3ZvdGU7Ci0JCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJbaV0gPSBrbXMtPnBlcmYu Zml4X2NvcmVfaWJfdm90ZTsKLQkJfQorCQlwZXJmLT5id19jdGwgPSBrbXMtPnBlcmYuZml4X2Nv cmVfYWJfdm90ZTsKKwkJcGVyZi0+bWF4X3Blcl9waXBlX2liID0ga21zLT5wZXJmLmZpeF9jb3Jl X2liX3ZvdGU7CiAJCXBlcmYtPmNvcmVfY2xrX3JhdGUgPSBrbXMtPnBlcmYuZml4X2NvcmVfY2xr X3JhdGU7CiAJfQogCiAJRFBVX0RFQlVHKAotCQkiY3J0Yz0lZCBjbGtfcmF0ZT0lbGx1IGNvcmVf aWI9JWxsdSBjb3JlX2FiPSVsbHUgbGxjY19pYj0lbGx1IGxsY2NfYWI9JWxsdSBtZW1faWI9JWxs dSBtZW1fYWI9JWxsdVxuIiwKKwkJImNydGM9JWQgY2xrX3JhdGU9JWxsdSBjb3JlX2liPSVsbHUg Y29yZV9hYj0lbGx1XG4iLAogCQkJY3J0Yy0+YmFzZS5pZCwgcGVyZi0+Y29yZV9jbGtfcmF0ZSwK LQkJCXBlcmYtPm1heF9wZXJfcGlwZV9pYltEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQ10s Ci0JCQlwZXJmLT5id19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01OT0NdLAotCQkJcGVy Zi0+bWF4X3Blcl9waXBlX2liW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9MTENDXSwKLQkJCXBl cmYtPmJ3X2N0bFtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTExDQ10sCi0JCQlwZXJmLT5tYXhf cGVyX3BpcGVfaWJbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VCSV0sCi0JCQlwZXJmLT5id19j dGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VCSV0pOworCQkJcGVyZi0+bWF4X3Blcl9waXBl X2liLCBwZXJmLT5id19jdGwpOwogfQogCiBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX2NoZWNrKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKQEAgLTEzNiw3ICsxMjQsNiBAQCBpbnQgZHB1X2NvcmVfcGVy Zl9jcnRjX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlzdHJ1Y3QgZHB1X2NydGNfc3Rh dGUgKmRwdV9jc3RhdGU7CiAJc3RydWN0IGRybV9jcnRjICp0bXBfY3J0YzsKIAlzdHJ1Y3QgZHB1 X2ttcyAqa21zOwotCWludCBpOwogCiAJaWYgKCFjcnRjIHx8ICFzdGF0ZSkgewogCQlEUFVfRVJS T1IoImludmFsaWQgY3J0Y1xuIik7CkBAIC0xNTgsMzEgKzE0NSwyNSBAQCBpbnQgZHB1X2NvcmVf cGVyZl9jcnRjX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkvKiBvYnRhaW4gbmV3IHZh bHVlcyAqLwogCV9kcHVfY29yZV9wZXJmX2NhbGNfY3J0YyhrbXMsIGNydGMsIHN0YXRlLCAmZHB1 X2NzdGF0ZS0+bmV3X3BlcmYpOwogCi0JZm9yIChpID0gRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lE X01OT0M7Ci0JCQlpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWDsgaSsrKSB7Ci0JCWJ3 X3N1bV9vZl9pbnRmcyA9IGRwdV9jc3RhdGUtPm5ld19wZXJmLmJ3X2N0bFtpXTsKLQkJY3Vycl9j bGllbnRfdHlwZSA9IGRwdV9jcnRjX2dldF9jbGllbnRfdHlwZShjcnRjKTsKKwlid19zdW1fb2Zf aW50ZnMgPSBkcHVfY3N0YXRlLT5uZXdfcGVyZi5id19jdGw7CisJY3Vycl9jbGllbnRfdHlwZSA9 IGRwdV9jcnRjX2dldF9jbGllbnRfdHlwZShjcnRjKTsKIAotCQlkcm1fZm9yX2VhY2hfY3J0Yyh0 bXBfY3J0YywgY3J0Yy0+ZGV2KSB7Ci0JCQlpZiAoX2RwdV9jb3JlX3BlcmZfY3J0Y19pc19wb3dl cl9vbih0bXBfY3J0YykgJiYKLQkJCSAgICAoZHB1X2NydGNfZ2V0X2NsaWVudF90eXBlKHRtcF9j cnRjKSA9PQotCQkJCQkgICAgY3Vycl9jbGllbnRfdHlwZSkgJiYKLQkJCSAgICAodG1wX2NydGMg IT0gY3J0YykpIHsKLQkJCQlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKnRtcF9jc3RhdGUgPQotCQkJ CQl0b19kcHVfY3J0Y19zdGF0ZSh0bXBfY3J0Yy0+c3RhdGUpOwotCi0JCQkJRFBVX0RFQlVHKCJj cnRjOiVkIGJ3OiVsbHUgY3RybDolZFxuIiwKLQkJCQkJdG1wX2NydGMtPmJhc2UuaWQsCi0JCQkJ CXRtcF9jc3RhdGUtPm5ld19wZXJmLmJ3X2N0bFtpXSwKLQkJCQkJdG1wX2NzdGF0ZS0+YndfY29u dHJvbCk7Ci0JCQkJLyoKLQkJCQkgKiBGb3IgYncgY2hlY2sgb25seSB1c2UgdGhlIGJ3IGlmIHRo ZQotCQkJCSAqIGF0b21pYyBwcm9wZXJ0eSBoYXMgYmVlbiBhbHJlYWR5IHNldAotCQkJCSAqLwot CQkJCWlmICh0bXBfY3N0YXRlLT5id19jb250cm9sKQotCQkJCQlid19zdW1fb2ZfaW50ZnMgKz0K LQkJCQkJCXRtcF9jc3RhdGUtPm5ld19wZXJmLmJ3X2N0bFtpXTsKLQkJCX0KKwlkcm1fZm9yX2Vh Y2hfY3J0Yyh0bXBfY3J0YywgY3J0Yy0+ZGV2KSB7CisJCWlmIChfZHB1X2NvcmVfcGVyZl9jcnRj X2lzX3Bvd2VyX29uKHRtcF9jcnRjKSAmJgorCQkgICAgKGRwdV9jcnRjX2dldF9jbGllbnRfdHlw ZSh0bXBfY3J0YykgPT0KKwkJCQljdXJyX2NsaWVudF90eXBlKSAmJiAodG1wX2NydGMgIT0gY3J0 YykpIHsKKwkJCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqdG1wX2NzdGF0ZSA9CisJCQkJdG9fZHB1 X2NydGNfc3RhdGUodG1wX2NydGMtPnN0YXRlKTsKKworCQkJRFBVX0RFQlVHKCJjcnRjOiVkIGJ3 OiVsbHUgY3RybDolZFxuIiwKKwkJCQl0bXBfY3J0Yy0+YmFzZS5pZCwgdG1wX2NzdGF0ZS0+bmV3 X3BlcmYuYndfY3RsLAorCQkJCXRtcF9jc3RhdGUtPmJ3X2NvbnRyb2wpOworCQkJLyoKKwkJCSAq IEZvciBidyBjaGVjayBvbmx5IHVzZSB0aGUgYncgaWYgdGhlCisJCQkgKiBhdG9taWMgcHJvcGVy dHkgaGFzIGJlZW4gYWxyZWFkeSBzZXQKKwkJCSAqLworCQkJaWYgKHRtcF9jc3RhdGUtPmJ3X2Nv bnRyb2wpCisJCQkJYndfc3VtX29mX2ludGZzICs9IHRtcF9jc3RhdGUtPm5ld19wZXJmLmJ3X2N0 bDsKIAkJfQogCiAJCS8qIGNvbnZlcnQgYmFuZHdpZHRoIHRvIGtiICovCkBAIC0yMTMsOSArMTk0 LDkgQEAgaW50IGRwdV9jb3JlX3BlcmZfY3J0Y19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMs CiB9CiAKIHN0YXRpYyBpbnQgX2RwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGVfYnVzKHN0cnVjdCBk cHVfa21zICprbXMsCi0JCXN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJ1c19pZCkKKwkJc3Ry dWN0IGRybV9jcnRjICpjcnRjKQogewotCXN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcyBwZXJm ID0geyB7IDAgfSB9OworCXN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcyBwZXJmID0geyAwIH07 CiAJZW51bSBkcHVfY3J0Y19jbGllbnRfdHlwZSBjdXJyX2NsaWVudF90eXBlCiAJCQkJCT0gZHB1 X2NydGNfZ2V0X2NsaWVudF90eXBlKGNydGMpOwogCXN0cnVjdCBkcm1fY3J0YyAqdG1wX2NydGM7 CkBAIC0yMjgsMTMgKzIwOSwxMSBAQCBzdGF0aWMgaW50IF9kcHVfY29yZV9wZXJmX2NydGNfdXBk YXRlX2J1cyhzdHJ1Y3QgZHB1X2ttcyAqa21zLAogCQkJCWRwdV9jcnRjX2dldF9jbGllbnRfdHlw ZSh0bXBfY3J0YykpIHsKIAkJCWRwdV9jc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZSh0bXBfY3J0 Yy0+c3RhdGUpOwogCi0JCQlwZXJmLm1heF9wZXJfcGlwZV9pYltidXNfaWRdID0KLQkJCQltYXgo cGVyZi5tYXhfcGVyX3BpcGVfaWJbYnVzX2lkXSwKLQkJCQlkcHVfY3N0YXRlLT5uZXdfcGVyZi5t YXhfcGVyX3BpcGVfaWJbYnVzX2lkXSk7CisJCQlwZXJmLm1heF9wZXJfcGlwZV9pYiA9IG1heChw ZXJmLm1heF9wZXJfcGlwZV9pYiwKKwkJCQkJZHB1X2NzdGF0ZS0+bmV3X3BlcmYubWF4X3Blcl9w aXBlX2liKTsKIAotCQkJRFBVX0RFQlVHKCJjcnRjPSVkIGJ1c19pZD0lZCBidz0lbGx1XG4iLAot CQkJCXRtcF9jcnRjLT5iYXNlLmlkLCBidXNfaWQsCi0JCQkJZHB1X2NzdGF0ZS0+bmV3X3BlcmYu YndfY3RsW2J1c19pZF0pOworCQkJRFBVX0RFQlVHKCJjcnRjPSVkIGJ3PSVsbHVcbiIsIHRtcF9j cnRjLT5iYXNlLmlkLAorCQkJCQlkcHVfY3N0YXRlLT5uZXdfcGVyZi5id19jdGwpOwogCQl9CiAJ fQogCXJldHVybiByZXQ7CkBAIC0yNTQsNyArMjMzLDYgQEAgdm9pZCBkcHVfY29yZV9wZXJmX2Ny dGNfcmVsZWFzZV9idyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJc3RydWN0IGRwdV9jcnRjICpk cHVfY3J0YzsKIAlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGU7CiAJc3RydWN0IGRw dV9rbXMgKmttczsKLQlpbnQgaTsKIAogCWlmICghY3J0YykgewogCQlEUFVfRVJST1IoImludmFs aWQgY3J0Y1xuIik7CkBAIC0yOTAsMTAgKzI2OCw4IEBAIHZvaWQgZHB1X2NvcmVfcGVyZl9jcnRj X3JlbGVhc2VfYncoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCWlmIChrbXMtPnBlcmYuZW5hYmxl X2J3X3JlbGVhc2UpIHsKIAkJdHJhY2VfZHB1X2NtZF9yZWxlYXNlX2J3KGNydGMtPmJhc2UuaWQp OwogCQlEUFVfREVCVUcoIlJlbGVhc2UgQlcgY3J0Yz0lZFxuIiwgY3J0Yy0+YmFzZS5pZCk7Ci0J CWZvciAoaSA9IDA7IGkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKLQkJ CWRwdV9jcnRjLT5jdXJfcGVyZi5id19jdGxbaV0gPSAwOwotCQkJX2RwdV9jb3JlX3BlcmZfY3J0 Y191cGRhdGVfYnVzKGttcywgY3J0YywgaSk7Ci0JCX0KKwkJZHB1X2NydGMtPmN1cl9wZXJmLmJ3 X2N0bCA9IDA7CisJCV9kcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlX2J1cyhrbXMsIGNydGMpOwog CX0KIH0KIApAQCAtMzM2LDExICszMTIsMTAgQEAgaW50IGRwdV9jb3JlX3BlcmZfY3J0Y191cGRh dGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQlpbnQgcGFyYW1zX2NoYW5nZWQsIGJvb2wgc3Rv cF9yZXEpCiB7CiAJc3RydWN0IGRwdV9jb3JlX3BlcmZfcGFyYW1zICpuZXcsICpvbGQ7Ci0JaW50 IHVwZGF0ZV9idXMgPSAwLCB1cGRhdGVfY2xrID0gMDsKKwlib29sIHVwZGF0ZV9idXMgPSBmYWxz ZSwgdXBkYXRlX2NsayA9IGZhbHNlOwogCXU2NCBjbGtfcmF0ZSA9IDA7CiAJc3RydWN0IGRwdV9j cnRjICpkcHVfY3J0YzsKIAlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGU7Ci0JaW50 IGk7CiAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdjsKIAlzdHJ1Y3QgZHB1X2ttcyAqa21z OwogCWludCByZXQ7CkBAIC0zNjcsNjIgKzM0Miw0OSBAQCBpbnQgZHB1X2NvcmVfcGVyZl9jcnRj X3VwZGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJbmV3ID0gJmRwdV9jc3RhdGUtPm5ld19w ZXJmOwogCiAJaWYgKF9kcHVfY29yZV9wZXJmX2NydGNfaXNfcG93ZXJfb24oY3J0YykgJiYgIXN0 b3BfcmVxKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFY OyBpKyspIHsKLQkJCS8qCi0JCQkgKiBjYXNlcyBmb3IgYnVzIGJhbmR3aWR0aCB1cGRhdGUuCi0J CQkgKiAxLiBuZXcgYmFuZHdpZHRoIHZvdGUgLSAiYWIgb3IgaWIgdm90ZSIgaXMgaGlnaGVyCi0J CQkgKiAgICB0aGFuIGN1cnJlbnQgdm90ZSBmb3IgdXBkYXRlIHJlcXVlc3QuCi0JCQkgKiAyLiBu ZXcgYmFuZHdpZHRoIHZvdGUgLSAiYWIgb3IgaWIgdm90ZSIgaXMgbG93ZXIKLQkJCSAqICAgIHRo YW4gY3VycmVudCB2b3RlIGF0IGVuZCBvZiBjb21taXQgb3Igc3RvcC4KLQkJCSAqLwotCQkJaWYg KChwYXJhbXNfY2hhbmdlZCAmJiAoKG5ldy0+YndfY3RsW2ldID4KLQkJCQkJCW9sZC0+YndfY3Rs W2ldKSB8fAotCQkJCSAgKG5ldy0+bWF4X3Blcl9waXBlX2liW2ldID4KLQkJCQkJCW9sZC0+bWF4 X3Blcl9waXBlX2liW2ldKSkpIHx8Ci0JCQkgICAgKCFwYXJhbXNfY2hhbmdlZCAmJiAoKG5ldy0+ YndfY3RsW2ldIDwKLQkJCQkJCW9sZC0+YndfY3RsW2ldKSB8fAotCQkJCSAgKG5ldy0+bWF4X3Bl cl9waXBlX2liW2ldIDwKLQkJCQkJCW9sZC0+bWF4X3Blcl9waXBlX2liW2ldKSkpKSB7Ci0JCQkJ RFBVX0RFQlVHKAotCQkJCQkiY3J0Yz0lZCBwPSVkIG5ld19idz0lbGx1LG9sZF9idz0lbGx1XG4i LAotCQkJCQljcnRjLT5iYXNlLmlkLCBwYXJhbXNfY2hhbmdlZCwKLQkJCQkJbmV3LT5id19jdGxb aV0sIG9sZC0+YndfY3RsW2ldKTsKLQkJCQlvbGQtPmJ3X2N0bFtpXSA9IG5ldy0+YndfY3RsW2ld OwotCQkJCW9sZC0+bWF4X3Blcl9waXBlX2liW2ldID0KLQkJCQkJCW5ldy0+bWF4X3Blcl9waXBl X2liW2ldOwotCQkJCXVwZGF0ZV9idXMgfD0gQklUKGkpOwotCQkJfQorCQkvKgorCQkgKiBjYXNl cyBmb3IgYnVzIGJhbmR3aWR0aCB1cGRhdGUuCisJCSAqIDEuIG5ldyBiYW5kd2lkdGggdm90ZSAt ICJhYiBvciBpYiB2b3RlIiBpcyBoaWdoZXIKKwkJICogICAgdGhhbiBjdXJyZW50IHZvdGUgZm9y IHVwZGF0ZSByZXF1ZXN0LgorCQkgKiAyLiBuZXcgYmFuZHdpZHRoIHZvdGUgLSAiYWIgb3IgaWIg dm90ZSIgaXMgbG93ZXIKKwkJICogICAgdGhhbiBjdXJyZW50IHZvdGUgYXQgZW5kIG9mIGNvbW1p dCBvciBzdG9wLgorCQkgKi8KKwkJaWYgKChwYXJhbXNfY2hhbmdlZCAmJiAoKG5ldy0+YndfY3Rs ID4gb2xkLT5id19jdGwpIHx8CisJCQkobmV3LT5tYXhfcGVyX3BpcGVfaWIgPiBvbGQtPm1heF9w ZXJfcGlwZV9pYikpKQl8fAorCQkJKCFwYXJhbXNfY2hhbmdlZCAmJiAoKG5ldy0+YndfY3RsIDwg b2xkLT5id19jdGwpIHx8CisJCQkobmV3LT5tYXhfcGVyX3BpcGVfaWIgPCBvbGQtPm1heF9wZXJf cGlwZV9pYikpKSkgeworCQkJRFBVX0RFQlVHKCJjcnRjPSVkIHA9JWQgbmV3X2J3PSVsbHUsb2xk X2J3PSVsbHVcbiIsCisJCQkJY3J0Yy0+YmFzZS5pZCwgcGFyYW1zX2NoYW5nZWQsCisJCQkJbmV3 LT5id19jdGwsIG9sZC0+YndfY3RsKTsKKwkJCW9sZC0+YndfY3RsID0gbmV3LT5id19jdGw7CisJ CQlvbGQtPm1heF9wZXJfcGlwZV9pYiA9IG5ldy0+bWF4X3Blcl9waXBlX2liOworCQkJdXBkYXRl X2J1cyA9IHRydWU7CiAJCX0KIAogCQlpZiAoKHBhcmFtc19jaGFuZ2VkICYmCi0JCQkJKG5ldy0+ Y29yZV9jbGtfcmF0ZSA+IG9sZC0+Y29yZV9jbGtfcmF0ZSkpIHx8Ci0JCQkJKCFwYXJhbXNfY2hh bmdlZCAmJgotCQkJCShuZXctPmNvcmVfY2xrX3JhdGUgPCBvbGQtPmNvcmVfY2xrX3JhdGUpKSkg eworCQkJKG5ldy0+Y29yZV9jbGtfcmF0ZSA+IG9sZC0+Y29yZV9jbGtfcmF0ZSkpIHx8CisJCQko IXBhcmFtc19jaGFuZ2VkICYmCisJCQkobmV3LT5jb3JlX2Nsa19yYXRlIDwgb2xkLT5jb3JlX2Ns a19yYXRlKSkpIHsKIAkJCW9sZC0+Y29yZV9jbGtfcmF0ZSA9IG5ldy0+Y29yZV9jbGtfcmF0ZTsK LQkJCXVwZGF0ZV9jbGsgPSAxOworCQkJdXBkYXRlX2NsayA9IHRydWU7CiAJCX0KIAl9IGVsc2Ug ewogCQlEUFVfREVCVUcoImNydGM9JWQgZGlzYWJsZVxuIiwgY3J0Yy0+YmFzZS5pZCk7CiAJCW1l bXNldChvbGQsIDAsIHNpemVvZigqb2xkKSk7CiAJCW1lbXNldChuZXcsIDAsIHNpemVvZigqbmV3 KSk7Ci0JCXVwZGF0ZV9idXMgPSB+MDsKLQkJdXBkYXRlX2NsayA9IDE7CisJCXVwZGF0ZV9idXMg PSB0cnVlOworCQl1cGRhdGVfY2xrID0gdHJ1ZTsKIAl9Ci0JdHJhY2VfZHB1X3BlcmZfY3J0Y191 cGRhdGUoY3J0Yy0+YmFzZS5pZCwKLQkJCQluZXctPmJ3X2N0bFtEUFVfUE9XRVJfSEFORExFX0RC VVNfSURfTU5PQ10sCi0JCQkJbmV3LT5id19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0xM Q0NdLAotCQkJCW5ldy0+YndfY3RsW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9FQkldLAotCQkJ CW5ldy0+Y29yZV9jbGtfcmF0ZSwgc3RvcF9yZXEsCi0JCQkJdXBkYXRlX2J1cywgdXBkYXRlX2Ns ayk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWDsgaSsr KSB7Ci0JCWlmICh1cGRhdGVfYnVzICYgQklUKGkpKSB7Ci0JCQlyZXQgPSBfZHB1X2NvcmVfcGVy Zl9jcnRjX3VwZGF0ZV9idXMoa21zLCBjcnRjLCBpKTsKLQkJCWlmIChyZXQpIHsKLQkJCQlEUFVf RVJST1IoImNydGMtJWQ6IGZhaWxlZCB0byB1cGRhdGUgYncgdm90ZSBmb3IgYnVzLSVkXG4iLAot CQkJCQkgIGNydGMtPmJhc2UuaWQsIGkpOwotCQkJCXJldHVybiByZXQ7Ci0JCQl9CisKKwl0cmFj ZV9kcHVfcGVyZl9jcnRjX3VwZGF0ZShjcnRjLT5iYXNlLmlkLCBuZXctPmJ3X2N0bCwKKwkJbmV3 LT5jb3JlX2Nsa19yYXRlLCBzdG9wX3JlcSwgdXBkYXRlX2J1cywgdXBkYXRlX2Nsayk7CisKKwlp ZiAodXBkYXRlX2J1cykgeworCQlyZXQgPSBfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9idXMo a21zLCBjcnRjKTsKKwkJaWYgKHJldCkgeworCQkJRFBVX0VSUk9SKCJjcnRjLSVkOiBmYWlsZWQg dG8gdXBkYXRlIGJ1cyBidyB2b3RlXG4iLAorCQkJCSAgY3J0Yy0+YmFzZS5pZCk7CisJCQlyZXR1 cm4gcmV0OwogCQl9CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY29yZV9wZXJmLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf Y29yZV9wZXJmLmgKaW5kZXggZmJjYmUwYy4uMGZiMjc2OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuaApAQCAtMzAsOCArMzAsOCBAQAogICogQGNv cmVfY2xrX3JhdGU6IGNvcmUgY2xvY2sgcmF0ZSByZXF1ZXN0CiAgKi8KIHN0cnVjdCBkcHVfY29y ZV9wZXJmX3BhcmFtcyB7Ci0JdTY0IG1heF9wZXJfcGlwZV9pYltEUFVfUE9XRVJfSEFORExFX0RC VVNfSURfTUFYXTsKLQl1NjQgYndfY3RsW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVhdOwor CXU2NCBtYXhfcGVyX3BpcGVfaWI7CisJdTY0IGJ3X2N0bDsKIAl1NjQgY29yZV9jbGtfcmF0ZTsK IH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRj LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCmluZGV4IGQyN2Vh MmEuLmQzNGVjOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwpA QCAtMTM4OSwyMSArMTM4OSwxNCBAQCBzdGF0aWMgaW50IGRwdV9jcnRjX2RlYnVnZnNfc3RhdGVf c2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnYpCiB7CiAJc3RydWN0IGRybV9jcnRjICpj cnRjID0gKHN0cnVjdCBkcm1fY3J0YyAqKSBzLT5wcml2YXRlOwogCXN0cnVjdCBkcHVfY3J0YyAq ZHB1X2NydGMgPSB0b19kcHVfY3J0YyhjcnRjKTsKLQlpbnQgaTsKIAogCXNlcV9wcmludGYocywg ImNsaWVudCB0eXBlOiAlZFxuIiwgZHB1X2NydGNfZ2V0X2NsaWVudF90eXBlKGNydGMpKTsKIAlz ZXFfcHJpbnRmKHMsICJpbnRmX21vZGU6ICVkXG4iLCBkcHVfY3J0Y19nZXRfaW50Zl9tb2RlKGNy dGMpKTsKIAlzZXFfcHJpbnRmKHMsICJjb3JlX2Nsa19yYXRlOiAlbGx1XG4iLAogCQkJZHB1X2Ny dGMtPmN1cl9wZXJmLmNvcmVfY2xrX3JhdGUpOwotCWZvciAoaSA9IERQVV9QT1dFUl9IQU5ETEVf REJVU19JRF9NTk9DOwotCQkJaSA8IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVg7IGkrKykg ewotCQlzZXFfcHJpbnRmKHMsICJid19jdGxbJXNdOiAlbGx1XG4iLAotCQkJCWRwdV9wb3dlcl9o YW5kbGVfZ2V0X2RidXNfbmFtZShpKSwKLQkJCQlkcHVfY3J0Yy0+Y3VyX3BlcmYuYndfY3RsW2ld KTsKLQkJc2VxX3ByaW50ZihzLCAibWF4X3Blcl9waXBlX2liWyVzXTogJWxsdVxuIiwKLQkJCQlk cHVfcG93ZXJfaGFuZGxlX2dldF9kYnVzX25hbWUoaSksCi0JCQkJZHB1X2NydGMtPmN1cl9wZXJm Lm1heF9wZXJfcGlwZV9pYltpXSk7Ci0JfQorCXNlcV9wcmludGYocywgImJ3X2N0bDogJWxsdVxu IiwgZHB1X2NydGMtPmN1cl9wZXJmLmJ3X2N0bCk7CisJc2VxX3ByaW50ZihzLCAibWF4X3Blcl9w aXBlX2liOiAlbGx1XG4iLAorCQkJCWRwdV9jcnRjLT5jdXJfcGVyZi5tYXhfcGVyX3BpcGVfaWIp OwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfcG93ZXJfaGFuZGxlLmMKaW5kZXggZmMxNDExNi4uZDU4ZDAxNSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuYwpAQCAtMjQsMjAgKzI0 LDYgQEAKICNpbmNsdWRlICJkcHVfcG93ZXJfaGFuZGxlLmgiCiAjaW5jbHVkZSAiZHB1X3RyYWNl LmgiCiAKLXN0YXRpYyBjb25zdCBjaGFyICpkYXRhX2J1c19uYW1lW0RQVV9QT1dFUl9IQU5ETEVf REJVU19JRF9NQVhdID0gewotCVtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQ10gPSAicWNv bSxkcHUtZGF0YS1idXMiLAotCVtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTExDQ10gPSAicWNv bSxkcHUtbGxjYy1idXMiLAotCVtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfRUJJXSA9ICJxY29t LGRwdS1lYmktYnVzIiwKLX07Ci0KLWNvbnN0IGNoYXIgKmRwdV9wb3dlcl9oYW5kbGVfZ2V0X2Ri dXNfbmFtZSh1MzIgYnVzX2lkKQotewotCWlmIChidXNfaWQgPCBEUFVfUE9XRVJfSEFORExFX0RC VVNfSURfTUFYKQotCQlyZXR1cm4gZGF0YV9idXNfbmFtZVtidXNfaWRdOwotCi0JcmV0dXJuIE5V TEw7Ci19Ci0KIHN0YXRpYyB2b2lkIGRwdV9wb3dlcl9ldmVudF90cmlnZ2VyX2xvY2tlZChzdHJ1 Y3QgZHB1X3Bvd2VyX2hhbmRsZSAqcGhhbmRsZSwKIAkJdTMyIGV2ZW50X3R5cGUpCiB7CkBAIC02 Niw3ICs1Miw2IEBAIHN0cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpkcHVfcG93ZXJfY2xpZW50X2Ny ZWF0ZSgKIAogCW11dGV4X2xvY2soJnBoYW5kbGUtPnBoYW5kbGVfbG9jayk7CiAJc3RybGNweShj bGllbnQtPm5hbWUsIGNsaWVudF9uYW1lLCBNQVhfQ0xJRU5UX05BTUVfTEVOKTsKLQljbGllbnQt PnVzZWNhc2VfbmR4ID0gVk9URV9JTkRFWF9ESVNBQkxFOwogCWNsaWVudC0+aWQgPSBpZDsKIAlj bGllbnQtPmFjdGl2ZSA9IHRydWU7CiAJcHJfZGVidWcoImNsaWVudCAlcyBjcmVhdGVkOiVwSyBp ZCA6JWRcbiIsIGNsaWVudF9uYW1lLApAQCAtMTQzLDggKzEyOCw2IEBAIGludCBkcHVfcG93ZXJf cmVzb3VyY2VfZW5hYmxlKHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwaGFuZGxlLAogCXN0cnVj dCBkcHVfcG93ZXJfY2xpZW50ICpwY2xpZW50LCBib29sIGVuYWJsZSkKIHsKIAlib29sIGNoYW5n ZWQgPSBmYWxzZTsKLQl1MzIgbWF4X3VzZWNhc2VfbmR4ID0gVk9URV9JTkRFWF9ESVNBQkxFLCBw cmV2X3VzZWNhc2VfbmR4OwotCXN0cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpjbGllbnQ7CiAJdTMy IGV2ZW50X3R5cGU7CiAKIAlpZiAoIXBoYW5kbGUgfHwgIXBjbGllbnQpIHsKQEAgLTE1MywzMSAr MTM2LDE5IEBAIGludCBkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKHN0cnVjdCBkcHVfcG93ZXJf aGFuZGxlICpwaGFuZGxlLAogCX0KIAogCW11dGV4X2xvY2soJnBoYW5kbGUtPnBoYW5kbGVfbG9j ayk7Ci0JaWYgKGVuYWJsZSkKKwlpZiAoZW5hYmxlKSB7CiAJCXBjbGllbnQtPnJlZmNvdW50Kys7 Ci0JZWxzZSBpZiAocGNsaWVudC0+cmVmY291bnQpCisJCWlmIChwY2xpZW50LT5yZWZjb3VudCA9 PSAxKQorCQkJY2hhbmdlZCA9IHRydWU7CisJfSBlbHNlIGlmIChwY2xpZW50LT5yZWZjb3VudCkg ewogCQlwY2xpZW50LT5yZWZjb3VudC0tOwotCi0JaWYgKHBjbGllbnQtPnJlZmNvdW50KQotCQlw Y2xpZW50LT51c2VjYXNlX25keCA9IFZPVEVfSU5ERVhfTE9XOwotCWVsc2UKLQkJcGNsaWVudC0+ dXNlY2FzZV9uZHggPSBWT1RFX0lOREVYX0RJU0FCTEU7Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5 KGNsaWVudCwgJnBoYW5kbGUtPnBvd2VyX2NsaWVudF9jbGlzdCwgbGlzdCkgewotCQlpZiAoY2xp ZW50LT51c2VjYXNlX25keCA8IFZPVEVfSU5ERVhfTUFYICYmCi0JCSAgICBjbGllbnQtPnVzZWNh c2VfbmR4ID4gbWF4X3VzZWNhc2VfbmR4KQotCQkJbWF4X3VzZWNhc2VfbmR4ID0gY2xpZW50LT51 c2VjYXNlX25keDsKLQl9Ci0KLQlpZiAocGhhbmRsZS0+Y3VycmVudF91c2VjYXNlX25keCAhPSBt YXhfdXNlY2FzZV9uZHgpIHsKLQkJY2hhbmdlZCA9IHRydWU7Ci0JCXByZXZfdXNlY2FzZV9uZHgg PSBwaGFuZGxlLT5jdXJyZW50X3VzZWNhc2VfbmR4OwotCQlwaGFuZGxlLT5jdXJyZW50X3VzZWNh c2VfbmR4ID0gbWF4X3VzZWNhc2VfbmR4OworCQlpZiAoIXBjbGllbnQtPnJlZmNvdW50KQorCQkJ Y2hhbmdlZCA9IHRydWU7CiAJfQogCi0JcHJfZGVidWcoIiVwUzogY2hhbmdlZD0lZCBjdXJyZW50 IGlkeD0lZCByZXF1ZXN0IGNsaWVudCAlcyBpZDoldSBlbmFibGU6JWQgcmVmY291bnQ6JWRcbiIs Ci0JCV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgY2hhbmdlZCwgbWF4X3VzZWNhc2VfbmR4 LAotCQlwY2xpZW50LT5uYW1lLCBwY2xpZW50LT5pZCwgZW5hYmxlLCBwY2xpZW50LT5yZWZjb3Vu dCk7CisJcHJfZGVidWcoIiVwUzpjaGFuZ2VkPSVkIGNsaWVudCAlcyBpZDoldSBlbmFibGU6JWQg cmVmY291bnQ6JWRcbiIsCisJCV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgY2hhbmdlZCwg cGNsaWVudC0+bmFtZSwKKwkJcGNsaWVudC0+aWQsIGVuYWJsZSwgcGNsaWVudC0+cmVmY291bnQp OwogCiAJaWYgKCFjaGFuZ2VkKQogCQlnb3RvIGVuZDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuaAppbmRleCBhNjViN2EyLi5iMWE1YWU0IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxl LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5o CkBAIC0xNiwxMSArMTYsNiBAQAogCiAjZGVmaW5lIE1BWF9DTElFTlRfTkFNRV9MRU4gMTI4CiAK LSNkZWZpbmUgRFBVX1BPV0VSX0hBTkRMRV9FTkFCTEVfQlVTX0FCX1FVT1RBCTAKLSNkZWZpbmUg RFBVX1BPV0VSX0hBTkRMRV9ESVNBQkxFX0JVU19BQl9RVU9UQQkwCi0jZGVmaW5lIERQVV9QT1dF Ul9IQU5ETEVfRU5BQkxFX0JVU19JQl9RVU9UQQkxNjAwMDAwMDAwCi0jZGVmaW5lIERQVV9QT1dF Ul9IQU5ETEVfRElTQUJMRV9CVVNfSUJfUVVPVEEJMAotCiAjaW5jbHVkZSAiZHB1X2lvX3V0aWwu aCIKIAogLyogZXZlbnRzIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIHBvd2VyIGhhbmRsZXIgZW5hYmxl L2Rpc2FibGUgKi8KQEAgLTI4LDY0ICsyMywyMSBAQAogI2RlZmluZSBEUFVfUE9XRVJfRVZFTlRf RU5BQkxFCUJJVCgxKQogCiAvKioKLSAqIG1kc3NfYnVzX3ZvdGVfdHlwZTogcmVnaXN0ZXIgYnVz IHZvdGUgdHlwZQotICogVk9URV9JTkRFWF9ESVNBQkxFOiByZW1vdmVzIHRoZSBjbGllbnQgdm90 ZQotICogVk9URV9JTkRFWF9MT1c6IGtlZXBzIHRoZSBsb3dlc3Qgdm90ZSBmb3IgcmVnaXN0ZXIg YnVzCi0gKiBWT1RFX0lOREVYX01BWDogaW52YWxpZAotICovCi1lbnVtIG1kc3NfYnVzX3ZvdGVf dHlwZSB7Ci0JVk9URV9JTkRFWF9ESVNBQkxFLAotCVZPVEVfSU5ERVhfTE9XLAotCVZPVEVfSU5E RVhfTUFYLAotfTsKLQotLyoqCi0gKiBlbnVtIGRwdV9wb3dlcl9oYW5kbGVfZGF0YV9idXNfY2xp ZW50IC0gdHlwZSBvZiBheGkgYnVzIGNsaWVudHMKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RBVEFf QlVTX0NMSUVOVF9SVDogY29yZSByZWFsLXRpbWUgYnVzIGNsaWVudAotICogQERQVV9QT1dFUl9I QU5ETEVfREFUQV9CVVNfQ0xJRU5UX05SVDogY29yZSBub24tcmVhbC10aW1lIGJ1cyBjbGllbnQK LSAqIEBEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9NQVg6IG1heGltdW0gbnVtYmVy IG9mIGJ1cyBjbGllbnQgdHlwZQotICovCi1lbnVtIGRwdV9wb3dlcl9oYW5kbGVfZGF0YV9idXNf Y2xpZW50IHsKLQlEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9SVCwKLQlEUFVfUE9X RVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9OUlQsCi0JRFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JV U19DTElFTlRfTUFYCi19OwotCi0vKioKLSAqIGVudW0gRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lE IC0gZGF0YSBidXMgaWRlbnRpZmllcgotICogQERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NTk9D OiBEUFUvTU5PQyBkYXRhIGJ1cwotICogQERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9MTENDOiBN Tk9DL0xMQ0MgZGF0YSBidXMKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfRUJJOiBMTEND L0VCSSBkYXRhIGJ1cwotICovCi1lbnVtIERQVV9QT1dFUl9IQU5ETEVfREJVU19JRCB7Ci0JRFBV X1BPV0VSX0hBTkRMRV9EQlVTX0lEX01OT0MsCi0JRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0xM Q0MsCi0JRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VCSSwKLQlEUFVfUE9XRVJfSEFORExFX0RC VVNfSURfTUFYLAotfTsKLQotLyoqCiAgKiBzdHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudDogc3RvcmVz IHRoZSBwb3dlciBjbGllbnQgZm9yIGRwdSBkcml2ZXIKICAqIEBuYW1lOgluYW1lIG9mIHRoZSBj bGllbnQKLSAqIEB1c2VjYXNlX25keDogY3VycmVudCByZWdzIGJ1cyB2b3RlIHR5cGUKICAqIEBy ZWZjb3VudDoJY3VycmVudCByZWZjb3VudCBpZiBtdWx0aXBsZSBtb2R1bGVzIGFyZSB1c2luZyBz YW1lCiAgKiAgICAgICAgICAgICAgc2FtZSBjbGllbnQgZm9yIGVuYWJsZS9kaXNhYmxlLiBQb3dl ciBtb2R1bGUgd2lsbAogICogICAgICAgICAgICAgIGFnZ3JlZ2F0ZSB0aGUgcmVmY291bnQgYW5k IHZvdGUgYWNjb3JkaW5nbHkgZm9yIHRoaXMKICAqICAgICAgICAgICAgICBjbGllbnQuCiAgKiBA aWQ6CQlhc3NpZ25lZCBkdXJpbmcgY3JlYXRlLiBoZWxwcyBmb3IgZGVidWdnaW5nLgogICogQGxp c3Q6CWxpc3QgdG8gYXR0YWNoIHBvd2VyIGhhbmRsZSBtYXN0ZXIgbGlzdAotICogQGFiOiAgICAg ICAgIGFyYml0cmF0ZWQgYmFuZHdpZHRoIGZvciBlYWNoIGJ1cyBjbGllbnQKLSAqIEBpYjogICAg ICAgICBpbnN0YW50YW5lb3VzIGJhbmR3aWR0aCBmb3IgZWFjaCBidXMgY2xpZW50CiAgKiBAYWN0 aXZlOglpbmlkY2F0ZXMgdGhlIHN0YXRlIG9mIGRwdSBwb3dlciBoYW5kbGUKICAqLwogc3RydWN0 IGRwdV9wb3dlcl9jbGllbnQgewogCWNoYXIgbmFtZVtNQVhfQ0xJRU5UX05BTUVfTEVOXTsKLQlz aG9ydCB1c2VjYXNlX25keDsKIAlzaG9ydCByZWZjb3VudDsKIAl1MzIgaWQ7CiAJc3RydWN0IGxp c3RfaGVhZCBsaXN0OwotCXU2NCBhYltEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9N QVhdOwotCXU2NCBpYltEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9NQVhdOwogCWJv b2wgYWN0aXZlOwogfTsKIApAQCAtMTEyLDE0ICs2NCwxMiBAQCBzdHJ1Y3QgZHB1X3Bvd2VyX2V2 ZW50IHsKICAqIEBjbGllbnRfY2xpc3Q6IG1hc3RlciBsaXN0IHRvIHN0b3JlIGFsbCBjbGllbnRz CiAgKiBAcGhhbmRsZV9sb2NrOiBsb2NrIHRvIHN5bmNocm9uaXplIHRoZSBlbmFibGUvZGlzYWJs ZQogICogQGRldjogcG9pbnRlciB0byBkZXZpY2Ugc3RydWN0dXJlCi0gKiBAdXNlY2FzZV9uZHg6 IGN1cnJlbnQgdXNlY2FzZSBpbmRleAogICogQGV2ZW50X2xpc3Q6IGN1cnJlbnQgcG93ZXIgaGFu ZGxlIGV2ZW50IGxpc3QKICAqLwogc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgewogCXN0cnVjdCBs aXN0X2hlYWQgcG93ZXJfY2xpZW50X2NsaXN0OwogCXN0cnVjdCBtdXRleCBwaGFuZGxlX2xvY2s7 CiAJc3RydWN0IGRldmljZSAqZGV2OwotCXUzMiBjdXJyZW50X3VzZWNhc2VfbmR4OwogCXN0cnVj dCBsaXN0X2hlYWQgZXZlbnRfbGlzdDsKIH07CiAKQEAgLTE3MywxNyArMTIzLDYgQEAgaW50IGRw dV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBkYXRhLAog CXN0cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpwY2xpZW50LCBib29sIGVuYWJsZSk7CiAKIC8qKgot ICogZHB1X3Bvd2VyX2RhdGFfYnVzX2JhbmR3aWR0aF9jdHJsKCkgLSBjb250cm9sIGRhdGEgYnVz IGJhbmR3aWR0aCBlbmFibGUKLSAqIEBwaGFuZGxlOiAgcG93ZXIgaGFuZGxlIGNvbnRhaW5pbmcg dGhlIHJlc291cmNlcwotICogQGNsaWVudDogY2xpZW50IGluZm9ybWF0aW9uIHRvIGJhbmR3aWR0 aCBjb250cm9sCi0gKiBAZW5hYmxlOiB0cnVlIHRvIGVuYWJsZSBiYW5kd2lkdGggZm9yIGRhdGEg YmFzZQotICoKLSAqIFJldHVybjogbm9uZQotICovCi12b2lkIGRwdV9wb3dlcl9kYXRhX2J1c19i YW5kd2lkdGhfY3RybChzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRsZSAqcGhhbmRsZSwKLQkJc3RydWN0 IGRwdV9wb3dlcl9jbGllbnQgKnBjbGllbnQsIGludCBlbmFibGUpOwotCi0vKioKICAqIGRwdV9w b3dlcl9oYW5kbGVfcmVnaXN0ZXJfZXZlbnQgLSByZWdpc3RlciBhIGNhbGxiYWNrIGZ1bmN0aW9u IGZvciBhbiBldmVudC4KICAqCUNsaWVudHMgY2FuIHJlZ2lzdGVyIGZvciBtdWx0aXBsZSBldmVu dHMgd2l0aCBhIHNpbmdsZSByZWdpc3Rlci4KICAqCUFueSBibG9jayB3aXRoIGFjY2VzcyB0byBw aGFuZGxlIGNhbiByZWdpc3RlciBmb3IgdGhlIGV2ZW50CkBAIC0yMDcsMTEgKzE0Niw0IEBAIHN0 cnVjdCBkcHVfcG93ZXJfZXZlbnQgKmRwdV9wb3dlcl9oYW5kbGVfcmVnaXN0ZXJfZXZlbnQoCiB2 b2lkIGRwdV9wb3dlcl9oYW5kbGVfdW5yZWdpc3Rlcl9ldmVudChzdHJ1Y3QgZHB1X3Bvd2VyX2hh bmRsZSAqcGhhbmRsZSwKIAkJc3RydWN0IGRwdV9wb3dlcl9ldmVudCAqZXZlbnQpOwogCi0vKioK LSAqIGRwdV9wb3dlcl9oYW5kbGVfZ2V0X2RidXNfbmFtZSAtIGdldCBuYW1lIG9mIGdpdmVuIGRh dGEgYnVzIGlkZW50aWZpZXIKLSAqIEBidXNfaWQ6CWRhdGEgYnVzIGlkZW50aWZpZXIKLSAqIFJl dHVybjoJUG9pbnRlciB0byBuYW1lIHN0cmluZyBpZiBzdWNjZXNzOyBOVUxMIG90aGVyd2lzZQot ICovCi1jb25zdCBjaGFyICpkcHVfcG93ZXJfaGFuZGxlX2dldF9kYnVzX25hbWUodTMyIGJ1c19p ZCk7Ci0KICNlbmRpZiAvKiBfRFBVX1BPV0VSX0hBTkRMRV9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmggYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfdHJhY2UuaAppbmRleCAwYzEyMmUxLi43YzhhOTJkIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfdHJhY2UuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfdHJhY2UuaApAQCAtMTY3LDE2ICsxNjcsMTIg QEAKICkKIAogVFJBQ0VfRVZFTlQoZHB1X3BlcmZfY3J0Y191cGRhdGUsCi0JVFBfUFJPVE8odTMy IGNydGMsIHU2NCBid19jdGxfbW5vYywgdTY0IGJ3X2N0bF9sbGNjLAotCQkJdTY0IGJ3X2N0bF9l YmksIHUzMiBjb3JlX2Nsa19yYXRlLAotCQkJYm9vbCBzdG9wX3JlcSwgdTMyIHVwZGF0ZV9idXMs IHUzMiB1cGRhdGVfY2xrKSwKLQlUUF9BUkdTKGNydGMsIGJ3X2N0bF9tbm9jLCBid19jdGxfbGxj YywgYndfY3RsX2ViaSwgY29yZV9jbGtfcmF0ZSwKLQkJc3RvcF9yZXEsIHVwZGF0ZV9idXMsIHVw ZGF0ZV9jbGspLAorCVRQX1BST1RPKHUzMiBjcnRjLCB1NjQgYndfY3RsLCB1MzIgY29yZV9jbGtf cmF0ZSwKKwkJCWJvb2wgc3RvcF9yZXEsIGJvb2wgdXBkYXRlX2J1cywgYm9vbCB1cGRhdGVfY2xr KSwKKwlUUF9BUkdTKGNydGMsIGJ3X2N0bCwgY29yZV9jbGtfcmF0ZSwgc3RvcF9yZXEsIHVwZGF0 ZV9idXMsIHVwZGF0ZV9jbGspLAogCVRQX1NUUlVDVF9fZW50cnkoCiAJCQlfX2ZpZWxkKHUzMiwg Y3J0YykKLQkJCV9fZmllbGQodTY0LCBid19jdGxfbW5vYykKLQkJCV9fZmllbGQodTY0LCBid19j dGxfbGxjYykKLQkJCV9fZmllbGQodTY0LCBid19jdGxfZWJpKQorCQkJX19maWVsZCh1NjQsIGJ3 X2N0bCkKIAkJCV9fZmllbGQodTMyLCBjb3JlX2Nsa19yYXRlKQogCQkJX19maWVsZChib29sLCBz dG9wX3JlcSkKIAkJCV9fZmllbGQodTMyLCB1cGRhdGVfYnVzKQpAQCAtMTg0LDIwICsxODAsMTYg QEAKIAkpLAogCVRQX2Zhc3RfYXNzaWduKAogCQkJX19lbnRyeS0+Y3J0YyA9IGNydGM7Ci0JCQlf X2VudHJ5LT5id19jdGxfbW5vYyA9IGJ3X2N0bF9tbm9jOwotCQkJX19lbnRyeS0+YndfY3RsX2xs Y2MgPSBid19jdGxfbGxjYzsKLQkJCV9fZW50cnktPmJ3X2N0bF9lYmkgPSBid19jdGxfZWJpOwor CQkJX19lbnRyeS0+YndfY3RsID0gYndfY3RsOwogCQkJX19lbnRyeS0+Y29yZV9jbGtfcmF0ZSA9 IGNvcmVfY2xrX3JhdGU7CiAJCQlfX2VudHJ5LT5zdG9wX3JlcSA9IHN0b3BfcmVxOwogCQkJX19l bnRyeS0+dXBkYXRlX2J1cyA9IHVwZGF0ZV9idXM7CiAJCQlfX2VudHJ5LT51cGRhdGVfY2xrID0g dXBkYXRlX2NsazsKIAkpLAogCSBUUF9wcmludGsoCi0JCSJjcnRjPSVkIGJ3X21ub2M9JWxsdSBi d19sbGNjPSVsbHUgYndfZWJpPSVsbHUgY2xrX3JhdGU9JXUgc3RvcF9yZXE9JWQgdV9idXM9JWQg dV9jbGs9JWQiLAorCQkiY3J0Yz0lZCBid19jdGw9JWxsdSBjbGtfcmF0ZT0ldSBzdG9wX3JlcT0l ZCB1X2J1cz0lZCB1X2Nsaz0lZCIsCiAJCQlfX2VudHJ5LT5jcnRjLAotCQkJX19lbnRyeS0+Yndf Y3RsX21ub2MsCi0JCQlfX2VudHJ5LT5id19jdGxfbGxjYywKLQkJCV9fZW50cnktPmJ3X2N0bF9l YmksCisJCQlfX2VudHJ5LT5id19jdGwsCiAJCQlfX2VudHJ5LT5jb3JlX2Nsa19yYXRlLAogCQkJ X19lbnRyeS0+c3RvcF9yZXEsCiAJCQlfX2VudHJ5LT51cGRhdGVfYnVzLAotLSAKVGhlIFF1YWxj b21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9y YSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxp bmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==