From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhenyu Wang Subject: [PATCH v2] drm/i915/gvt: Change KVMGT as self load module Date: Fri, 30 Nov 2018 14:51:24 +0800 Message-ID: <20181130065124.4325-1-zhenyuw@linux.intel.com> References: <20181130060838.4528-3-zhenyuw@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181130060838.4528-3-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 ZSwgZS5nIHJlZmVyZW5jZSBjb3VudGluZwpmb3IgYW55IFZGSU8vbWRldiBjcmVhdGlvbi4KClRo aXMgbWFrZXMgJ2t2bWd0JyBtb2R1bGUgcmVhbGx5IHNwbGl0IGZyb20gR1ZUIGRldmljZSBtb2Rl bC4gVXNlcgpuZWVkcyB0byBsb2FkICdrdm1ndCcgdG8gZW5hYmxlIFZGSU8vbWRldiBpbnRlcmZh Y2UuCgp2MjoKLSBGaXgga3ZtZ3Qgb3JkZXIgYWZ0ZXIgaTkxNSBmb3IgYnVpbHQtaW4gY2FzZQoK U2lnbmVkLW9mZi1ieTogWmhlbnl1IFdhbmcgPHpoZW55dXdAbGludXguaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9ndnQvTWFrZWZpbGUgICAgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3Z0L2d2dC5jICAgICAgIHwgMTA3ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9ndnQvaHlwZXJjYWxsLmggfCAgIDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9r dm1ndC5jICAgICB8ICAxNyArKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L21wdC5oICAg ICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jICAgICB8ICAgOSAt LS0KIDggZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgODUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9NYWtlZmlsZQppbmRleCAwZmY4NzhjOTk0ZTIuLmFlMGQ5NzVhNmYzNCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvTWFrZWZpbGUKQEAgLTE5NSwzICsxOTUsNCBAQCBlbmRpZgogaTkxNS15ICs9IGludGVs X2xwZV9hdWRpby5vCiAKIG9iai0kKENPTkZJR19EUk1fSTkxNSkgKz0gaTkxNS5vCitvYmotJChD T05GSUdfRFJNX0k5MTVfR1ZUX0tWTUdUKSArPSBndnQva3ZtZ3QubwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0 L01ha2VmaWxlCmluZGV4IGIwMTZkYzc1M2RiOS4uMjcxZmI0NmQ0ZGQwIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Z0L01ha2VmaWxlCkBAIC03LDQgKzcsMyBAQCBHVlRfU09VUkNFIDo9IGd2dC5vIGFwZXJ0 dXJlX2dtLm8gaGFuZGxlcnMubyB2Z3B1Lm8gdHJhY2VfcG9pbnRzLm8gZmlybXdhcmUubyBcCiAK IGNjZmxhZ3MteQkJCQkrPSAtSSQoc3JjKSAtSSQoc3JjKS8kKEdWVF9ESVIpCiBpOTE1LXkJCQkJ CSs9ICQoYWRkcHJlZml4ICQoR1ZUX0RJUikvLCAkKEdWVF9TT1VSQ0UpKQotb2JqLSQoQ09ORklH X0RSTV9JOTE1X0dWVF9LVk1HVCkJKz0gJChHVlRfRElSKS9rdm1ndC5vCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQv Z3Z0LmMKaW5kZXggYTViNzYwYjdiYzEwLi5lMWM5YzIwOTE4YWYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQv Z3Z0LmMKQEAgLTE4Nyw1MiArMTg3LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9ndnRf b3BzIGludGVsX2d2dF9vcHMgPSB7CiAJLndyaXRlX3Byb3RlY3RfaGFuZGxlciA9IGludGVsX3Zn cHVfcGFnZV90cmFja19oYW5kbGVyLAogfTsKIAotLyoqCi0gKiBpbnRlbF9ndnRfaW5pdF9ob3N0 IC0gTG9hZCBNUFQgbW9kdWxlcyBhbmQgZGV0ZWN0IGlmIHdlJ3JlIHJ1bm5pbmcgaW4gaG9zdAot ICoKLSAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGF0IHRoZSBkcml2ZXIgbG9hZGluZyBzdGFn ZS4gSWYgZmFpbGVkIHRvIGZpbmQgYQotICogbG9hZGFibGUgTVBUIG1vZHVsZSBvciBkZXRlY3Qg Y3VycmVudGx5IHdlJ3JlIHJ1bm5pbmcgaW4gYSBWTSwgdGhlbiBHVlQtZwotICogd2lsbCBiZSBk aXNhYmxlZAotICoKLSAqIFJldHVybnM6Ci0gKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVy cm9yIGNvZGUgaWYgZmFpbGVkLgotICoKLSAqLwotaW50IGludGVsX2d2dF9pbml0X2hvc3Qodm9p ZCkKLXsKLQlpZiAoaW50ZWxfZ3Z0X2hvc3QuaW5pdGlhbGl6ZWQpCi0JCXJldHVybiAwOwotCi0J LyogWGVuIERPTSBVICovCi0JaWYgKHhlbl9kb21haW4oKSAmJiAheGVuX2luaXRpYWxfZG9tYWlu KCkpCi0JCXJldHVybiAtRU5PREVWOwotCi0JLyogVHJ5IHRvIGxvYWQgTVBUIG1vZHVsZXMgZm9y IGh5cGVydmlzb3JzICovCi0JaWYgKHhlbl9pbml0aWFsX2RvbWFpbigpKSB7Ci0JCS8qIEluIFhl biBkb20wICovCi0JCWludGVsX2d2dF9ob3N0Lm1wdCA9IHRyeV90aGVuX3JlcXVlc3RfbW9kdWxl KAotCQkJCXN5bWJvbF9nZXQoeGVuZ3RfbXB0KSwgInhlbmd0Iik7Ci0JCWludGVsX2d2dF9ob3N0 Lmh5cGVydmlzb3JfdHlwZSA9IElOVEVMX0dWVF9IWVBFUlZJU09SX1hFTjsKLQl9IGVsc2Ugewot I2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0dWVF9LVk1HVCkKLQkJLyogbm90IGluIFhl bi4gVHJ5IEtWTUdUICovCi0JCWludGVsX2d2dF9ob3N0Lm1wdCA9IHRyeV90aGVuX3JlcXVlc3Rf bW9kdWxlKAotCQkJCXN5bWJvbF9nZXQoa3ZtZ3RfbXB0KSwgImt2bWd0Iik7Ci0JCWludGVsX2d2 dF9ob3N0Lmh5cGVydmlzb3JfdHlwZSA9IElOVEVMX0dWVF9IWVBFUlZJU09SX0tWTTsKLSNlbmRp ZgotCX0KLQotCS8qIEZhaWwgdG8gbG9hZCBNUFQgbW9kdWxlcyAtIGJhaWwgb3V0ICovCi0JaWYg KCFpbnRlbF9ndnRfaG9zdC5tcHQpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JZ3Z0X2RiZ19jb3Jl KCJSdW5uaW5nIHdpdGggaHlwZXJ2aXNvciAlcyBpbiBob3N0IG1vZGVcbiIsCi0JCQlzdXBwb3J0 ZWRfaHlwZXJ2aXNvcnNbaW50ZWxfZ3Z0X2hvc3QuaHlwZXJ2aXNvcl90eXBlXSk7Ci0KLQlpbnRl bF9ndnRfaG9zdC5pbml0aWFsaXplZCA9IHRydWU7Ci0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyB2 b2lkIGluaXRfZGV2aWNlX2luZm8oc3RydWN0IGludGVsX2d2dCAqZ3Z0KQogewogCXN0cnVjdCBp bnRlbF9ndnRfZGV2aWNlX2luZm8gKmluZm8gPSAmZ3Z0LT5kZXZpY2VfaW5mbzsKQEAgLTMxNiw3 ICsyNzAsNiBAQCB2b2lkIGludGVsX2d2dF9jbGVhbl9kZXZpY2Uoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogCQlyZXR1cm47CiAKIAlpbnRlbF9ndnRfZGVzdHJveV9pZGxlX3Zn cHUoZ3Z0LT5pZGxlX3ZncHUpOwotCWludGVsX2d2dF9oeXBlcnZpc29yX2hvc3RfZXhpdCgmZGV2 X3ByaXYtPmRybS5wZGV2LT5kZXYpOwogCWludGVsX2d2dF9jbGVhbnVwX3ZncHVfdHlwZV9ncm91 cHMoZ3Z0KTsKIAlpbnRlbF9ndnRfY2xlYW5fdmdwdV90eXBlcyhndnQpOwogCkBAIC0zNTIsMTMg KzMwNSw2IEBAIGludCBpbnRlbF9ndnRfaW5pdF9kZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogCXN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1OwogCWludCByZXQ7CiAKLQkv KgotCSAqIENhbm5vdCBpbml0aWFsaXplIEdWVCBkZXZpY2Ugd2l0aG91dCBpbnRlbF9ndnRfaG9z dCBnZXRzCi0JICogaW5pdGlhbGl6ZWQgZmlyc3QuCi0JICovCi0JaWYgKFdBUk5fT04oIWludGVs X2d2dF9ob3N0LmluaXRpYWxpemVkKSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KIAlpZiAoV0FSTl9P TihkZXZfcHJpdi0+Z3Z0KSkKIAkJcmV0dXJuIC1FRVhJU1Q7CiAKQEAgLTQyMCwxMyArMzY2LDYg QEAgaW50IGludGVsX2d2dF9pbml0X2RldmljZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAJCWdvdG8gb3V0X2NsZWFuX3R5cGVzOwogCX0KIAotCXJldCA9IGludGVsX2d2dF9o eXBlcnZpc29yX2hvc3RfaW5pdCgmZGV2X3ByaXYtPmRybS5wZGV2LT5kZXYsIGd2dCwKLQkJCQkm aW50ZWxfZ3Z0X29wcyk7Ci0JaWYgKHJldCkgewotCQlndnRfZXJyKCJmYWlsZWQgdG8gcmVnaXN0 ZXIgZ3Z0LWcgaG9zdCBkZXZpY2U6ICVkXG4iLCByZXQpOwotCQlnb3RvIG91dF9jbGVhbl90eXBl czsKLQl9Ci0KIAl2Z3B1ID0gaW50ZWxfZ3Z0X2NyZWF0ZV9pZGxlX3ZncHUoZ3Z0KTsKIAlpZiAo SVNfRVJSKHZncHUpKSB7CiAJCXJldCA9IFBUUl9FUlIodmdwdSk7CkBAIC00NDEsNiArMzgwLDgg QEAgaW50IGludGVsX2d2dF9pbml0X2RldmljZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAKIAlndnRfZGJnX2NvcmUoImd2dCBkZXZpY2UgaW5pdGlhbGl6YXRpb24gaXMgZG9u ZVxuIik7CiAJZGV2X3ByaXYtPmd2dCA9IGd2dDsKKwlpbnRlbF9ndnRfaG9zdC5kZXYgPSAmZGV2 X3ByaXYtPmRybS5wZGV2LT5kZXY7CisJaW50ZWxfZ3Z0X2hvc3QuaW5pdGlhbGl6ZWQgPSB0cnVl OwogCXJldHVybiAwOwogCiBvdXRfY2xlYW5fdHlwZXM6CkBAIC00NjcsNiArNDA4LDQ0IEBAIGlu dCBpbnRlbF9ndnRfaW5pdF9kZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCXJldHVybiByZXQ7CiB9CiAKLSNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9HVlRf S1ZNR1QpCi1NT0RVTEVfU09GVERFUCgicHJlOiBrdm1ndCIpOwotI2VuZGlmCitpbnQKK2ludGVs X2d2dF9yZWdpc3Rlcl9oeXBlcnZpc29yKHN0cnVjdCBpbnRlbF9ndnRfbXB0ICptKQoreworCWlu dCByZXQ7CisJdm9pZCAqZ3Z0OworCisJaWYgKCFpbnRlbF9ndnRfaG9zdC5pbml0aWFsaXplZCkK KwkJcmV0dXJuIC1FTk9ERVY7CisKKwlpZiAobS0+dHlwZSAhPSBJTlRFTF9HVlRfSFlQRVJWSVNP Ul9LVk0gJiYKKwkgICAgbS0+dHlwZSAhPSBJTlRFTF9HVlRfSFlQRVJWSVNPUl9YRU4pCisJCXJl dHVybiAtRUlOVkFMOworCisJLyogR2V0IGEgcmVmZXJlbmNlIGZvciBkZXZpY2UgbW9kZWwgbW9k dWxlICovCisJaWYgKCF0cnlfbW9kdWxlX2dldChUSElTX01PRFVMRSkpCisJCXJldHVybiAtRU5P REVWOworCisJaW50ZWxfZ3Z0X2hvc3QubXB0ID0gbTsKKwlpbnRlbF9ndnRfaG9zdC5oeXBlcnZp c29yX3R5cGUgPSBtLT50eXBlOworCWd2dCA9ICh2b2lkICopa2Rldl90b19pOTE1KGludGVsX2d2 dF9ob3N0LmRldiktPmd2dDsKKworCXJldCA9IGludGVsX2d2dF9oeXBlcnZpc29yX2hvc3RfaW5p dChpbnRlbF9ndnRfaG9zdC5kZXYsIGd2dCwKKwkJCQkJICAgICAmaW50ZWxfZ3Z0X29wcyk7CisJ aWYgKHJldCA8IDApIHsKKwkJZ3Z0X2VycigiRmFpbGVkIHRvIGluaXQgJXMgaHlwZXJ2aXNvciBt b2R1bGVcbiIsCisJCQlzdXBwb3J0ZWRfaHlwZXJ2aXNvcnNbaW50ZWxfZ3Z0X2hvc3QuaHlwZXJ2 aXNvcl90eXBlXSk7CisJCXJldHVybiAtRU5PREVWOworCX0KKwlndnRfZGJnX2NvcmUoIlJ1bm5p bmcgd2l0aCBoeXBlcnZpc29yICVzIGluIGhvc3QgbW9kZVxuIiwKKwkJICAgICBzdXBwb3J0ZWRf aHlwZXJ2aXNvcnNbaW50ZWxfZ3Z0X2hvc3QuaHlwZXJ2aXNvcl90eXBlXSk7CisJcmV0dXJuIDA7 Cit9CitFWFBPUlRfU1lNQk9MX0dQTChpbnRlbF9ndnRfcmVnaXN0ZXJfaHlwZXJ2aXNvcik7CisK K3ZvaWQKK2ludGVsX2d2dF91bnJlZ2lzdGVyX2h5cGVydmlzb3Iodm9pZCkKK3sKKwlpbnRlbF9n dnRfaHlwZXJ2aXNvcl9ob3N0X2V4aXQoaW50ZWxfZ3Z0X2hvc3QuZGV2KTsKKwltb2R1bGVfcHV0 KFRISVNfTU9EVUxFKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGludGVsX2d2dF91bnJlZ2lzdGVy X2h5cGVydmlzb3IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oCmluZGV4IGI0YWIxZGFkMDE0My4uOGE0 Y2Y5OTVkNzU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oCkBAIC01MiwxMiArNTIsOCBAQAogCiAj ZGVmaW5lIEdWVF9NQVhfVkdQVSA4CiAKLWVudW0gewotCUlOVEVMX0dWVF9IWVBFUlZJU09SX1hF TiA9IDAsCi0JSU5URUxfR1ZUX0hZUEVSVklTT1JfS1ZNLAotfTsKLQogc3RydWN0IGludGVsX2d2 dF9ob3N0IHsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CiAJYm9vbCBpbml0aWFsaXplZDsKIAlpbnQg aHlwZXJ2aXNvcl90eXBlOwogCXN0cnVjdCBpbnRlbF9ndnRfbXB0ICptcHQ7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaHlwZXJjYWxsLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndnQvaHlwZXJjYWxsLmgKaW5kZXggZTQ5YTkyNDdlZDc4Li41MDc5ODg2OGFiMTUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9oeXBlcmNhbGwuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaHlwZXJjYWxsLmgKQEAgLTMzLDExICszMywxNyBAQAogI2lm bmRlZiBfR1ZUX0hZUEVSQ0FMTF9IXwogI2RlZmluZSBfR1ZUX0hZUEVSQ0FMTF9IXwogCitlbnVt IGh5cGVydmlzb3JfdHlwZSB7CisJSU5URUxfR1ZUX0hZUEVSVklTT1JfWEVOID0gMCwKKwlJTlRF TF9HVlRfSFlQRVJWSVNPUl9LVk0sCit9OworCiAvKgogICogU3BlY2lmaWMgR1ZULWcgTVBUIG1v ZHVsZXMgZnVuY3Rpb24gY29sbGVjdGlvbnMuIEN1cnJlbnRseSBHVlQtZyBzdXBwb3J0cwogICog Ym90aCBYZW4gYW5kIEtWTSBieSBwcm92aWRpbmcgZGVkaWNhdGVkIGh5cGVydmlzb3ItcmVsYXRl ZCBNUFQgbW9kdWxlcy4KICAqLwogc3RydWN0IGludGVsX2d2dF9tcHQgeworCWVudW0gaHlwZXJ2 aXNvcl90eXBlIHR5cGU7CiAJaW50ICgqaG9zdF9pbml0KShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZv aWQgKmd2dCwgY29uc3Qgdm9pZCAqb3BzKTsKIAl2b2lkICgqaG9zdF9leGl0KShzdHJ1Y3QgZGV2 aWNlICpkZXYpOwogCWludCAoKmF0dGFjaF92Z3B1KSh2b2lkICp2Z3B1LCB1bnNpZ25lZCBsb25n ICpoYW5kbGUpOwpAQCAtNjcsNiArNzMsNSBAQCBzdHJ1Y3QgaW50ZWxfZ3Z0X21wdCB7CiB9Owog CiBleHRlcm4gc3RydWN0IGludGVsX2d2dF9tcHQgeGVuZ3RfbXB0OwotZXh0ZXJuIHN0cnVjdCBp bnRlbF9ndnRfbXB0IGt2bWd0X21wdDsKIAogI2VuZGlmIC8qIF9HVlRfSFlQRVJDQUxMX0hfICov CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQva3ZtZ3QuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jCmluZGV4IDFiYmQwNGQzMGM0Mi4uNmI3OTA5ZDc5NmM5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQva3ZtZ3QuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndnQva3ZtZ3QuYwpAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUg Imd2dC5oIgogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2d2dF9vcHMgKmludGVsX2d2dF9v cHM7CitzdGF0aWMgc3RydWN0IGludGVsX2d2dCAqaW50ZWxfZ3Z0OwogCiAvKiBoZWxwZXIgbWFj cm9zIGNvcGllZCBmcm9tIHZmaW8tcGNpICovCiAjZGVmaW5lIFZGSU9fUENJX09GRlNFVF9TSElG VCAgIDQwCkBAIC0xNDU5LDggKzE0NjAsMTAgQEAgc3RhdGljIGludCBrdm1ndF9ob3N0X2luaXQo c3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpndnQsIGNvbnN0IHZvaWQgKm9wcykKIAlzdHJ1Y3Qg YXR0cmlidXRlX2dyb3VwICoqa3ZtX3ZncHVfdHlwZV9ncm91cHM7CiAKIAlpbnRlbF9ndnRfb3Bz ID0gb3BzOworCWludGVsX2d2dCA9IChzdHJ1Y3QgaW50ZWxfZ3Z0ICopZ3Z0OworCiAJaWYgKCFp bnRlbF9ndnRfb3BzLT5nZXRfZ3Z0X2F0dHJzKCZrdm1fdHlwZV9hdHRycywKLQkJCSZrdm1fdmdw dV90eXBlX2dyb3VwcykpCisJCQkJCSAgJmt2bV92Z3B1X3R5cGVfZ3JvdXBzKSkKIAkJcmV0dXJu IC1FRkFVTFQ7CiAJaW50ZWxfdmdwdV9vcHMuc3VwcG9ydGVkX3R5cGVfZ3JvdXBzID0ga3ZtX3Zn cHVfdHlwZV9ncm91cHM7CiAKQEAgLTE2NTgsMTMgKzE2NjEsMTQgQEAgc3RhdGljIGJvb2wga3Zt Z3RfZ3Vlc3RfZXhpdChzdHJ1Y3Qga3ZtZ3RfZ3Vlc3RfaW5mbyAqaW5mbykKIAogc3RhdGljIGlu dCBrdm1ndF9hdHRhY2hfdmdwdSh2b2lkICp2Z3B1LCB1bnNpZ25lZCBsb25nICpoYW5kbGUpCiB7 Ci0JLyogbm90aGluZyB0byBkbyBoZXJlICovCisJaWYgKCF0cnlfbW9kdWxlX2dldChUSElTX01P RFVMRSkpCisJCXJldHVybiAtRUlOVkFMOwogCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBr dm1ndF9kZXRhY2hfdmdwdSh1bnNpZ25lZCBsb25nIGhhbmRsZSkKIHsKLQkvKiBub3RoaW5nIHRv IGRvIGhlcmUgKi8KKwltb2R1bGVfcHV0KFRISVNfTU9EVUxFKTsKIH0KIAogc3RhdGljIGludCBr dm1ndF9pbmplY3RfbXNpKHVuc2lnbmVkIGxvbmcgaGFuZGxlLCB1MzIgYWRkciwgdTE2IGRhdGEp CkBAIC0xODQ5LDcgKzE4NTMsOCBAQCBzdGF0aWMgYm9vbCBrdm1ndF9pc192YWxpZF9nZm4odW5z aWduZWQgbG9uZyBoYW5kbGUsIHVuc2lnbmVkIGxvbmcgZ2ZuKQogCXJldHVybiByZXQ7CiB9CiAK LXN0cnVjdCBpbnRlbF9ndnRfbXB0IGt2bWd0X21wdCA9IHsKK3N0YXRpYyBzdHJ1Y3QgaW50ZWxf Z3Z0X21wdCBrdm1ndF9tcHQgPSB7CisJLnR5cGUgPSBJTlRFTF9HVlRfSFlQRVJWSVNPUl9LVk0s CiAJLmhvc3RfaW5pdCA9IGt2bWd0X2hvc3RfaW5pdCwKIAkuaG9zdF9leGl0ID0ga3ZtZ3RfaG9z dF9leGl0LAogCS5hdHRhY2hfdmdwdSA9IGt2bWd0X2F0dGFjaF92Z3B1LApAQCAtMTg2OCwxNSAr MTg3MywxNyBAQCBzdHJ1Y3QgaW50ZWxfZ3Z0X21wdCBrdm1ndF9tcHQgPSB7CiAJLnB1dF92Zmlv X2RldmljZSA9IGt2bWd0X3B1dF92ZmlvX2RldmljZSwKIAkuaXNfdmFsaWRfZ2ZuID0ga3ZtZ3Rf aXNfdmFsaWRfZ2ZuLAogfTsKLUVYUE9SVF9TWU1CT0xfR1BMKGt2bWd0X21wdCk7CiAKIHN0YXRp YyBpbnQgX19pbml0IGt2bWd0X2luaXQodm9pZCkKIHsKKwlpZiAoaW50ZWxfZ3Z0X3JlZ2lzdGVy X2h5cGVydmlzb3IoJmt2bWd0X21wdCkgPCAwKQorCQlyZXR1cm4gLUVOT0RFVjsKIAlyZXR1cm4g MDsKIH0KIAogc3RhdGljIHZvaWQgX19leGl0IGt2bWd0X2V4aXQodm9pZCkKIHsKKwlpbnRlbF9n dnRfdW5yZWdpc3Rlcl9oeXBlcnZpc29yKCk7CiB9CiAKIG1vZHVsZV9pbml0KGt2bWd0X2luaXQp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L21wdC5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L21wdC5oCmluZGV4IGM5NWVmNzdkYTYyYy4uMTgxMTk0MDAwZmJkIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvbXB0LmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L21wdC5oCkBAIC0zNjAsNCArMzYwLDcgQEAgc3RhdGljIGlubGluZSBi b29sIGludGVsX2d2dF9oeXBlcnZpc29yX2lzX3ZhbGlkX2dmbigKIAlyZXR1cm4gaW50ZWxfZ3Z0 X2hvc3QubXB0LT5pc192YWxpZF9nZm4odmdwdS0+aGFuZGxlLCBnZm4pOwogfQogCitleHRlcm4g aW50IGludGVsX2d2dF9yZWdpc3Rlcl9oeXBlcnZpc29yKHN0cnVjdCBpbnRlbF9ndnRfbXB0ICop OworZXh0ZXJuIHZvaWQgaW50ZWxfZ3Z0X3VucmVnaXN0ZXJfaHlwZXJ2aXNvcih2b2lkKTsKKwog I2VuZGlmIC8qIF9HVlRfTVBUX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jCmluZGV4IGMy MmIzZTE4YTBmNS4uZDc0ZTU5ZTIyYzlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndnQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndnQuYwpAQCAt MTA1LDE1ICsxMDUsNiBAQCBpbnQgaW50ZWxfZ3Z0X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogCQlyZXR1cm4gLUVJTzsKIAl9CiAKLQkvKgotCSAqIFdlJ3JlIG5vdCBp biBob3N0IG9yIGZhaWwgdG8gZmluZCBhIE1QVCBtb2R1bGUsIGRpc2FibGUgR1ZULWcKLQkgKi8K LQlyZXQgPSBpbnRlbF9ndnRfaW5pdF9ob3N0KCk7Ci0JaWYgKHJldCkgewotCQlEUk1fREVCVUdf RFJJVkVSKCJOb3QgaW4gaG9zdCBvciBNUFQgbW9kdWxlcyBub3QgZm91bmRcbiIpOwotCQlnb3Rv IGJhaWw7Ci0JfQotCiAJcmV0ID0gaW50ZWxfZ3Z0X2luaXRfZGV2aWNlKGRldl9wcml2KTsKIAlp ZiAocmV0KSB7CiAJCURSTV9ERUJVR19EUklWRVIoIkZhaWwgdG8gaW5pdCBHVlQgZGV2aWNlXG4i KTsKLS0gCjIuMTkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==