From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhenyu Wang Subject: [PATCH v5] drm/i915/gvt: Change KVMGT as self load module Date: Thu, 6 Dec 2018 16:02:49 +0800 Message-ID: <20181206080249.4859-1-zhenyuw@linux.intel.com> References: <20181204024028.11311-1-zhenyuw@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181204024028.11311-1-zhenyuw@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: intel-gvt-dev@lists.freedesktop.org, "Yuan, Hang" List-Id: intel-gfx@lists.freedesktop.org VGhpcyB0cnlzIHRvIG1ha2UgJ2t2bWd0JyBtb2R1bGUgYXMgc2VsZiBsb2FkYWJsZSBpbnN0ZWFk IG9mIGxvYWRpbmcKYnkgaTkxNS9ndnQgZGV2aWNlIG1vZGVsLiBTbyBoeXBlcnZpc29yIHNwZWNp ZmljIG1vZHVsZSBjb3VsZCBiZQpzdGFuZC1hbG9uZSwgZS5nIG9ubHkgYWZ0ZXIgbG9hZGluZyBo eXBlcnZpc29yIHNwZWNpZmljIG1vZHVsZSwgR1ZUCmZlYXR1cmUgY291bGQgYmUgZW5hYmxlZCB2 aWEgc3BlY2lmaWMgaHlwZXJ2aXNvciBpbnRlcmZhY2UsIGUuZyBWRklPL21kZXYuCgpTbyB0aGlz IHRyeXMgdG8gdXNlIGh5cGVydmlzb3IgbW9kdWxlIHJlZ2lzdGVyL3VucmVnaXN0ZXIgaW50ZXJm YWNlCmZvciB0aGF0LiBIeXBlcnZpc29yIG1vZHVsZSBuZWVkcyB0byB0YWtlIGNhcmUgb2YgbW9k dWxlIHJlZmVyZW5jZQppdHNlbGYgd2hlbiB3b3JraW5nIGZvciBoeXBlcnZpc29yIGludGVyZmFj ZSwgZS5nIGZvciBWRklPL21kZXYsCmh5cGVydmlzb3IgbW9kdWxlIHdvdWxkIHJlZmVyZW5jZSBj b3VudGluZyBtZGV2IHdoZW4gb3BlbiBhbmQgcmVsZWFzZS4KClRoaXMgbWFrZXMgJ2t2bWd0JyBt b2R1bGUgcmVhbGx5IHNwbGl0IGZyb20gR1ZUIGRldmljZSBtb2RlbC4gVXNlcgpuZWVkcyB0byBs b2FkICdrdm1ndCcgdG8gZW5hYmxlIFZGSU8vbWRldiBpbnRlcmZhY2UuCgp2NToKLSBwdXQgbW9k dWxlIHJlZmVyZW5jZSBpbiByZWdpc3RlciBlcnJvciBwYXRoCgp2NDoKLSBmaXggY2hlY2twYXRj aCB3YXJuaW5nCgp2MzoKLSBGaXggbW9kdWxlIHJlZmVyZW5jZSBoYW5kbGluZyBmb3IgZGV2aWNl IG9wZW4gYW5kIHJlbGVhc2UuIFVudXNlZAogIG1kZXYgZGV2aWNlcyB3b3VsZCBiZSBjbGVhbmVk IHVwIGluIGRldmljZSB1bnJlZ2lzdGVyIHdoZW4gbW9kdWxlIHVubG9hZC4KCnYyOgotIEZpeCBr dm1ndCBvcmRlciBhZnRlciBpOTE1IGZvciBidWlsdC1pbiBjYXNlCgpDYzogIll1YW4sIEhhbmci IDxoYW5nLnl1YW5AaW50ZWwuY29tPgpDYzogQWxleCBXaWxsaWFtc29uIDxhbGV4LndpbGxpYW1z b25AcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWmhlbnl1IFdhbmcgPHpoZW55dXdAbGludXgu aW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICB8ICAg MSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvTWFrZWZpbGUgICAgfCAgIDEgLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jICAgICAgIHwgMTA4ICsrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oICAgICAgIHwgICA2ICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaHlwZXJjYWxsLmggfCAgIDcgKy0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d2dC9rdm1ndC5jICAgICB8ICAyMSArKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2d2dC9tcHQuaCAgICAgICB8ICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dnQuYyAgICAgfCAgIDkgLS0tCiA4IGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyksIDgz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKaW5kZXggMGZmODc4Yzk5NGUyLi5hZTBk OTc1YTZmMzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCkBAIC0xOTUsMyArMTk1LDQgQEAgZW5kaWYK IGk5MTUteSArPSBpbnRlbF9scGVfYXVkaW8ubwogCiBvYmotJChDT05GSUdfRFJNX0k5MTUpICs9 IGk5MTUubworb2JqLSQoQ09ORklHX0RSTV9JOTE1X0dWVF9LVk1HVCkgKz0gZ3Z0L2t2bWd0Lm8K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9NYWtlZmlsZSBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9NYWtlZmlsZQppbmRleCBiMDE2ZGM3NTNkYjkuLjI3MWZiNDZkNGRk MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxlCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9NYWtlZmlsZQpAQCAtNyw0ICs3LDMgQEAgR1ZUX1NPVVJD RSA6PSBndnQubyBhcGVydHVyZV9nbS5vIGhhbmRsZXJzLm8gdmdwdS5vIHRyYWNlX3BvaW50cy5v IGZpcm13YXJlLm8gXAogCiBjY2ZsYWdzLXkJCQkJKz0gLUkkKHNyYykgLUkkKHNyYykvJChHVlRf RElSKQogaTkxNS15CQkJCQkrPSAkKGFkZHByZWZpeCAkKEdWVF9ESVIpLywgJChHVlRfU09VUkNF KSkKLW9iai0kKENPTkZJR19EUk1fSTkxNV9HVlRfS1ZNR1QpCSs9ICQoR1ZUX0RJUikva3ZtZ3Qu bwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L2d2dC5jCmluZGV4IGE1Yjc2MGI3YmMxMC4uNGU4OTQ3ZjMzYmQwIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L2d2dC5jCkBAIC0xODcsNTIgKzE4Nyw2IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgaW50ZWxfZ3Z0X29wcyBpbnRlbF9ndnRfb3BzID0gewogCS53cml0ZV9wcm90ZWN0X2hh bmRsZXIgPSBpbnRlbF92Z3B1X3BhZ2VfdHJhY2tfaGFuZGxlciwKIH07CiAKLS8qKgotICogaW50 ZWxfZ3Z0X2luaXRfaG9zdCAtIExvYWQgTVBUIG1vZHVsZXMgYW5kIGRldGVjdCBpZiB3ZSdyZSBy dW5uaW5nIGluIGhvc3QKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhdCB0aGUgZHJp dmVyIGxvYWRpbmcgc3RhZ2UuIElmIGZhaWxlZCB0byBmaW5kIGEKLSAqIGxvYWRhYmxlIE1QVCBt b2R1bGUgb3IgZGV0ZWN0IGN1cnJlbnRseSB3ZSdyZSBydW5uaW5nIGluIGEgVk0sIHRoZW4gR1ZU LWcKLSAqIHdpbGwgYmUgZGlzYWJsZWQKLSAqCi0gKiBSZXR1cm5zOgotICogWmVybyBvbiBzdWNj ZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIGlmIGZhaWxlZC4KLSAqCi0gKi8KLWludCBpbnRlbF9n dnRfaW5pdF9ob3N0KHZvaWQpCi17Ci0JaWYgKGludGVsX2d2dF9ob3N0LmluaXRpYWxpemVkKQot CQlyZXR1cm4gMDsKLQotCS8qIFhlbiBET00gVSAqLwotCWlmICh4ZW5fZG9tYWluKCkgJiYgIXhl bl9pbml0aWFsX2RvbWFpbigpKQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCS8qIFRyeSB0byBsb2Fk IE1QVCBtb2R1bGVzIGZvciBoeXBlcnZpc29ycyAqLwotCWlmICh4ZW5faW5pdGlhbF9kb21haW4o KSkgewotCQkvKiBJbiBYZW4gZG9tMCAqLwotCQlpbnRlbF9ndnRfaG9zdC5tcHQgPSB0cnlfdGhl bl9yZXF1ZXN0X21vZHVsZSgKLQkJCQlzeW1ib2xfZ2V0KHhlbmd0X21wdCksICJ4ZW5ndCIpOwot CQlpbnRlbF9ndnRfaG9zdC5oeXBlcnZpc29yX3R5cGUgPSBJTlRFTF9HVlRfSFlQRVJWSVNPUl9Y RU47Ci0JfSBlbHNlIHsKLSNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9HVlRfS1ZNR1Qp Ci0JCS8qIG5vdCBpbiBYZW4uIFRyeSBLVk1HVCAqLwotCQlpbnRlbF9ndnRfaG9zdC5tcHQgPSB0 cnlfdGhlbl9yZXF1ZXN0X21vZHVsZSgKLQkJCQlzeW1ib2xfZ2V0KGt2bWd0X21wdCksICJrdm1n dCIpOwotCQlpbnRlbF9ndnRfaG9zdC5oeXBlcnZpc29yX3R5cGUgPSBJTlRFTF9HVlRfSFlQRVJW SVNPUl9LVk07Ci0jZW5kaWYKLQl9Ci0KLQkvKiBGYWlsIHRvIGxvYWQgTVBUIG1vZHVsZXMgLSBi YWlsIG91dCAqLwotCWlmICghaW50ZWxfZ3Z0X2hvc3QubXB0KQotCQlyZXR1cm4gLUVJTlZBTDsK LQotCWd2dF9kYmdfY29yZSgiUnVubmluZyB3aXRoIGh5cGVydmlzb3IgJXMgaW4gaG9zdCBtb2Rl XG4iLAotCQkJc3VwcG9ydGVkX2h5cGVydmlzb3JzW2ludGVsX2d2dF9ob3N0Lmh5cGVydmlzb3Jf dHlwZV0pOwotCi0JaW50ZWxfZ3Z0X2hvc3QuaW5pdGlhbGl6ZWQgPSB0cnVlOwotCXJldHVybiAw OwotfQotCiBzdGF0aWMgdm9pZCBpbml0X2RldmljZV9pbmZvKHN0cnVjdCBpbnRlbF9ndnQgKmd2 dCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZ3Z0X2RldmljZV9pbmZvICppbmZvID0gJmd2dC0+ZGV2aWNl X2luZm87CkBAIC0zMTYsNyArMjcwLDYgQEAgdm9pZCBpbnRlbF9ndnRfY2xlYW5fZGV2aWNlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJcmV0dXJuOwogCiAJaW50ZWxfZ3Z0 X2Rlc3Ryb3lfaWRsZV92Z3B1KGd2dC0+aWRsZV92Z3B1KTsKLQlpbnRlbF9ndnRfaHlwZXJ2aXNv cl9ob3N0X2V4aXQoJmRldl9wcml2LT5kcm0ucGRldi0+ZGV2KTsKIAlpbnRlbF9ndnRfY2xlYW51 cF92Z3B1X3R5cGVfZ3JvdXBzKGd2dCk7CiAJaW50ZWxfZ3Z0X2NsZWFuX3ZncHVfdHlwZXMoZ3Z0 KTsKIApAQCAtMzUyLDEzICszMDUsNiBAQCBpbnQgaW50ZWxfZ3Z0X2luaXRfZGV2aWNlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdTsK IAlpbnQgcmV0OwogCi0JLyoKLQkgKiBDYW5ub3QgaW5pdGlhbGl6ZSBHVlQgZGV2aWNlIHdpdGhv dXQgaW50ZWxfZ3Z0X2hvc3QgZ2V0cwotCSAqIGluaXRpYWxpemVkIGZpcnN0LgotCSAqLwotCWlm IChXQVJOX09OKCFpbnRlbF9ndnRfaG9zdC5pbml0aWFsaXplZCkpCi0JCXJldHVybiAtRUlOVkFM OwotCiAJaWYgKFdBUk5fT04oZGV2X3ByaXYtPmd2dCkpCiAJCXJldHVybiAtRUVYSVNUOwogCkBA IC00MjAsMTMgKzM2Niw2IEBAIGludCBpbnRlbF9ndnRfaW5pdF9kZXZpY2Uoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlnb3RvIG91dF9jbGVhbl90eXBlczsKIAl9CiAKLQly ZXQgPSBpbnRlbF9ndnRfaHlwZXJ2aXNvcl9ob3N0X2luaXQoJmRldl9wcml2LT5kcm0ucGRldi0+ ZGV2LCBndnQsCi0JCQkJJmludGVsX2d2dF9vcHMpOwotCWlmIChyZXQpIHsKLQkJZ3Z0X2Vycigi ZmFpbGVkIHRvIHJlZ2lzdGVyIGd2dC1nIGhvc3QgZGV2aWNlOiAlZFxuIiwgcmV0KTsKLQkJZ290 byBvdXRfY2xlYW5fdHlwZXM7Ci0JfQotCiAJdmdwdSA9IGludGVsX2d2dF9jcmVhdGVfaWRsZV92 Z3B1KGd2dCk7CiAJaWYgKElTX0VSUih2Z3B1KSkgewogCQlyZXQgPSBQVFJfRVJSKHZncHUpOwpA QCAtNDQxLDYgKzM4MCw4IEBAIGludCBpbnRlbF9ndnRfaW5pdF9kZXZpY2Uoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJZ3Z0X2RiZ19jb3JlKCJndnQgZGV2aWNlIGluaXRp YWxpemF0aW9uIGlzIGRvbmVcbiIpOwogCWRldl9wcml2LT5ndnQgPSBndnQ7CisJaW50ZWxfZ3Z0 X2hvc3QuZGV2ID0gJmRldl9wcml2LT5kcm0ucGRldi0+ZGV2OworCWludGVsX2d2dF9ob3N0Lmlu aXRpYWxpemVkID0gdHJ1ZTsKIAlyZXR1cm4gMDsKIAogb3V0X2NsZWFuX3R5cGVzOgpAQCAtNDY3 LDYgKzQwOCw0NSBAQCBpbnQgaW50ZWxfZ3Z0X2luaXRfZGV2aWNlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gcmV0OwogfQogCi0jaWYgSVNfRU5BQkxFRChDT05G SUdfRFJNX0k5MTVfR1ZUX0tWTUdUKQotTU9EVUxFX1NPRlRERVAoInByZToga3ZtZ3QiKTsKLSNl bmRpZgoraW50CitpbnRlbF9ndnRfcmVnaXN0ZXJfaHlwZXJ2aXNvcihzdHJ1Y3QgaW50ZWxfZ3Z0 X21wdCAqbSkKK3sKKwlpbnQgcmV0OworCXZvaWQgKmd2dDsKKworCWlmICghaW50ZWxfZ3Z0X2hv c3QuaW5pdGlhbGl6ZWQpCisJCXJldHVybiAtRU5PREVWOworCisJaWYgKG0tPnR5cGUgIT0gSU5U RUxfR1ZUX0hZUEVSVklTT1JfS1ZNICYmCisJICAgIG0tPnR5cGUgIT0gSU5URUxfR1ZUX0hZUEVS VklTT1JfWEVOKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qIEdldCBhIHJlZmVyZW5jZSBmb3Ig ZGV2aWNlIG1vZGVsIG1vZHVsZSAqLworCWlmICghdHJ5X21vZHVsZV9nZXQoVEhJU19NT0RVTEUp KQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWludGVsX2d2dF9ob3N0Lm1wdCA9IG07CisJaW50ZWxf Z3Z0X2hvc3QuaHlwZXJ2aXNvcl90eXBlID0gbS0+dHlwZTsKKwlndnQgPSAodm9pZCAqKWtkZXZf dG9faTkxNShpbnRlbF9ndnRfaG9zdC5kZXYpLT5ndnQ7CisKKwlyZXQgPSBpbnRlbF9ndnRfaHlw ZXJ2aXNvcl9ob3N0X2luaXQoaW50ZWxfZ3Z0X2hvc3QuZGV2LCBndnQsCisJCQkJCSAgICAgJmlu dGVsX2d2dF9vcHMpOworCWlmIChyZXQgPCAwKSB7CisJCWd2dF9lcnIoIkZhaWxlZCB0byBpbml0 ICVzIGh5cGVydmlzb3IgbW9kdWxlXG4iLAorCQkJc3VwcG9ydGVkX2h5cGVydmlzb3JzW2ludGVs X2d2dF9ob3N0Lmh5cGVydmlzb3JfdHlwZV0pOworCQltb2R1bGVfcHV0KFRISVNfTU9EVUxFKTsK KwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCWd2dF9kYmdfY29yZSgiUnVubmluZyB3aXRoIGh5cGVy dmlzb3IgJXMgaW4gaG9zdCBtb2RlXG4iLAorCQkgICAgIHN1cHBvcnRlZF9oeXBlcnZpc29yc1tp bnRlbF9ndnRfaG9zdC5oeXBlcnZpc29yX3R5cGVdKTsKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9T WU1CT0xfR1BMKGludGVsX2d2dF9yZWdpc3Rlcl9oeXBlcnZpc29yKTsKKwordm9pZAoraW50ZWxf Z3Z0X3VucmVnaXN0ZXJfaHlwZXJ2aXNvcih2b2lkKQoreworCWludGVsX2d2dF9oeXBlcnZpc29y X2hvc3RfZXhpdChpbnRlbF9ndnRfaG9zdC5kZXYpOworCW1vZHVsZV9wdXQoVEhJU19NT0RVTEUp OworfQorRVhQT1JUX1NZTUJPTF9HUEwoaW50ZWxfZ3Z0X3VucmVnaXN0ZXJfaHlwZXJ2aXNvcik7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndnQvZ3Z0LmgKaW5kZXggYjRhYjFkYWQwMTQzLi44YTRjZjk5NWQ3NTUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndnQvZ3Z0LmgKQEAgLTUyLDEyICs1Miw4IEBACiAKICNkZWZpbmUgR1ZUX01B WF9WR1BVIDgKIAotZW51bSB7Ci0JSU5URUxfR1ZUX0hZUEVSVklTT1JfWEVOID0gMCwKLQlJTlRF TF9HVlRfSFlQRVJWSVNPUl9LVk0sCi19OwotCiBzdHJ1Y3QgaW50ZWxfZ3Z0X2hvc3QgeworCXN0 cnVjdCBkZXZpY2UgKmRldjsKIAlib29sIGluaXRpYWxpemVkOwogCWludCBoeXBlcnZpc29yX3R5 cGU7CiAJc3RydWN0IGludGVsX2d2dF9tcHQgKm1wdDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d2dC9oeXBlcmNhbGwuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9oeXBl cmNhbGwuaAppbmRleCBlNDlhOTI0N2VkNzguLjUwNzk4ODY4YWIxNSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2h5cGVyY2FsbC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d2dC9oeXBlcmNhbGwuaApAQCAtMzMsMTEgKzMzLDE3IEBACiAjaWZuZGVmIF9HVlRfSFlQ RVJDQUxMX0hfCiAjZGVmaW5lIF9HVlRfSFlQRVJDQUxMX0hfCiAKK2VudW0gaHlwZXJ2aXNvcl90 eXBlIHsKKwlJTlRFTF9HVlRfSFlQRVJWSVNPUl9YRU4gPSAwLAorCUlOVEVMX0dWVF9IWVBFUlZJ U09SX0tWTSwKK307CisKIC8qCiAgKiBTcGVjaWZpYyBHVlQtZyBNUFQgbW9kdWxlcyBmdW5jdGlv biBjb2xsZWN0aW9ucy4gQ3VycmVudGx5IEdWVC1nIHN1cHBvcnRzCiAgKiBib3RoIFhlbiBhbmQg S1ZNIGJ5IHByb3ZpZGluZyBkZWRpY2F0ZWQgaHlwZXJ2aXNvci1yZWxhdGVkIE1QVCBtb2R1bGVz LgogICovCiBzdHJ1Y3QgaW50ZWxfZ3Z0X21wdCB7CisJZW51bSBoeXBlcnZpc29yX3R5cGUgdHlw ZTsKIAlpbnQgKCpob3N0X2luaXQpKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZ3Z0LCBjb25z dCB2b2lkICpvcHMpOwogCXZvaWQgKCpob3N0X2V4aXQpKHN0cnVjdCBkZXZpY2UgKmRldik7CiAJ aW50ICgqYXR0YWNoX3ZncHUpKHZvaWQgKnZncHUsIHVuc2lnbmVkIGxvbmcgKmhhbmRsZSk7CkBA IC02Nyw2ICs3Myw1IEBAIHN0cnVjdCBpbnRlbF9ndnRfbXB0IHsKIH07CiAKIGV4dGVybiBzdHJ1 Y3QgaW50ZWxfZ3Z0X21wdCB4ZW5ndF9tcHQ7Ci1leHRlcm4gc3RydWN0IGludGVsX2d2dF9tcHQg a3ZtZ3RfbXB0OwogCiAjZW5kaWYgLyogX0dWVF9IWVBFUkNBTExfSF8gKi8KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3Z0L2t2bWd0LmMKaW5kZXggMWJiZDA0ZDMwYzQyLi5lZjI0OGQ1NzdlNDkgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d2dC9rdm1ndC5jCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiZ3Z0LmgiCiAKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZ3Z0X29wcyAqaW50ZWxfZ3Z0X29wczsKK3N0YXRpYyBz dHJ1Y3QgaW50ZWxfZ3Z0ICppbnRlbF9ndnQ7CiAKIC8qIGhlbHBlciBtYWNyb3MgY29waWVkIGZy b20gdmZpby1wY2kgKi8KICNkZWZpbmUgVkZJT19QQ0lfT0ZGU0VUX1NISUZUICAgNDAKQEAgLTYy Nyw2ICs2MjgsMTIgQEAgc3RhdGljIGludCBpbnRlbF92Z3B1X29wZW4oc3RydWN0IG1kZXZfZGV2 aWNlICptZGV2KQogCQlnb3RvIHVuZG9faW9tbXU7CiAJfQogCisJLyogVGFrZSBhIG1vZHVsZSBy ZWZlcmVuY2UgYXMgbWRldiBjb3JlIGRvZXNuJ3QgdGFrZQorCSAqIGEgcmVmZXJlbmNlIGZvciB2 ZW5kb3IgZHJpdmVyLgorCSAqLworCWlmICghdHJ5X21vZHVsZV9nZXQoVEhJU19NT0RVTEUpKQor CQlnb3RvIHVuZG9fZ3JvdXA7CisKIAlyZXQgPSBrdm1ndF9ndWVzdF9pbml0KG1kZXYpOwogCWlm IChyZXQpCiAJCWdvdG8gdW5kb19ncm91cDsKQEAgLTY3OSw2ICs2ODYsOSBAQCBzdGF0aWMgdm9p ZCBfX2ludGVsX3ZncHVfcmVsZWFzZShzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSkKIAkJCQkJJnZn cHUtPnZkZXYuZ3JvdXBfbm90aWZpZXIpOwogCVdBUk4ocmV0LCAidmZpb191bnJlZ2lzdGVyX25v dGlmaWVyIGZvciBncm91cCBmYWlsZWQ6ICVkXG4iLCByZXQpOwogCisJLyogZGVyZWZlcmVuY2Ug bW9kdWxlIHJlZmVyZW5jZSB0YWtlbiBhdCBvcGVuICovCisJbW9kdWxlX3B1dChUSElTX01PRFVM RSk7CisKIAlpbmZvID0gKHN0cnVjdCBrdm1ndF9ndWVzdF9pbmZvICopdmdwdS0+aGFuZGxlOwog CWt2bWd0X2d1ZXN0X2V4aXQoaW5mbyk7CiAKQEAgLTE0NTksOCArMTQ2OSwxMCBAQCBzdGF0aWMg aW50IGt2bWd0X2hvc3RfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmd2dCwgY29uc3Qg dm9pZCAqb3BzKQogCXN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKiprdm1fdmdwdV90eXBlX2dyb3Vw czsKIAogCWludGVsX2d2dF9vcHMgPSBvcHM7CisJaW50ZWxfZ3Z0ID0gKHN0cnVjdCBpbnRlbF9n dnQgKilndnQ7CisKIAlpZiAoIWludGVsX2d2dF9vcHMtPmdldF9ndnRfYXR0cnMoJmt2bV90eXBl X2F0dHJzLAotCQkJJmt2bV92Z3B1X3R5cGVfZ3JvdXBzKSkKKwkJCQkJICAma3ZtX3ZncHVfdHlw ZV9ncm91cHMpKQogCQlyZXR1cm4gLUVGQVVMVDsKIAlpbnRlbF92Z3B1X29wcy5zdXBwb3J0ZWRf dHlwZV9ncm91cHMgPSBrdm1fdmdwdV90eXBlX2dyb3VwczsKIApAQCAtMTg0OSw3ICsxODYxLDgg QEAgc3RhdGljIGJvb2wga3ZtZ3RfaXNfdmFsaWRfZ2ZuKHVuc2lnbmVkIGxvbmcgaGFuZGxlLCB1 bnNpZ25lZCBsb25nIGdmbikKIAlyZXR1cm4gcmV0OwogfQogCi1zdHJ1Y3QgaW50ZWxfZ3Z0X21w dCBrdm1ndF9tcHQgPSB7CitzdGF0aWMgc3RydWN0IGludGVsX2d2dF9tcHQga3ZtZ3RfbXB0ID0g eworCS50eXBlID0gSU5URUxfR1ZUX0hZUEVSVklTT1JfS1ZNLAogCS5ob3N0X2luaXQgPSBrdm1n dF9ob3N0X2luaXQsCiAJLmhvc3RfZXhpdCA9IGt2bWd0X2hvc3RfZXhpdCwKIAkuYXR0YWNoX3Zn cHUgPSBrdm1ndF9hdHRhY2hfdmdwdSwKQEAgLTE4NjgsMTUgKzE4ODEsMTcgQEAgc3RydWN0IGlu dGVsX2d2dF9tcHQga3ZtZ3RfbXB0ID0gewogCS5wdXRfdmZpb19kZXZpY2UgPSBrdm1ndF9wdXRf dmZpb19kZXZpY2UsCiAJLmlzX3ZhbGlkX2dmbiA9IGt2bWd0X2lzX3ZhbGlkX2dmbiwKIH07Ci1F WFBPUlRfU1lNQk9MX0dQTChrdm1ndF9tcHQpOwogCiBzdGF0aWMgaW50IF9faW5pdCBrdm1ndF9p bml0KHZvaWQpCiB7CisJaWYgKGludGVsX2d2dF9yZWdpc3Rlcl9oeXBlcnZpc29yKCZrdm1ndF9t cHQpIDwgMCkKKwkJcmV0dXJuIC1FTk9ERVY7CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lk IF9fZXhpdCBrdm1ndF9leGl0KHZvaWQpCiB7CisJaW50ZWxfZ3Z0X3VucmVnaXN0ZXJfaHlwZXJ2 aXNvcigpOwogfQogCiBtb2R1bGVfaW5pdChrdm1ndF9pbml0KTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d2dC9tcHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9tcHQu aAppbmRleCBjOTVlZjc3ZGE2MmMuLjliNDIyNWQ0NDI0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L21wdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9tcHQu aApAQCAtMzYwLDQgKzM2MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9ndnRfaHlwZXJ2 aXNvcl9pc192YWxpZF9nZm4oCiAJcmV0dXJuIGludGVsX2d2dF9ob3N0Lm1wdC0+aXNfdmFsaWRf Z2ZuKHZncHUtPmhhbmRsZSwgZ2ZuKTsKIH0KIAoraW50IGludGVsX2d2dF9yZWdpc3Rlcl9oeXBl cnZpc29yKHN0cnVjdCBpbnRlbF9ndnRfbXB0ICopOwordm9pZCBpbnRlbF9ndnRfdW5yZWdpc3Rl cl9oeXBlcnZpc29yKHZvaWQpOworCiAjZW5kaWYgLyogX0dWVF9NUFRfSF8gKi8KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3Z0LmMKaW5kZXggYzIyYjNlMThhMGY1Li5kNzRlNTllMjJjOWQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2d2dC5jCkBAIC0xMDUsMTUgKzEwNSw2IEBAIGludCBpbnRlbF9ndnRfaW5p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCXJldHVybiAtRUlPOwogCX0K IAotCS8qCi0JICogV2UncmUgbm90IGluIGhvc3Qgb3IgZmFpbCB0byBmaW5kIGEgTVBUIG1vZHVs ZSwgZGlzYWJsZSBHVlQtZwotCSAqLwotCXJldCA9IGludGVsX2d2dF9pbml0X2hvc3QoKTsKLQlp ZiAocmV0KSB7Ci0JCURSTV9ERUJVR19EUklWRVIoIk5vdCBpbiBob3N0IG9yIE1QVCBtb2R1bGVz IG5vdCBmb3VuZFxuIik7Ci0JCWdvdG8gYmFpbDsKLQl9Ci0KIAlyZXQgPSBpbnRlbF9ndnRfaW5p dF9kZXZpY2UoZGV2X3ByaXYpOwogCWlmIChyZXQpIHsKIAkJRFJNX0RFQlVHX0RSSVZFUigiRmFp bCB0byBpbml0IEdWVCBkZXZpY2VcbiIpOwotLSAKMi4xOS4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK