From mboxrd@z Thu Jan 1 00:00:00 1970 From: Huang Rui Subject: [PATCH 079/138] drm/amd/powerplay: implement sysfs of amdgpu_get_busy_percent for smu11 Date: Fri, 25 Jan 2019 18:24:46 +0800 Message-ID: <1548411945-12396-80-git-send-email-ray.huang@amd.com> References: <1548411945-12396-1-git-send-email-ray.huang@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1548411945-12396-1-git-send-email-ray.huang-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Likun Gao , Kevin Wang , Chengming Gui RnJvbTogS2V2aW4gV2FuZyA8S2V2aW4xLldhbmdAYW1kLmNvbT4KCmFkZCBpbnRlcmZhY2UgYW1k Z3B1X2dldF9idXN5X3BlcmNlbnQgZm9yIHNtdTExCgpTaWduZWQtb2ZmLWJ5OiBLZXZpbiBXYW5n IDxLZXZpbjEuV2FuZ0BhbWQuY29tPgpSZXZpZXdlZC1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdA YW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGVidWdmcy5j ICAgIHwgIDcgKystCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHBtLmggICAg ICAgIHwgIDUgKy0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYyAgICAg ICAgIHwgNjIgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv cG93ZXJwbGF5L2luYy9hbWRncHVfc211LmggfCAgNSArKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQv cG93ZXJwbGF5L3NtdV92MTFfMC5jICAgICAgfCA0MCArKysrKysrKysrKysrKysrKwogNSBmaWxl cyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCA0NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGVidWdmcy5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RlYnVnZnMuYwppbmRleCBkZDlhNGZiLi4zNjQzMDUy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGVidWdmcy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZWJ1Z2ZzLmMKQEAgLTU3 MSwxMCArNTcxLDkgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2RlYnVnZnNfc2Vuc29yX3JlYWQo c3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpidWYsCiAJaWR4ID0gKnBvcyA+PiAyOwogCiAJ dmFsdWVzaXplID0gc2l6ZW9mKHZhbHVlcyk7Ci0JaWYgKGFkZXYtPnBvd2VycGxheS5wcF9mdW5j cyAmJiBhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnJlYWRfc2Vuc29yKQotCQlyID0gYW1kZ3B1 X2RwbV9yZWFkX3NlbnNvcihhZGV2LCBpZHgsICZ2YWx1ZXNbMF0sICZ2YWx1ZXNpemUpOwotCWVs c2UKLQkJcmV0dXJuIC1FSU5WQUw7CisJciA9IGFtZGdwdV9kcG1fcmVhZF9zZW5zb3IoYWRldiwg aWR4LCAmdmFsdWVzWzBdLCAmdmFsdWVzaXplKTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CiAKIAlp ZiAoc2l6ZSA+IHZhbHVlc2l6ZSkKIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHBtLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZHBtLmgKaW5kZXggMmY2MWU5ZS4uYzg3NGUzMCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RwbS5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcG0uaApAQCAtMjYwLDkgKzI2MCw2IEBAIGVudW0gYW1k Z3B1X3BjaWVfZ2VuIHsKICNkZWZpbmUgYW1kZ3B1X2RwbV9lbmFibGVfYmFwbShhZGV2LCBlKSBc CiAJCSgoYWRldiktPnBvd2VycGxheS5wcF9mdW5jcy0+ZW5hYmxlX2JhcG0oKGFkZXYpLT5wb3dl cnBsYXkucHBfaGFuZGxlLCAoZSkpKQogCi0jZGVmaW5lIGFtZGdwdV9kcG1fcmVhZF9zZW5zb3Io YWRldiwgaWR4LCB2YWx1ZSwgc2l6ZSkgXAotCQkoKGFkZXYpLT5wb3dlcnBsYXkucHBfZnVuY3Mt PnJlYWRfc2Vuc29yKChhZGV2KS0+cG93ZXJwbGF5LnBwX2hhbmRsZSwgKGlkeCksICh2YWx1ZSks IChzaXplKSkpCi0KICNkZWZpbmUgYW1kZ3B1X2RwbV9zZXRfZmFuX2NvbnRyb2xfbW9kZShhZGV2 LCBtKSBcCiAJCSgoYWRldiktPnBvd2VycGxheS5wcF9mdW5jcy0+c2V0X2Zhbl9jb250cm9sX21v ZGUoKGFkZXYpLT5wb3dlcnBsYXkucHBfaGFuZGxlLCAobSkpKQogCkBAIC00ODYsNiArNDgzLDgg QEAgdm9pZCBhbWRncHVfZHBtX3ByaW50X3BzX3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwKIHUzMiBhbWRncHVfZHBtX2dldF92YmxhbmtfdGltZShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldik7CiB1MzIgYW1kZ3B1X2RwbV9nZXRfdnJlZnJlc2goc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpOwogdm9pZCBhbWRncHVfZHBtX2dldF9hY3RpdmVfZGlzcGxheXMoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpOworaW50IGFtZGdwdV9kcG1fcmVhZF9zZW5zb3Ioc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsIGVudW0gYW1kX3BwX3NlbnNvcnMgc2Vuc29yLAorCQkJICAgdm9p ZCAqZGF0YSwgdWludDMyX3QgKnNpemUpOwogYm9vbCBhbWRncHVfaXNfdXZkX3N0YXRlKHUzMiBj bGFzcywgdTMyIGNsYXNzMik7CiB2b2lkIGFtZGdwdV9jYWxjdWxhdGVfdV9hbmRfcCh1MzIgaSwg dTMyIHJfYywgdTMyIHBfYiwKIAkJCSAgICAgIHUzMiAqcCwgdTMyICp1KTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3BtLmMKaW5kZXggNjI2MGYwNS4uZGU2N2RkZSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BtLmMKQEAgLTgxLDYgKzgxLDI3IEBAIHZvaWQgYW1k Z3B1X3BtX2FjcGlfZXZlbnRfaGFuZGxlcihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl9 CiB9CiAKK2ludCBhbWRncHVfZHBtX3JlYWRfc2Vuc29yKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LCBlbnVtIGFtZF9wcF9zZW5zb3JzIHNlbnNvciwKKwkJCSAgIHZvaWQgKmRhdGEsIHVpbnQz Ml90ICpzaXplKQoreworCWludCByZXQgPSAwOworCisJaWYgKCFkYXRhIHx8ICFzaXplKQorCQly ZXR1cm4gLUVJTlZBTDsKKworCWlmIChpc19zdXBwb3J0X3N3X3NtdShhZGV2KSkKKwkJcmV0ID0g c211X3JlYWRfc2Vuc29yKCZhZGV2LT5zbXUsIHNlbnNvciwgZGF0YSwgc2l6ZSk7CisJZWxzZSB7 CisJCWlmIChhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MgJiYgYWRldi0+cG93ZXJwbGF5LnBwX2Z1 bmNzLT5yZWFkX3NlbnNvcikKKwkJCXJldCA9IGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcy0+cmVh ZF9zZW5zb3IoKGFkZXYpLT5wb3dlcnBsYXkucHBfaGFuZGxlLAorCQkJCQkJCQkgICAgc2Vuc29y LCBkYXRhLCBzaXplKTsKKwkJZWxzZQorCQkJcmV0ID0gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4g cmV0OworfQorCiAvKioKICAqIERPQzogcG93ZXJfZHBtX3N0YXRlCiAgKgpAQCAtMTE1MSwxNCAr MTE3MiwxMCBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfZ2V0X2J1c3lfcGVyY2VudChzdHJ1Y3Qg ZGV2aWNlICpkZXYsCiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZGV2LT5kZXZfcHJp dmF0ZTsKIAlpbnQgciwgdmFsdWUsIHNpemUgPSBzaXplb2YodmFsdWUpOwogCi0JLyogc2FuaXR5 IGNoZWNrIFBQIGlzIGVuYWJsZWQgKi8KLQlpZiAoIShhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3Mg JiYKLQkgICAgICBhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnJlYWRfc2Vuc29yKSkKLQkJcmV0 dXJuIC1FSU5WQUw7Ci0KIAkvKiByZWFkIHRoZSBJUCBidXN5IHNlbnNvciAqLwogCXIgPSBhbWRn cHVfZHBtX3JlYWRfc2Vuc29yKGFkZXYsIEFNREdQVV9QUF9TRU5TT1JfR1BVX0xPQUQsCiAJCQkJ ICAgKHZvaWQgKikmdmFsdWUsICZzaXplKTsKKwogCWlmIChyKQogCQlyZXR1cm4gcjsKIApAQCAt MTI1MiwxMSArMTI2OSw2IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9od21vbl9zaG93X3RlbXAo c3RydWN0IGRldmljZSAqZGV2LAogCSAgICAgKGRkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSAhPSBE Uk1fU1dJVENIX1BPV0VSX09OKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQkvKiBzYW5pdHkgY2hl Y2sgUFAgaXMgZW5hYmxlZCAqLwotCWlmICghKGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcyAmJgot CSAgICAgIGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcy0+cmVhZF9zZW5zb3IpKQotCQlyZXR1cm4g LUVJTlZBTDsKLQogCS8qIGdldCB0aGUgdGVtcGVyYXR1cmUgKi8KIAlyID0gYW1kZ3B1X2RwbV9y ZWFkX3NlbnNvcihhZGV2LCBBTURHUFVfUFBfU0VOU09SX0dQVV9URU1QLAogCQkJCSAgICh2b2lk ICopJnRlbXAsICZzaXplKTsKQEAgLTE0MjcsOSArMTQzOSw2IEBAIHN0YXRpYyBzc2l6ZV90IGFt ZGdwdV9od21vbl9nZXRfZmFuMV9taW4oc3RydWN0IGRldmljZSAqZGV2LAogCXUzMiBzaXplID0g c2l6ZW9mKG1pbl9ycG0pOwogCWludCByOwogCi0JaWYgKCFhZGV2LT5wb3dlcnBsYXkucHBfZnVu Y3MtPnJlYWRfc2Vuc29yKQotCQlyZXR1cm4gLUVJTlZBTDsKLQogCXIgPSBhbWRncHVfZHBtX3Jl YWRfc2Vuc29yKGFkZXYsIEFNREdQVV9QUF9TRU5TT1JfTUlOX0ZBTl9SUE0sCiAJCQkJICAgKHZv aWQgKikmbWluX3JwbSwgJnNpemUpOwogCWlmIChyKQpAQCAtMTQ0Nyw5ICsxNDU2LDYgQEAgc3Rh dGljIHNzaXplX3QgYW1kZ3B1X2h3bW9uX2dldF9mYW4xX21heChzdHJ1Y3QgZGV2aWNlICpkZXYs CiAJdTMyIHNpemUgPSBzaXplb2YobWF4X3JwbSk7CiAJaW50IHI7CiAKLQlpZiAoIWFkZXYtPnBv d2VycGxheS5wcF9mdW5jcy0+cmVhZF9zZW5zb3IpCi0JCXJldHVybiAtRUlOVkFMOwotCiAJciA9 IGFtZGdwdV9kcG1fcmVhZF9zZW5zb3IoYWRldiwgQU1ER1BVX1BQX1NFTlNPUl9NQVhfRkFOX1JQ TSwKIAkJCQkgICAodm9pZCAqKSZtYXhfcnBtLCAmc2l6ZSk7CiAJaWYgKHIpCkBAIC0xNTc0LDEx ICsxNTgwLDYgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2h3bW9uX3Nob3dfdmRkZ2Z4KHN0cnVj dCBkZXZpY2UgKmRldiwKIAkgICAgIChkZGV2LT5zd2l0Y2hfcG93ZXJfc3RhdGUgIT0gRFJNX1NX SVRDSF9QT1dFUl9PTikpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JLyogc2FuaXR5IGNoZWNrIFBQ IGlzIGVuYWJsZWQgKi8KLQlpZiAoIShhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MgJiYKLQkgICAg ICBhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnJlYWRfc2Vuc29yKSkKLQkgICAgICByZXR1cm4g LUVJTlZBTDsKLQogCS8qIGdldCB0aGUgdm9sdGFnZSAqLwogCXIgPSBhbWRncHVfZHBtX3JlYWRf c2Vuc29yKGFkZXYsIEFNREdQVV9QUF9TRU5TT1JfVkRER0ZYLAogCQkJCSAgICh2b2lkICopJnZk ZGdmeCwgJnNpemUpOwpAQCAtMTYxMywxMSArMTYxNCw2IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdw dV9od21vbl9zaG93X3ZkZG5iKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkgICAgIChkZGV2LT5zd2l0 Y2hfcG93ZXJfc3RhdGUgIT0gRFJNX1NXSVRDSF9QT1dFUl9PTikpCiAJCXJldHVybiAtRUlOVkFM OwogCi0JLyogc2FuaXR5IGNoZWNrIFBQIGlzIGVuYWJsZWQgKi8KLQlpZiAoIShhZGV2LT5wb3dl cnBsYXkucHBfZnVuY3MgJiYKLQkgICAgICBhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnJlYWRf c2Vuc29yKSkKLQkgICAgICByZXR1cm4gLUVJTlZBTDsKLQogCS8qIGdldCB0aGUgdm9sdGFnZSAq LwogCXIgPSBhbWRncHVfZHBtX3JlYWRfc2Vuc29yKGFkZXYsIEFNREdQVV9QUF9TRU5TT1JfVkRE TkIsCiAJCQkJICAgKHZvaWQgKikmdmRkbmIsICZzaXplKTsKQEAgLTE2NDksMTEgKzE2NDUsNiBA QCBzdGF0aWMgc3NpemVfdCBhbWRncHVfaHdtb25fc2hvd19wb3dlcl9hdmcoc3RydWN0IGRldmlj ZSAqZGV2LAogCSAgICAgKGRkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSAhPSBEUk1fU1dJVENIX1BP V0VSX09OKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQkvKiBzYW5pdHkgY2hlY2sgUFAgaXMgZW5h YmxlZCAqLwotCWlmICghKGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcyAmJgotCSAgICAgIGFkZXYt PnBvd2VycGxheS5wcF9mdW5jcy0+cmVhZF9zZW5zb3IpKQotCSAgICAgIHJldHVybiAtRUlOVkFM OwotCiAJLyogZ2V0IHRoZSB2b2x0YWdlICovCiAJciA9IGFtZGdwdV9kcG1fcmVhZF9zZW5zb3Io YWRldiwgQU1ER1BVX1BQX1NFTlNPUl9HUFVfUE9XRVIsCiAJCQkJICAgKHZvaWQgKikmcXVlcnks ICZzaXplKTsKQEAgLTIwNDMsOSArMjAzNCw3IEBAIHZvaWQgYW1kZ3B1X2RwbV90aGVybWFsX3dv cmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJaWYgKCFhZGV2LT5wbS5kcG1f ZW5hYmxlZCkKIAkJcmV0dXJuOwogCi0JaWYgKGFkZXYtPnBvd2VycGxheS5wcF9mdW5jcyAmJgot CSAgICBhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3MtPnJlYWRfc2Vuc29yICYmCi0JICAgICFhbWRn cHVfZHBtX3JlYWRfc2Vuc29yKGFkZXYsIEFNREdQVV9QUF9TRU5TT1JfR1BVX1RFTVAsCisJaWYg KCFhbWRncHVfZHBtX3JlYWRfc2Vuc29yKGFkZXYsIEFNREdQVV9QUF9TRU5TT1JfR1BVX1RFTVAs CiAJCQkJICAgICh2b2lkICopJnRlbXAsICZzaXplKSkgewogCQlpZiAodGVtcCA8IGFkZXYtPnBt LmRwbS50aGVybWFsLm1pbl90ZW1wKQogCQkJLyogc3dpdGNoIGJhY2sgdGhlIHVzZXIgc3RhdGUg Ki8KQEAgLTI1NTcsMTEgKzI1NDYsNiBAQCBzdGF0aWMgaW50IGFtZGdwdV9kZWJ1Z2ZzX3BtX2lu Zm9fcHAoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYQogCXVpbnQz Ml90IHF1ZXJ5ID0gMDsKIAlpbnQgc2l6ZTsKIAotCS8qIHNhbml0eSBjaGVjayBQUCBpcyBlbmFi bGVkICovCi0JaWYgKCEoYWRldi0+cG93ZXJwbGF5LnBwX2Z1bmNzICYmCi0JICAgICAgYWRldi0+ cG93ZXJwbGF5LnBwX2Z1bmNzLT5yZWFkX3NlbnNvcikpCi0JICAgICAgcmV0dXJuIC1FSU5WQUw7 Ci0KIAkvKiBHUFUgQ2xvY2tzICovCiAJc2l6ZSA9IHNpemVvZih2YWx1ZSk7CiAJc2VxX3ByaW50 ZihtLCAiR0ZYIENsb2NrcyBhbmQgUG93ZXI6XG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvcG93ZXJwbGF5L2luYy9hbWRncHVfc211LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1k L3Bvd2VycGxheS9pbmMvYW1kZ3B1X3NtdS5oCmluZGV4IDdjNzkzNjkuLjAwNmE3MjEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9hbWRncHVfc211LmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2FtZGdwdV9zbXUuaApAQCAtMjMs NiArMjMsNyBAQAogI2RlZmluZSBfX0FNREdQVV9TTVVfSF9fCiAKICNpbmNsdWRlICJhbWRncHUu aCIKKyNpbmNsdWRlICJrZ2RfcHBfaW50ZXJmYWNlLmgiCiAKIGVudW0gc211X21lc3NhZ2VfdHlw ZQogewpAQCAtMjU4LDYgKzI1OSw4IEBAIHN0cnVjdCBzbXVfZnVuY3MKIAlpbnQgKCpnZXRfY3Vy cmVudF9jbGtfZnJlcSkoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsIHVpbnQzMl90IGNsa19pZCwg dWludDMyX3QgKnZhbHVlKTsKIAlpbnQgKCppbml0X21heF9zdXN0YWluYWJsZV9jbG9ja3MpKHN0 cnVjdCBzbXVfY29udGV4dCAqc211KTsKIAlpbnQgKCpzdGFydF90aGVybWFsX2NvbnRyb2wpKHN0 cnVjdCBzbXVfY29udGV4dCAqc211KTsKKwlpbnQgKCpyZWFkX3NlbnNvcikoc3RydWN0IHNtdV9j b250ZXh0ICpzbXUsIGVudW0gYW1kX3BwX3NlbnNvcnMgc2Vuc29yLAorCQkJICAgdm9pZCAqZGF0 YSwgdWludDMyX3QgKnNpemUpOwogfTsKIAogI2RlZmluZSBzbXVfaW5pdF9taWNyb2NvZGUoc211 KSBcCkBAIC0zNDIsNiArMzQ1LDggQEAgc3RydWN0IHNtdV9mdW5jcwogCSgoc211KS0+cHB0X2Z1 bmNzLT5wcmludF9jbGtfbGV2ZWxzID8gKHNtdSktPnBwdF9mdW5jcy0+cHJpbnRfY2xrX2xldmVs cygoc211KSwgKHR5cGUpLCAoYnVmKSkgOiAwKQogI2RlZmluZSBzbXVfc3RhcnRfdGhlcm1hbF9j b250cm9sKHNtdSkgXAogCSgoc211KS0+ZnVuY3MtPnN0YXJ0X3RoZXJtYWxfY29udHJvbD8gKHNt dSktPmZ1bmNzLT5zdGFydF90aGVybWFsX2NvbnRyb2woKHNtdSkpIDogMCkKKyNkZWZpbmUgc211 X3JlYWRfc2Vuc29yKHNtdSwgc2Vuc29yLCBkYXRhLCBzaXplKSBcCisJKChzbXUpLT5mdW5jcy0+ cmVhZF9zZW5zb3I/IChzbXUpLT5mdW5jcy0+cmVhZF9zZW5zb3IoKHNtdSksIChzZW5zb3IpLCAo ZGF0YSksIChzaXplKSkgOiAwKQogCiAjZGVmaW5lIHNtdV9tc2dfZ2V0X2luZGV4KHNtdSwgbXNn KSBcCiAJKChzbXUpLT5wcHRfZnVuY3M/ICgoc211KS0+cHB0X2Z1bmNzLT5nZXRfc211X21zZ19p bmRleD8gKHNtdSktPnBwdF9mdW5jcy0+Z2V0X3NtdV9tc2dfaW5kZXgoKHNtdSksIChtc2cpKSA6 IC1FSU5WQUwpIDogLUVJTlZBTCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93 ZXJwbGF5L3NtdV92MTFfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211X3Yx MV8wLmMKaW5kZXggOGJhNmI5Zi4uNDYyMTMzYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9wb3dlcnBsYXkvc211X3YxMV8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dl cnBsYXkvc211X3YxMV8wLmMKQEAgLTk5MCw2ICs5OTAsNDUgQEAgc3RhdGljIGludCBzbXVfdjEx XzBfc3RhcnRfdGhlcm1hbF9jb250cm9sKHN0cnVjdCBzbXVfY29udGV4dCAqc211KQogCXJldHVy biByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgc211X3YxMV8wX2dldF9jdXJyZW50X2FjdGl2aXR5X3Bl cmNlbnQoc3RydWN0IHNtdV9jb250ZXh0ICpzbXUsCisJCQkJCQkgIHVpbnQzMl90ICp2YWx1ZSkK K3sKKwlpbnQgcmV0ID0gMDsKKwlTbXVNZXRyaWNzX3QgbWV0cmljczsKKworCWlmICghdmFsdWUp CisJCXJldHVybiAtRUlOVkFMOworCisJcmV0ID0gc211X3VwZGF0ZV90YWJsZShzbXUsIFRBQkxF X1NNVV9NRVRSSUNTLCAodm9pZCAqKSZtZXRyaWNzLCBmYWxzZSk7CisJaWYgKHJldCkKKwkJcmV0 dXJuIHJldDsKKworCSp2YWx1ZSA9IG1ldHJpY3MuQXZlcmFnZUdmeEFjdGl2aXR5OworCisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc211X3YxMV8wX3JlYWRfc2Vuc29yKHN0cnVjdCBzbXVf Y29udGV4dCAqc211LAorCQkJCSBlbnVtIGFtZF9wcF9zZW5zb3JzIHNlbnNvciwKKwkJCQkgdm9p ZCAqZGF0YSwgdWludDMyX3QgKnNpemUpCit7CisJaW50IHJldCA9IDA7CisJc3dpdGNoIChzZW5z b3IpIHsKKwljYXNlIEFNREdQVV9QUF9TRU5TT1JfR1BVX0xPQUQ6CisJCXJldCA9IHNtdV92MTFf MF9nZXRfY3VycmVudF9hY3Rpdml0eV9wZXJjZW50KHNtdSwgZGF0YSk7CisJCSpzaXplID0gNDsK KwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0ID0gLUVJTlZBTDsKKwkJYnJlYWs7CisJfQorCisJ aWYgKHJldCkKKwkJKnNpemUgPSAwOworCisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGNvbnN0 IHN0cnVjdCBzbXVfZnVuY3Mgc211X3YxMV8wX2Z1bmNzID0gewogCS5pbml0X21pY3JvY29kZSA9 IHNtdV92MTFfMF9pbml0X21pY3JvY29kZSwKIAkubG9hZF9taWNyb2NvZGUgPSBzbXVfdjExXzBf bG9hZF9taWNyb2NvZGUsCkBAIC0xMDIyLDYgKzEwNjEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHNtdV9mdW5jcyBzbXVfdjExXzBfZnVuY3MgPSB7CiAJLmdldF9jdXJyZW50X2Nsa19mcmVxID0g c211X3YxMV8wX2dldF9jdXJyZW50X2Nsa19mcmVxLAogCS5pbml0X21heF9zdXN0YWluYWJsZV9j bG9ja3MgPSBzbXVfdjExXzBfaW5pdF9tYXhfc3VzdGFpbmFibGVfY2xvY2tzLAogCS5zdGFydF90 aGVybWFsX2NvbnRyb2wgPSBzbXVfdjExXzBfc3RhcnRfdGhlcm1hbF9jb250cm9sLAorCS5yZWFk X3NlbnNvciA9IHNtdV92MTFfMF9yZWFkX3NlbnNvciwKIH07CiAKIHZvaWQgc211X3YxMV8wX3Nl dF9zbXVfZnVuY3Moc3RydWN0IHNtdV9jb250ZXh0ICpzbXUpCi0tIAoyLjcuNAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxp c3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==