From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhenyu Wang Subject: [PATCH v4] drm/i915/gvt: Change KVMGT as self load module Date: Tue, 4 Dec 2018 10:40:28 +0800 Message-ID: <20181204024028.11311-1-zhenyuw@linux.intel.com> References: <20181203040550.5171-4-zhenyuw@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181203040550.5171-4-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 List-Id: intel-gfx@lists.freedesktop.org VGhpcyB0cnlzIHRvIG1ha2UgJ2t2bWd0JyBtb2R1bGUgYXMgc2VsZiBsb2FkYWJsZSBpbnN0ZWFk IG9mIGxvYWRpbmcKYnkgaTkxNS9ndnQgZGV2aWNlIG1vZGVsLiBTbyBoeXBlcnZpc29yIHNwZWNp ZmljIG1vZHVsZSBjb3VsZCBiZQpzdGFuZC1hbG9uZSwgZS5nIG9ubHkgYWZ0ZXIgbG9hZGluZyBo eXBlcnZpc29yIHNwZWNpZmljIG1vZHVsZSwgR1ZUCmZlYXR1cmUgY291bGQgYmUgZW5hYmxlZCB2 aWEgc3BlY2lmaWMgaHlwZXJ2aXNvciBpbnRlcmZhY2UsIGUuZyBWRklPL21kZXYuCgpTbyB0aGlz IHRyeXMgdG8gdXNlIGh5cGVydmlzb3IgbW9kdWxlIHJlZ2lzdGVyL3VucmVnaXN0ZXIgaW50ZXJm YWNlCmZvciB0aGF0LiBIeXBlcnZpc29yIG1vZHVsZSBuZWVkcyB0byB0YWtlIGNhcmUgb2YgbW9k dWxlIHJlZmVyZW5jZQppdHNlbGYgd2hlbiB3b3JraW5nIGZvciBoeXBlcnZpc29yIGludGVyZmFj ZSwgZS5nIGZvciBWRklPL21kZXYsCmh5cGVydmlzb3IgbW9kdWxlIHdvdWxkIHJlZmVyZW5jZSBj b3VudGluZyBtZGV2IHdoZW4gb3BlbiBhbmQgcmVsZWFzZS4KClRoaXMgbWFrZXMgJ2t2bWd0JyBt b2R1bGUgcmVhbGx5IHNwbGl0IGZyb20gR1ZUIGRldmljZSBtb2RlbC4gVXNlcgpuZWVkcyB0byBs b2FkICdrdm1ndCcgdG8gZW5hYmxlIFZGSU8vbWRldiBpbnRlcmZhY2UuCgp2NDoKLSBmaXggY2hl Y2twYXRjaCB3YXJuaW5nCgp2MzoKLSBGaXggbW9kdWxlIHJlZmVyZW5jZSBoYW5kbGluZyBmb3Ig ZGV2aWNlIG9wZW4gYW5kIHJlbGVhc2UuIFVudXNlZAogIG1kZXYgZGV2aWNlcyB3b3VsZCBiZSBj bGVhbmVkIHVwIGluIGRldmljZSB1bnJlZ2lzdGVyIHdoZW4gbW9kdWxlIHVubG9hZC4KCnYyOgot IEZpeCBrdm1ndCBvcmRlciBhZnRlciBpOTE1IGZvciBidWlsdC1pbiBjYXNlCgpDYzogQWxleCBX aWxsaWFtc29uIDxhbGV4LndpbGxpYW1zb25AcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWmhl bnl1IFdhbmcgPHpoZW55dXdAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L01ha2VmaWxlICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvTWFr ZWZpbGUgICAgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jICAgICAgIHwg MTA3ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0 L2d2dC5oICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaHlwZXJjYWxs LmggfCAgIDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jICAgICB8ICAyMSAr KysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9tcHQuaCAgICAgICB8ICAgMyArCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndnQuYyAgICAgfCAgIDkgLS0tCiA4IGZpbGVzIGNoYW5n ZWQsIDcyIGluc2VydGlvbnMoKyksIDgzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUK aW5kZXggMGZmODc4Yzk5NGUyLi5hZTBkOTc1YTZmMzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCkBA IC0xOTUsMyArMTk1LDQgQEAgZW5kaWYKIGk5MTUteSArPSBpbnRlbF9scGVfYXVkaW8ubwogCiBv YmotJChDT05GSUdfRFJNX0k5MTUpICs9IGk5MTUubworb2JqLSQoQ09ORklHX0RSTV9JOTE1X0dW VF9LVk1HVCkgKz0gZ3Z0L2t2bWd0Lm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d2dC9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9NYWtlZmlsZQppbmRleCBi MDE2ZGM3NTNkYjkuLjI3MWZiNDZkNGRkMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Z0L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9NYWtlZmlsZQpA QCAtNyw0ICs3LDMgQEAgR1ZUX1NPVVJDRSA6PSBndnQubyBhcGVydHVyZV9nbS5vIGhhbmRsZXJz Lm8gdmdwdS5vIHRyYWNlX3BvaW50cy5vIGZpcm13YXJlLm8gXAogCiBjY2ZsYWdzLXkJCQkJKz0g LUkkKHNyYykgLUkkKHNyYykvJChHVlRfRElSKQogaTkxNS15CQkJCQkrPSAkKGFkZHByZWZpeCAk KEdWVF9ESVIpLywgJChHVlRfU09VUkNFKSkKLW9iai0kKENPTkZJR19EUk1fSTkxNV9HVlRfS1ZN R1QpCSs9ICQoR1ZUX0RJUikva3ZtZ3QubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Z0L2d2dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jCmluZGV4IGE1Yjc2 MGI3YmMxMC4uZTFjOWMyMDkxOGFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dnQvZ3Z0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jCkBAIC0xODcsNTIg KzE4Nyw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZ3Z0X29wcyBpbnRlbF9ndnRfb3Bz ID0gewogCS53cml0ZV9wcm90ZWN0X2hhbmRsZXIgPSBpbnRlbF92Z3B1X3BhZ2VfdHJhY2tfaGFu ZGxlciwKIH07CiAKLS8qKgotICogaW50ZWxfZ3Z0X2luaXRfaG9zdCAtIExvYWQgTVBUIG1vZHVs ZXMgYW5kIGRldGVjdCBpZiB3ZSdyZSBydW5uaW5nIGluIGhvc3QKLSAqCi0gKiBUaGlzIGZ1bmN0 aW9uIGlzIGNhbGxlZCBhdCB0aGUgZHJpdmVyIGxvYWRpbmcgc3RhZ2UuIElmIGZhaWxlZCB0byBm aW5kIGEKLSAqIGxvYWRhYmxlIE1QVCBtb2R1bGUgb3IgZGV0ZWN0IGN1cnJlbnRseSB3ZSdyZSBy dW5uaW5nIGluIGEgVk0sIHRoZW4gR1ZULWcKLSAqIHdpbGwgYmUgZGlzYWJsZWQKLSAqCi0gKiBS ZXR1cm5zOgotICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIGlmIGZhaWxl ZC4KLSAqCi0gKi8KLWludCBpbnRlbF9ndnRfaW5pdF9ob3N0KHZvaWQpCi17Ci0JaWYgKGludGVs X2d2dF9ob3N0LmluaXRpYWxpemVkKQotCQlyZXR1cm4gMDsKLQotCS8qIFhlbiBET00gVSAqLwot CWlmICh4ZW5fZG9tYWluKCkgJiYgIXhlbl9pbml0aWFsX2RvbWFpbigpKQotCQlyZXR1cm4gLUVO T0RFVjsKLQotCS8qIFRyeSB0byBsb2FkIE1QVCBtb2R1bGVzIGZvciBoeXBlcnZpc29ycyAqLwot CWlmICh4ZW5faW5pdGlhbF9kb21haW4oKSkgewotCQkvKiBJbiBYZW4gZG9tMCAqLwotCQlpbnRl bF9ndnRfaG9zdC5tcHQgPSB0cnlfdGhlbl9yZXF1ZXN0X21vZHVsZSgKLQkJCQlzeW1ib2xfZ2V0 KHhlbmd0X21wdCksICJ4ZW5ndCIpOwotCQlpbnRlbF9ndnRfaG9zdC5oeXBlcnZpc29yX3R5cGUg PSBJTlRFTF9HVlRfSFlQRVJWSVNPUl9YRU47Ci0JfSBlbHNlIHsKLSNpZiBJU19FTkFCTEVEKENP TkZJR19EUk1fSTkxNV9HVlRfS1ZNR1QpCi0JCS8qIG5vdCBpbiBYZW4uIFRyeSBLVk1HVCAqLwot CQlpbnRlbF9ndnRfaG9zdC5tcHQgPSB0cnlfdGhlbl9yZXF1ZXN0X21vZHVsZSgKLQkJCQlzeW1i b2xfZ2V0KGt2bWd0X21wdCksICJrdm1ndCIpOwotCQlpbnRlbF9ndnRfaG9zdC5oeXBlcnZpc29y X3R5cGUgPSBJTlRFTF9HVlRfSFlQRVJWSVNPUl9LVk07Ci0jZW5kaWYKLQl9Ci0KLQkvKiBGYWls IHRvIGxvYWQgTVBUIG1vZHVsZXMgLSBiYWlsIG91dCAqLwotCWlmICghaW50ZWxfZ3Z0X2hvc3Qu bXB0KQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWd2dF9kYmdfY29yZSgiUnVubmluZyB3aXRoIGh5 cGVydmlzb3IgJXMgaW4gaG9zdCBtb2RlXG4iLAotCQkJc3VwcG9ydGVkX2h5cGVydmlzb3JzW2lu dGVsX2d2dF9ob3N0Lmh5cGVydmlzb3JfdHlwZV0pOwotCi0JaW50ZWxfZ3Z0X2hvc3QuaW5pdGlh bGl6ZWQgPSB0cnVlOwotCXJldHVybiAwOwotfQotCiBzdGF0aWMgdm9pZCBpbml0X2RldmljZV9p bmZvKHN0cnVjdCBpbnRlbF9ndnQgKmd2dCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZ3Z0X2RldmljZV9p bmZvICppbmZvID0gJmd2dC0+ZGV2aWNlX2luZm87CkBAIC0zMTYsNyArMjcwLDYgQEAgdm9pZCBp bnRlbF9ndnRfY2xlYW5fZGV2aWNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAkJcmV0dXJuOwogCiAJaW50ZWxfZ3Z0X2Rlc3Ryb3lfaWRsZV92Z3B1KGd2dC0+aWRsZV92Z3B1 KTsKLQlpbnRlbF9ndnRfaHlwZXJ2aXNvcl9ob3N0X2V4aXQoJmRldl9wcml2LT5kcm0ucGRldi0+ ZGV2KTsKIAlpbnRlbF9ndnRfY2xlYW51cF92Z3B1X3R5cGVfZ3JvdXBzKGd2dCk7CiAJaW50ZWxf Z3Z0X2NsZWFuX3ZncHVfdHlwZXMoZ3Z0KTsKIApAQCAtMzUyLDEzICszMDUsNiBAQCBpbnQgaW50 ZWxfZ3Z0X2luaXRfZGV2aWNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlz dHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdTsKIAlpbnQgcmV0OwogCi0JLyoKLQkgKiBDYW5ub3QgaW5p dGlhbGl6ZSBHVlQgZGV2aWNlIHdpdGhvdXQgaW50ZWxfZ3Z0X2hvc3QgZ2V0cwotCSAqIGluaXRp YWxpemVkIGZpcnN0LgotCSAqLwotCWlmIChXQVJOX09OKCFpbnRlbF9ndnRfaG9zdC5pbml0aWFs aXplZCkpCi0JCXJldHVybiAtRUlOVkFMOwotCiAJaWYgKFdBUk5fT04oZGV2X3ByaXYtPmd2dCkp CiAJCXJldHVybiAtRUVYSVNUOwogCkBAIC00MjAsMTMgKzM2Niw2IEBAIGludCBpbnRlbF9ndnRf aW5pdF9kZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlnb3RvIG91 dF9jbGVhbl90eXBlczsKIAl9CiAKLQlyZXQgPSBpbnRlbF9ndnRfaHlwZXJ2aXNvcl9ob3N0X2lu aXQoJmRldl9wcml2LT5kcm0ucGRldi0+ZGV2LCBndnQsCi0JCQkJJmludGVsX2d2dF9vcHMpOwot CWlmIChyZXQpIHsKLQkJZ3Z0X2VycigiZmFpbGVkIHRvIHJlZ2lzdGVyIGd2dC1nIGhvc3QgZGV2 aWNlOiAlZFxuIiwgcmV0KTsKLQkJZ290byBvdXRfY2xlYW5fdHlwZXM7Ci0JfQotCiAJdmdwdSA9 IGludGVsX2d2dF9jcmVhdGVfaWRsZV92Z3B1KGd2dCk7CiAJaWYgKElTX0VSUih2Z3B1KSkgewog CQlyZXQgPSBQVFJfRVJSKHZncHUpOwpAQCAtNDQxLDYgKzM4MCw4IEBAIGludCBpbnRlbF9ndnRf aW5pdF9kZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJZ3Z0X2Ri Z19jb3JlKCJndnQgZGV2aWNlIGluaXRpYWxpemF0aW9uIGlzIGRvbmVcbiIpOwogCWRldl9wcml2 LT5ndnQgPSBndnQ7CisJaW50ZWxfZ3Z0X2hvc3QuZGV2ID0gJmRldl9wcml2LT5kcm0ucGRldi0+ ZGV2OworCWludGVsX2d2dF9ob3N0LmluaXRpYWxpemVkID0gdHJ1ZTsKIAlyZXR1cm4gMDsKIAog b3V0X2NsZWFuX3R5cGVzOgpAQCAtNDY3LDYgKzQwOCw0NCBAQCBpbnQgaW50ZWxfZ3Z0X2luaXRf ZGV2aWNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gcmV0Owog fQogCi0jaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfR1ZUX0tWTUdUKQotTU9EVUxFX1NP RlRERVAoInByZToga3ZtZ3QiKTsKLSNlbmRpZgoraW50CitpbnRlbF9ndnRfcmVnaXN0ZXJfaHlw ZXJ2aXNvcihzdHJ1Y3QgaW50ZWxfZ3Z0X21wdCAqbSkKK3sKKwlpbnQgcmV0OworCXZvaWQgKmd2 dDsKKworCWlmICghaW50ZWxfZ3Z0X2hvc3QuaW5pdGlhbGl6ZWQpCisJCXJldHVybiAtRU5PREVW OworCisJaWYgKG0tPnR5cGUgIT0gSU5URUxfR1ZUX0hZUEVSVklTT1JfS1ZNICYmCisJICAgIG0t PnR5cGUgIT0gSU5URUxfR1ZUX0hZUEVSVklTT1JfWEVOKQorCQlyZXR1cm4gLUVJTlZBTDsKKwor CS8qIEdldCBhIHJlZmVyZW5jZSBmb3IgZGV2aWNlIG1vZGVsIG1vZHVsZSAqLworCWlmICghdHJ5 X21vZHVsZV9nZXQoVEhJU19NT0RVTEUpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWludGVsX2d2 dF9ob3N0Lm1wdCA9IG07CisJaW50ZWxfZ3Z0X2hvc3QuaHlwZXJ2aXNvcl90eXBlID0gbS0+dHlw ZTsKKwlndnQgPSAodm9pZCAqKWtkZXZfdG9faTkxNShpbnRlbF9ndnRfaG9zdC5kZXYpLT5ndnQ7 CisKKwlyZXQgPSBpbnRlbF9ndnRfaHlwZXJ2aXNvcl9ob3N0X2luaXQoaW50ZWxfZ3Z0X2hvc3Qu ZGV2LCBndnQsCisJCQkJCSAgICAgJmludGVsX2d2dF9vcHMpOworCWlmIChyZXQgPCAwKSB7CisJ CWd2dF9lcnIoIkZhaWxlZCB0byBpbml0ICVzIGh5cGVydmlzb3IgbW9kdWxlXG4iLAorCQkJc3Vw cG9ydGVkX2h5cGVydmlzb3JzW2ludGVsX2d2dF9ob3N0Lmh5cGVydmlzb3JfdHlwZV0pOworCQly ZXR1cm4gLUVOT0RFVjsKKwl9CisJZ3Z0X2RiZ19jb3JlKCJSdW5uaW5nIHdpdGggaHlwZXJ2aXNv ciAlcyBpbiBob3N0IG1vZGVcbiIsCisJCSAgICAgc3VwcG9ydGVkX2h5cGVydmlzb3JzW2ludGVs X2d2dF9ob3N0Lmh5cGVydmlzb3JfdHlwZV0pOworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJP TF9HUEwoaW50ZWxfZ3Z0X3JlZ2lzdGVyX2h5cGVydmlzb3IpOworCit2b2lkCitpbnRlbF9ndnRf dW5yZWdpc3Rlcl9oeXBlcnZpc29yKHZvaWQpCit7CisJaW50ZWxfZ3Z0X2h5cGVydmlzb3JfaG9z dF9leGl0KGludGVsX2d2dF9ob3N0LmRldik7CisJbW9kdWxlX3B1dChUSElTX01PRFVMRSk7Cit9 CitFWFBPUlRfU1lNQk9MX0dQTChpbnRlbF9ndnRfdW5yZWdpc3Rlcl9oeXBlcnZpc29yKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d2dC9ndnQuaAppbmRleCBiNGFiMWRhZDAxNDMuLjhhNGNmOTk1ZDc1NSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d2dC9ndnQuaApAQCAtNTIsMTIgKzUyLDggQEAKIAogI2RlZmluZSBHVlRfTUFYX1ZH UFUgOAogCi1lbnVtIHsKLQlJTlRFTF9HVlRfSFlQRVJWSVNPUl9YRU4gPSAwLAotCUlOVEVMX0dW VF9IWVBFUlZJU09SX0tWTSwKLX07Ci0KIHN0cnVjdCBpbnRlbF9ndnRfaG9zdCB7CisJc3RydWN0 IGRldmljZSAqZGV2OwogCWJvb2wgaW5pdGlhbGl6ZWQ7CiAJaW50IGh5cGVydmlzb3JfdHlwZTsK IAlzdHJ1Y3QgaW50ZWxfZ3Z0X21wdCAqbXB0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Z0L2h5cGVyY2FsbC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2h5cGVyY2Fs bC5oCmluZGV4IGU0OWE5MjQ3ZWQ3OC4uNTA3OTg4NjhhYjE1IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndnQvaHlwZXJjYWxsLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3Z0L2h5cGVyY2FsbC5oCkBAIC0zMywxMSArMzMsMTcgQEAKICNpZm5kZWYgX0dWVF9IWVBFUkNB TExfSF8KICNkZWZpbmUgX0dWVF9IWVBFUkNBTExfSF8KIAorZW51bSBoeXBlcnZpc29yX3R5cGUg eworCUlOVEVMX0dWVF9IWVBFUlZJU09SX1hFTiA9IDAsCisJSU5URUxfR1ZUX0hZUEVSVklTT1Jf S1ZNLAorfTsKKwogLyoKICAqIFNwZWNpZmljIEdWVC1nIE1QVCBtb2R1bGVzIGZ1bmN0aW9uIGNv bGxlY3Rpb25zLiBDdXJyZW50bHkgR1ZULWcgc3VwcG9ydHMKICAqIGJvdGggWGVuIGFuZCBLVk0g YnkgcHJvdmlkaW5nIGRlZGljYXRlZCBoeXBlcnZpc29yLXJlbGF0ZWQgTVBUIG1vZHVsZXMuCiAg Ki8KIHN0cnVjdCBpbnRlbF9ndnRfbXB0IHsKKwllbnVtIGh5cGVydmlzb3JfdHlwZSB0eXBlOwog CWludCAoKmhvc3RfaW5pdCkoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpndnQsIGNvbnN0IHZv aWQgKm9wcyk7CiAJdm9pZCAoKmhvc3RfZXhpdCkoc3RydWN0IGRldmljZSAqZGV2KTsKIAlpbnQg KCphdHRhY2hfdmdwdSkodm9pZCAqdmdwdSwgdW5zaWduZWQgbG9uZyAqaGFuZGxlKTsKQEAgLTY3 LDYgKzczLDUgQEAgc3RydWN0IGludGVsX2d2dF9tcHQgewogfTsKIAogZXh0ZXJuIHN0cnVjdCBp bnRlbF9ndnRfbXB0IHhlbmd0X21wdDsKLWV4dGVybiBzdHJ1Y3QgaW50ZWxfZ3Z0X21wdCBrdm1n dF9tcHQ7CiAKICNlbmRpZiAvKiBfR1ZUX0hZUEVSQ0FMTF9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQv a3ZtZ3QuYwppbmRleCAxYmJkMDRkMzBjNDIuLmVmMjQ4ZDU3N2U0OSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3Z0L2t2bWd0LmMKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJndnQuaCIKIAogc3RhdGlj IGNvbnN0IHN0cnVjdCBpbnRlbF9ndnRfb3BzICppbnRlbF9ndnRfb3BzOworc3RhdGljIHN0cnVj dCBpbnRlbF9ndnQgKmludGVsX2d2dDsKIAogLyogaGVscGVyIG1hY3JvcyBjb3BpZWQgZnJvbSB2 ZmlvLXBjaSAqLwogI2RlZmluZSBWRklPX1BDSV9PRkZTRVRfU0hJRlQgICA0MApAQCAtNjI3LDYg KzYyOCwxMiBAQCBzdGF0aWMgaW50IGludGVsX3ZncHVfb3BlbihzdHJ1Y3QgbWRldl9kZXZpY2Ug Km1kZXYpCiAJCWdvdG8gdW5kb19pb21tdTsKIAl9CiAKKwkvKiBUYWtlIGEgbW9kdWxlIHJlZmVy ZW5jZSBhcyBtZGV2IGNvcmUgZG9lc24ndCB0YWtlCisJICogYSByZWZlcmVuY2UgZm9yIHZlbmRv ciBkcml2ZXIuCisJICovCisJaWYgKCF0cnlfbW9kdWxlX2dldChUSElTX01PRFVMRSkpCisJCWdv dG8gdW5kb19ncm91cDsKKwogCXJldCA9IGt2bWd0X2d1ZXN0X2luaXQobWRldik7CiAJaWYgKHJl dCkKIAkJZ290byB1bmRvX2dyb3VwOwpAQCAtNjc5LDYgKzY4Niw5IEBAIHN0YXRpYyB2b2lkIF9f aW50ZWxfdmdwdV9yZWxlYXNlKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1KQogCQkJCQkmdmdwdS0+ dmRldi5ncm91cF9ub3RpZmllcik7CiAJV0FSTihyZXQsICJ2ZmlvX3VucmVnaXN0ZXJfbm90aWZp ZXIgZm9yIGdyb3VwIGZhaWxlZDogJWRcbiIsIHJldCk7CiAKKwkvKiBkZXJlZmVyZW5jZSBtb2R1 bGUgcmVmZXJlbmNlIHRha2VuIGF0IG9wZW4gKi8KKwltb2R1bGVfcHV0KFRISVNfTU9EVUxFKTsK KwogCWluZm8gPSAoc3RydWN0IGt2bWd0X2d1ZXN0X2luZm8gKil2Z3B1LT5oYW5kbGU7CiAJa3Zt Z3RfZ3Vlc3RfZXhpdChpbmZvKTsKIApAQCAtMTQ1OSw4ICsxNDY5LDEwIEBAIHN0YXRpYyBpbnQg a3ZtZ3RfaG9zdF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZ3Z0LCBjb25zdCB2b2lk ICpvcHMpCiAJc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmt2bV92Z3B1X3R5cGVfZ3JvdXBzOwog CiAJaW50ZWxfZ3Z0X29wcyA9IG9wczsKKwlpbnRlbF9ndnQgPSAoc3RydWN0IGludGVsX2d2dCAq KWd2dDsKKwogCWlmICghaW50ZWxfZ3Z0X29wcy0+Z2V0X2d2dF9hdHRycygma3ZtX3R5cGVfYXR0 cnMsCi0JCQkma3ZtX3ZncHVfdHlwZV9ncm91cHMpKQorCQkJCQkgICZrdm1fdmdwdV90eXBlX2dy b3VwcykpCiAJCXJldHVybiAtRUZBVUxUOwogCWludGVsX3ZncHVfb3BzLnN1cHBvcnRlZF90eXBl X2dyb3VwcyA9IGt2bV92Z3B1X3R5cGVfZ3JvdXBzOwogCkBAIC0xODQ5LDcgKzE4NjEsOCBAQCBz dGF0aWMgYm9vbCBrdm1ndF9pc192YWxpZF9nZm4odW5zaWduZWQgbG9uZyBoYW5kbGUsIHVuc2ln bmVkIGxvbmcgZ2ZuKQogCXJldHVybiByZXQ7CiB9CiAKLXN0cnVjdCBpbnRlbF9ndnRfbXB0IGt2 bWd0X21wdCA9IHsKK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfZ3Z0X21wdCBrdm1ndF9tcHQgPSB7CisJ LnR5cGUgPSBJTlRFTF9HVlRfSFlQRVJWSVNPUl9LVk0sCiAJLmhvc3RfaW5pdCA9IGt2bWd0X2hv c3RfaW5pdCwKIAkuaG9zdF9leGl0ID0ga3ZtZ3RfaG9zdF9leGl0LAogCS5hdHRhY2hfdmdwdSA9 IGt2bWd0X2F0dGFjaF92Z3B1LApAQCAtMTg2OCwxNSArMTg4MSwxNyBAQCBzdHJ1Y3QgaW50ZWxf Z3Z0X21wdCBrdm1ndF9tcHQgPSB7CiAJLnB1dF92ZmlvX2RldmljZSA9IGt2bWd0X3B1dF92Zmlv X2RldmljZSwKIAkuaXNfdmFsaWRfZ2ZuID0ga3ZtZ3RfaXNfdmFsaWRfZ2ZuLAogfTsKLUVYUE9S VF9TWU1CT0xfR1BMKGt2bWd0X21wdCk7CiAKIHN0YXRpYyBpbnQgX19pbml0IGt2bWd0X2luaXQo dm9pZCkKIHsKKwlpZiAoaW50ZWxfZ3Z0X3JlZ2lzdGVyX2h5cGVydmlzb3IoJmt2bWd0X21wdCkg PCAwKQorCQlyZXR1cm4gLUVOT0RFVjsKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgX19l eGl0IGt2bWd0X2V4aXQodm9pZCkKIHsKKwlpbnRlbF9ndnRfdW5yZWdpc3Rlcl9oeXBlcnZpc29y KCk7CiB9CiAKIG1vZHVsZV9pbml0KGt2bWd0X2luaXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L21wdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L21wdC5oCmlu ZGV4IGM5NWVmNzdkYTYyYy4uOWI0MjI1ZDQ0MjQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndnQvbXB0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L21wdC5oCkBA IC0zNjAsNCArMzYwLDcgQEAgc3RhdGljIGlubGluZSBib29sIGludGVsX2d2dF9oeXBlcnZpc29y X2lzX3ZhbGlkX2dmbigKIAlyZXR1cm4gaW50ZWxfZ3Z0X2hvc3QubXB0LT5pc192YWxpZF9nZm4o dmdwdS0+aGFuZGxlLCBnZm4pOwogfQogCitpbnQgaW50ZWxfZ3Z0X3JlZ2lzdGVyX2h5cGVydmlz b3Ioc3RydWN0IGludGVsX2d2dF9tcHQgKik7Cit2b2lkIGludGVsX2d2dF91bnJlZ2lzdGVyX2h5 cGVydmlzb3Iodm9pZCk7CisKICNlbmRpZiAvKiBfR1ZUX01QVF9IXyAqLwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Z0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndnQuYwppbmRleCBjMjJiM2UxOGEwZjUuLmQ3NGU1OWUyMmM5ZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Z0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3Z0LmMKQEAgLTEwNSwxNSArMTA1LDYgQEAgaW50IGludGVsX2d2dF9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJcmV0dXJuIC1FSU87CiAJfQogCi0J LyoKLQkgKiBXZSdyZSBub3QgaW4gaG9zdCBvciBmYWlsIHRvIGZpbmQgYSBNUFQgbW9kdWxlLCBk aXNhYmxlIEdWVC1nCi0JICovCi0JcmV0ID0gaW50ZWxfZ3Z0X2luaXRfaG9zdCgpOwotCWlmIChy ZXQpIHsKLQkJRFJNX0RFQlVHX0RSSVZFUigiTm90IGluIGhvc3Qgb3IgTVBUIG1vZHVsZXMgbm90 IGZvdW5kXG4iKTsKLQkJZ290byBiYWlsOwotCX0KLQogCXJldCA9IGludGVsX2d2dF9pbml0X2Rl dmljZShkZXZfcHJpdik7CiAJaWYgKHJldCkgewogCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsIHRv IGluaXQgR1ZUIGRldmljZVxuIik7Ci0tIAoyLjE5LjEKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=