From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yintian Tao Subject: [PATCH] drm/amdgpu: support dpm level modification under virtualization v2 Date: Wed, 10 Apr 2019 21:02:37 +0800 Message-ID: <1554901357-10377-1-git-send-email-yttao@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: Yintian Tao VW5kZXIgdmVnYTEwIHZpcnR1YWx1emF0aW9uLCBzbXUgaXAgYmxvY2sgd2lsbCBub3QgYmUgYWRk ZWQuClRoZXJlZm9yZSwgd2UgbmVlZCBhZGQgcHAgY2xrIHF1ZXJ5IGFuZCBmb3JjZSBkcG0gbGV2 ZWwgZnVuY3Rpb24KYXQgYW1kZ3B1X3ZpcnRfb3BzIHRvIHN1cHBvcnQgdGhlIGZlYXR1cmUuCgp2 MjogYWRkIGdldF9wcF9jbGsgZXhpc3RlbmNlIGNoZWNrIGFuZCB1c2Uga3phbGxvYyB0byBhbGxv Y2F0ZSBidWYKCkNoYW5nZS1JZDogSTcxMzQxOWM1N2I4NTQwODJmNmY3MzlmMWQzMmEwNTVjNzEx NWU2MjAKU2lnbmVkLW9mZi1ieTogWWludGlhbiBUYW8gPHl0dGFvQGFtZC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jIHwgIDEgKwogZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jICAgIHwgIDQgKysKIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jICAgICB8IDE1ICsrKysrKwogZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYyAgIHwgNDkgKysrKysrKysrKysrKysrKysrKwogZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuaCAgIHwgMTEgKysrKysKIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmMgICAgICB8IDc4ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuaCAg ICAgIHwgIDYgKysrCiA3IGZpbGVzIGNoYW5nZWQsIDE2NCBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCmluZGV4IDNmZjg4OTkuLmJiMGZk NWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2Uu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKQEAgLTI0 ODYsNiArMjQ4Niw3IEBAIGludCBhbWRncHVfZGV2aWNlX2luaXQoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCiAJbXV0ZXhfaW5pdCgmYWRldi0+dmlydC52Zl9lcnJvcnMubG9jayk7CiAJaGFz aF9pbml0KGFkZXYtPm1uX2hhc2gpOwogCW11dGV4X2luaXQoJmFkZXYtPmxvY2tfcmVzZXQpOwor CW11dGV4X2luaXQoJmFkZXYtPnZpcnQuZHBtX211dGV4KTsKIAogCWFtZGdwdV9kZXZpY2VfY2hl Y2tfYXJndW1lbnRzKGFkZXYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21z LmMKaW5kZXggNjE5MDQ5NS4uMjllYzI4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9rbXMuYwpAQCAtNzI3LDYgKzcyNywxMCBAQCBzdGF0aWMgaW50IGFtZGdwdV9pbmZvX2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZQog CQlpZiAoYWRldi0+cG0uZHBtX2VuYWJsZWQpIHsKIAkJCWRldl9pbmZvLm1heF9lbmdpbmVfY2xv Y2sgPSBhbWRncHVfZHBtX2dldF9zY2xrKGFkZXYsIGZhbHNlKSAqIDEwOwogCQkJZGV2X2luZm8u bWF4X21lbW9yeV9jbG9jayA9IGFtZGdwdV9kcG1fZ2V0X21jbGsoYWRldiwgZmFsc2UpICogMTA7 CisJCX0gZWxzZSBpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpICYmIGFtZGdpbV9pc19od3BlcmYo YWRldikgJiYKKwkJCSAgIGFkZXYtPnZpcnQub3BzLT5nZXRfcHBfY2xrKSB7CisJCQlkZXZfaW5m by5tYXhfZW5naW5lX2Nsb2NrID0gYW1kZ3B1X3ZpcnRfZ2V0X3NjbGsoYWRldiwgZmFsc2UpICog MTA7CisJCQlkZXZfaW5mby5tYXhfbWVtb3J5X2Nsb2NrID0gYW1kZ3B1X3ZpcnRfZ2V0X21jbGso YWRldiwgZmFsc2UpICogMTA7CiAJCX0gZWxzZSB7CiAJCQlkZXZfaW5mby5tYXhfZW5naW5lX2Ns b2NrID0gYWRldi0+Y2xvY2suZGVmYXVsdF9zY2xrICogMTA7CiAJCQlkZXZfaW5mby5tYXhfbWVt b3J5X2Nsb2NrID0gYWRldi0+Y2xvY2suZGVmYXVsdF9tY2xrICogMTA7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9wbS5jCmluZGV4IDU1NDAyNTkuLjAxNjJkMWUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jCkBAIC0zODAsNiArMzgwLDE3IEBAIHN0YXRpYyBz c2l6ZV90IGFtZGdwdV9zZXRfZHBtX2ZvcmNlZF9wZXJmb3JtYW5jZV9sZXZlbChzdHJ1Y3QgZGV2 aWNlICpkZXYsCiAJCWdvdG8gZmFpbDsKIAl9CiAKKyAgICAgICAgaWYgKGFtZGdwdV9zcmlvdl92 ZihhZGV2KSkgeworICAgICAgICAgICAgICAgIGlmIChhbWRnaW1faXNfaHdwZXJmKGFkZXYpICYm CisgICAgICAgICAgICAgICAgICAgIGFkZXYtPnZpcnQub3BzLT5mb3JjZV9kcG1fbGV2ZWwpIHsK KyAgICAgICAgICAgICAgICAgICAgICAgIG11dGV4X2xvY2soJmFkZXYtPnBtLm11dGV4KTsKKyAg ICAgICAgICAgICAgICAgICAgICAgIGFkZXYtPnZpcnQub3BzLT5mb3JjZV9kcG1fbGV2ZWwoYWRl diwgbGV2ZWwpOworICAgICAgICAgICAgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZhZGV2LT5w bS5tdXRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY291bnQ7CisgICAgICAg ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsK KyAgICAgICAgfQorCiAJaWYgKGN1cnJlbnRfbGV2ZWwgPT0gbGV2ZWwpCiAJCXJldHVybiBjb3Vu dDsKIApAQCAtODQzLDYgKzg1NCwxMCBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfZ2V0X3BwX2Rw bV9zY2xrKHN0cnVjdCBkZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiA9IGRl dl9nZXRfZHJ2ZGF0YShkZXYpOwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGRldi0+ ZGV2X3ByaXZhdGU7CiAKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpICYmIGFtZGdpbV9pc19o d3BlcmYoYWRldikgJiYKKwkgICAgYWRldi0+dmlydC5vcHMtPmdldF9wcF9jbGspCisJCXJldHVy biBhZGV2LT52aXJ0Lm9wcy0+Z2V0X3BwX2NsayhhZGV2LCBQUF9TQ0xLLCBidWYpOworCiAJaWYg KGlzX3N1cHBvcnRfc3dfc211KGFkZXYpKQogCQlyZXR1cm4gc211X3ByaW50X2Nsa19sZXZlbHMo JmFkZXYtPnNtdSwgUFBfU0NMSywgYnVmKTsKIAllbHNlIGlmIChhZGV2LT5wb3dlcnBsYXkucHBf ZnVuY3MtPnByaW50X2Nsb2NrX2xldmVscykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdmlydC5jCmluZGV4IDQ2MmEwNGUuLmVmZGI2YjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3ZpcnQuYwpAQCAtMzc1LDQgKzM3NSw1MyBAQCB2b2lkIGFtZGdwdV92aXJ0 X2luaXRfZGF0YV9leGNoYW5nZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl9CiB9CiAK K3N0YXRpYyB1aW50MzJfdCBwYXJzZV9jbGsoY2hhciAqYnVmLCBib29sIG1pbikKK3sKKyAgICAg ICAgY2hhciAqcHRyID0gYnVmOworICAgICAgICB1aW50MzJfdCBjbGsgPSAwOworCisgICAgICAg IGRvIHsKKyAgICAgICAgICAgICAgICBwdHIgPSBzdHJjaHIocHRyLCAnOicpOworICAgICAgICAg ICAgICAgIGlmICghcHRyKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg ICAgICAgICAgcHRyKz0yOworICAgICAgICAgICAgICAgIGNsayA9IHNpbXBsZV9zdHJ0b3VsKHB0 ciwgTlVMTCwgMTApOworICAgICAgICB9IHdoaWxlICghbWluKTsKKworICAgICAgICByZXR1cm4g Y2xrICogMTAwOworfQorCit1aW50MzJfdCBhbWRncHVfdmlydF9nZXRfc2NsayhzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwgYm9vbCBsb3dlc3QpCit7CisgICAgICAgIGNoYXIgKmJ1ZiA9IE5V TEw7CisJdWludDMyX3QgY2xrID0gMDsKKworCWJ1ZiA9IGt6YWxsb2MoUEFHRV9TSVpFLCBHRlBf S0VSTkVMKTsKKwlpZiAoTlVMTCA9PSBidWYpCisJCXJldHVybiAtRUlOVkFMOworCisgICAgICAg IGFkZXYtPnZpcnQub3BzLT5nZXRfcHBfY2xrKGFkZXYsIFBQX1NDTEssIGJ1Zik7CisgICAgICAg IGNsayA9IHBhcnNlX2NsayhidWYsIGxvd2VzdCk7CisKKwlrZnJlZShidWYpOworCisJcmV0dXJu IGNsazsKK30KKwordWludDMyX3QgYW1kZ3B1X3ZpcnRfZ2V0X21jbGsoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsIGJvb2wgbG93ZXN0KQoreworICAgICAgICBjaGFyICpidWYgPSBOVUxMOwor CXVpbnQzMl90IGNsayA9IDA7CisKKwlidWYgPSBremFsbG9jKFBBR0VfU0laRSwgR0ZQX0tFUk5F TCk7CisJaWYgKE5VTEwgPT0gYnVmKQorCQlyZXR1cm4gLUVJTlZBTDsKKworICAgICAgICBhZGV2 LT52aXJ0Lm9wcy0+Z2V0X3BwX2NsayhhZGV2LCBQUF9NQ0xLLCBidWYpOworICAgICAgICBjbGsg PSBwYXJzZV9jbGsoYnVmLCBsb3dlc3QpOworCisJa2ZyZWUoYnVmKTsKKworCXJldHVybiBjbGs7 Cit9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0 LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5oCmluZGV4IDcyMmRl ZWYuLjU4NDk0N2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV92aXJ0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuaApA QCAtNTcsNiArNTcsOCBAQCBzdHJ1Y3QgYW1kZ3B1X3ZpcnRfb3BzIHsKIAlpbnQgKCpyZXNldF9n cHUpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIAlpbnQgKCp3YWl0X3Jlc2V0KShzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiAJdm9pZCAoKnRyYW5zX21zZykoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsIHUzMiByZXEsIHUzMiBkYXRhMSwgdTMyIGRhdGEyLCB1MzIgZGF0YTMp OworCWludCAoKmdldF9wcF9jbGspKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgdHlw ZSwgY2hhciAqYnVmKTsKKwlpbnQgKCpmb3JjZV9kcG1fbGV2ZWwpKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LCB1MzIgbGV2ZWwpOwogfTsKIAogLyoKQEAgLTgzLDYgKzg1LDggQEAgZW51bSBB TURHSU1fRkVBVFVSRV9GTEFHIHsKIAlBTURHSU1fRkVBVFVSRV9HSU1fTE9BRF9VQ09ERVMgICA9 IDB4MiwKIAkvKiBWUkFNIExPU1QgYnkgR0lNICovCiAJQU1ER0lNX0ZFQVRVUkVfR0lNX0ZMUl9W UkFNTE9TVCA9IDB4NCwKKwkvKiBIVyBQRVJGIFNJTSBpbiBHSU0gKi8KKwlBTURHSU1fRkVBVFVS RV9IV19QRVJGX1NJTVVMQVRJT04gPSAoMSA8PCAzKSwKIH07CiAKIHN0cnVjdCBhbWRfc3Jpb3Zf bXNnX3BmMnZmX2luZm9faGVhZGVyIHsKQEAgLTI1Miw2ICsyNTYsOCBAQCBzdHJ1Y3QgYW1kZ3B1 X3ZpcnQgewogCXN0cnVjdCBhbWRncHVfdmZfZXJyb3JfYnVmZmVyICAgdmZfZXJyb3JzOwogCXN0 cnVjdCBhbWRncHVfdmlydF9md19yZXNlcnZlCWZ3X3Jlc2VydmU7CiAJdWludDMyX3QgZ2ltX2Zl YXR1cmU7CisJLyogcHJvdGVjdCBEUE0gZXZlbnRzIHRvIEdJTSAqLworCXN0cnVjdCBtdXRleCAg ICAgICAgICAgICAgICAgICAgZHBtX211dGV4OwogfTsKIAogI2RlZmluZSBhbWRncHVfc3Jpb3Zf ZW5hYmxlZChhZGV2KSBcCkBAIC0yNzgsNiArMjg0LDkgQEAgc3RhdGljIGlubGluZSBib29sIGlz X3ZpcnR1YWxfbWFjaGluZSh2b2lkKQogI2VuZGlmCiB9CiAKKyNkZWZpbmUgYW1kZ2ltX2lzX2h3 cGVyZihhZGV2KSBcCisJKChhZGV2KS0+dmlydC5naW1fZmVhdHVyZSAmIEFNREdJTV9GRUFUVVJF X0hXX1BFUkZfU0lNVUxBVElPTikKKwogYm9vbCBhbWRncHVfdmlydF9tbWlvX2Jsb2NrZWQoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogdm9pZCBhbWRncHVfdmlydF9pbml0X3NldHRpbmco c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogdWludDMyX3QgYW1kZ3B1X3ZpcnRfa2lxX3Jy ZWcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQzMl90IHJlZyk7CkBAIC0yOTUsNSAr MzA0LDcgQEAgaW50IGFtZGdwdV92aXJ0X2Z3X3Jlc2VydmVfZ2V0X2NoZWNrc3VtKHZvaWQgKm9i aiwgdW5zaWduZWQgbG9uZyBvYmpfc2l6ZSwKIAkJCQkJdW5zaWduZWQgaW50IGtleSwKIAkJCQkJ dW5zaWduZWQgaW50IGNoa3N1bSk7CiB2b2lkIGFtZGdwdV92aXJ0X2luaXRfZGF0YV9leGNoYW5n ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cit1aW50MzJfdCBhbWRncHVfdmlydF9nZXRf c2NsayhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgYm9vbCBsb3dlc3QpOwordWludDMyX3Qg YW1kZ3B1X3ZpcnRfZ2V0X21jbGsoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgbG93 ZXN0KTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9t eGdwdV9haS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuYwppbmRleCA3 Mzg1MWViLi44ZGJhZDQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9t eGdwdV9haS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmMKQEAg LTE1Nyw2ICsxNTcsODIgQEAgc3RhdGljIHZvaWQgeGdwdV9haV9tYWlsYm94X3RyYW5zX21zZyAo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJeGdwdV9haV9tYWlsYm94X3NldF92YWxpZChh ZGV2LCBmYWxzZSk7CiB9CiAKK3N0YXRpYyBpbnQgeGdwdV9haV9nZXRfcHBfY2xrKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LCB1MzIgdHlwZSwgY2hhciAqYnVmKQoreworICAgICAgICBpbnQg ciA9IDA7CisgICAgICAgIHUzMiByZXEsIHZhbCwgc2l6ZTsKKworICAgICAgICBpZiAoIWFtZGdp bV9pc19od3BlcmYoYWRldikgfHwgYnVmID09IE5VTEwpCisgICAgICAgICAgICAgICAgcmV0dXJu IC1FQkFEUlFDOworCisgICAgICAgIHN3aXRjaCh0eXBlKSB7CisgICAgICAgIGNhc2UgUFBfU0NM SzoKKyAgICAgICAgICAgICAgICByZXEgPSBJREhfSVJRX0dFVF9QUF9TQ0xLOworICAgICAgICAg ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFBQX01DTEs6CisgICAgICAgICAgICAgICAgcmVx ID0gSURIX0lSUV9HRVRfUFBfTUNMSzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gLUVCQURSUUM7CisgICAgICAgIH0KKwor ICAgICAgICBtdXRleF9sb2NrKCZhZGV2LT52aXJ0LmRwbV9tdXRleCk7CisKKyAgICAgICAgeGdw dV9haV9tYWlsYm94X3RyYW5zX21zZyhhZGV2LCByZXEsIDAsIDAsIDApOworCisgICAgICAgIHIg PSB4Z3B1X2FpX3BvbGxfbXNnKGFkZXYsIElESF9TVUNDRVNTKTsKKyAgICAgICAgaWYgKCFyICYm IGFkZXYtPmZ3X3ZyYW1fdXNhZ2UudmEgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHZhbCA9 IFJSRUczMl9OT19LSVEoCisgICAgICAgICAgICAgICAgICAgICAgICBTT0MxNV9SRUdfT0ZGU0VU KE5CSU8sIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1tQklG X0JYX1BGMF9NQUlMQk9YX01TR0JVRl9SQ1ZfRFcxKSk7CisgICAgICAgICAgICAgICAgc2l6ZSA9 IHN0cm5sZW4oKCgoY2hhciAqKWFkZXYtPnZpcnQuZndfcmVzZXJ2ZS5wX3BmMnZmKSArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCksIFBBR0VfU0laRSk7CisKKyAgICAgICAg ICAgICAgICBpZiAoc2l6ZSA8IFBBR0VfU0laRSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0 cmNweShidWYsKChjaGFyICopYWRldi0+dmlydC5md19yZXNlcnZlLnBfcGYydmYgKyB2YWwpKTsK KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplID0gMDsK KworICAgICAgICAgICAgICAgIHIgPSBzaXplOworICAgICAgICAgICAgICAgIGdvdG8gb3V0Owor ICAgICAgICB9CisKKyAgICAgICAgciA9IHhncHVfYWlfcG9sbF9tc2coYWRldiwgSURIX0ZBSUwp OworICAgICAgICBpZihyKQorICAgICAgICAgICAgICAgIHByX2luZm8oIiVzIERQTSByZXF1ZXN0 IGZhaWxlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAodHlwZSA9PSBQUF9TQ0xLKT8gIlND TEsiIDogIk1DTEsiKTsKKworb3V0OgorICAgICAgICBtdXRleF91bmxvY2soJmFkZXYtPnZpcnQu ZHBtX211dGV4KTsKKyAgICAgICAgcmV0dXJuIHI7Cit9CisKK3N0YXRpYyBpbnQgeGdwdV9haV9m b3JjZV9kcG1fbGV2ZWwoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUzMiBsZXZlbCkKK3sK KyAgICAgICAgaW50IHIgPSAwOworICAgICAgICB1MzIgcmVxID0gSURIX0lSUV9GT1JDRV9EUE1f TEVWRUw7CisKKyAgICAgICAgaWYgKCFhbWRnaW1faXNfaHdwZXJmKGFkZXYpKQorICAgICAgICAg ICAgICAgIHJldHVybiAtRUJBRFJRQzsKKworICAgICAgICBtdXRleF9sb2NrKCZhZGV2LT52aXJ0 LmRwbV9tdXRleCk7CisgICAgICAgIHhncHVfYWlfbWFpbGJveF90cmFuc19tc2coYWRldiwgcmVx LCBsZXZlbCwgMCwgMCk7CisKKyAgICAgICAgciA9IHhncHVfYWlfcG9sbF9tc2coYWRldiwgSURI X1NVQ0NFU1MpOworICAgICAgICBpZiAoIXIpCisgICAgICAgICAgICAgICAgZ290byBvdXQ7CisK KyAgICAgICAgciA9IHhncHVfYWlfcG9sbF9tc2coYWRldiwgSURIX0ZBSUwpOworICAgICAgICBp ZiAoIXIpCisgICAgICAgICAgICAgICAgcHJfaW5mbygiRFBNIHJlcXVlc3QgZmFpbGVkIik7Cisg ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBwcl9pbmZvKCJNYWlsYm94IGlzIGJyb2tlbiIp OworCitvdXQ6CisgICAgICAgIG11dGV4X3VubG9jaygmYWRldi0+dmlydC5kcG1fbXV0ZXgpOwor ICAgICAgICByZXR1cm4gcjsKK30KKwogc3RhdGljIGludCB4Z3B1X2FpX3NlbmRfYWNjZXNzX3Jl cXVlc3RzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJCQllbnVtIGlkaF9yZXF1ZXN0 IHJlcSkKIHsKQEAgLTM3NSw0ICs0NTEsNiBAQCBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3ZpcnRfb3Bz IHhncHVfYWlfdmlydF9vcHMgPSB7CiAJLnJlc2V0X2dwdSA9IHhncHVfYWlfcmVxdWVzdF9yZXNl dCwKIAkud2FpdF9yZXNldCA9IE5VTEwsCiAJLnRyYW5zX21zZyA9IHhncHVfYWlfbWFpbGJveF90 cmFuc19tc2csCisJLmdldF9wcF9jbGsgPSB4Z3B1X2FpX2dldF9wcF9jbGssCisJLmZvcmNlX2Rw bV9sZXZlbCA9IHhncHVfYWlfZm9yY2VfZHBtX2xldmVsLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9teGdwdV9haS5oCmluZGV4IGI0YTljZWUuLjM5ZDE1MWIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvbXhncHVfYWkuaApAQCAtMzUsNiArMzUsMTAgQEAgZW51bSBpZGhfcmVxdWVzdCB7 CiAJSURIX1JFTF9HUFVfRklOSV9BQ0NFU1MsCiAJSURIX1JFUV9HUFVfUkVTRVRfQUNDRVNTLAog CisJSURIX0lSUV9GT1JDRV9EUE1fTEVWRUwgPSAxMCwKKwlJREhfSVJRX0dFVF9QUF9TQ0xLLAor CUlESF9JUlFfR0VUX1BQX01DTEssCisKIAlJREhfTE9HX1ZGX0VSUk9SICAgICAgID0gMjAwLAog fTsKIApAQCAtNDMsNiArNDcsOCBAQCBlbnVtIGlkaF9ldmVudCB7CiAJSURIX1JFQURZX1RPX0FD Q0VTU19HUFUsCiAJSURIX0ZMUl9OT1RJRklDQVRJT04sCiAJSURIX0ZMUl9OT1RJRklDQVRJT05f Q01QTCwKKwlJREhfU1VDQ0VTUywKKwlJREhfRkFJTCwKIAlJREhfRVZFTlRfTUFYCiB9OwogCi0t IAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K YW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4