From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhenyu Wang Subject: [RFC PATCH] drm/i915: split GVT as separated module Date: Thu, 13 Sep 2018 13:26:12 +0800 Message-ID: <20180913052612.7147-1-zhenyuw@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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 Sm9vbmFzIHJlcXVlc3RlZCBpZiB3ZSBjb3VsZCBtb3ZlIEdWVCBpbnRvIHNlcGFyYXRlZCBtb2R1 bGUuClRoZW4gb2J2aW91cyByZXF1aXJlbWVudCBpcyB0byBleHBvcnQgaTkxNSBmdW5jdGlvbnMg dGhhdCBHVlQKY3VycmVudGx5IHVzZS4gU28gdGhpcyBvbmUgYmxpbmRseSB0cnlzIHRvIGV4cG9y dCBhbGwgb2YgdGhlbQpmb3IgcGVvcGxlIHRvIHJldmlldy4gU29tZSBvZiB0aGVtIGFyZSBhbHJl YWR5IG9ubHkgZm9yIEdWVCBub3cuCkJ1dCBtb3JlIG90aGVycyBtaWdodCBuZWVkIG1vcmUgdGhp bmtpbmcgb24gd2hhdCBtYXkgYmV0dGVyIGZpdC4KCldpdGggc2VwYXJhdGVkIG1vZHVsZSwgdGhp cyBhbHNvIGNoYW5nZXMgaG93IEdWVCBtb2R1bGUgbG9hZHMgd2l0aAppOTE1LiBJbml0aWFsIGF0 dGVtcHQgd2FzIHRvIHJlcXVlc3QgbG9hZGluZyBHVlQgbW9kdWxlIHdoZW4gaTkxNQppbml0LCBi dXQgYXMgZm9yIGRlcGVuZGVuY2UgaXNzdWUgdGhhdCBjb3VsZG4ndCB3b3JrLiBUaGVuIEkgdGhp bmsgd2UKc2hvdWxkIGp1c3QgZW5hYmxlIEdWVCB3aGVuIHVzZXIgcmVxdWVzdCB0byBsb2FkIGl0 LiAgU28gcmVtb3ZlZCBHVlQKaW5pdCBmcm9tIGk5MTUsIGFsc28gJ2VuYWJsZV9ndnQnIHBhcmFt ZXRlciBhbmQgY2FsbCBHVlQgaW5pdCBmdW5jdGlvbgp3aGVuIG1vZHVsZSBsb2FkLiBCdXQgZm9y IEdWVCBpbml0LCB3ZSBzdGlsbCBuZWVkIHN0cnVjdApkcm1faTkxNV9wcml2YXRlIGZvciB0YXJn ZXQgZGV2aWNlLCBzbyB0aGlzIGp1c3QgaGFja3MgaXQgdG8KZXhwb3J0Li5NYXliZSB3ZSBjYW4g YWRkIHNvbWUgaW50ZXJmYWNlIHRvIGdldCB0aGF0IGZyb20gaTkxNT8KCkFub3RoZXIgcHJvYmxl bSBmb3Igc2VwYXJhdGVkIG1vZHVsZSBpcyB0aGF0IEdWVCB3YW50cyBhIGNsZWFuCmluaXRpYWwg TU1JTyBzbmFwc2hvdCBmb3IgdkdQVSBkZWZhdWx0IHN0YXRlLiBOb3cgaW4gdXBzdHJlYW0gd2UK d2lsbCB0YWtlIHRoYXQgc25hcHNob3QgZHVyaW5nIEdWVCBpbml0LiBGb3Igc2VwYXJhdGVkIG1v ZHVsZSwgd2UKbWlnaHQgbmVlZCBpOTE1IHRvIGR1bXAgaXQgZm9yIEdWVCB0aGVuIEdWVCBjb3Vs ZCBnZXQgaXQgd2hlbiBpbml0LgpUaGlzIHBhcnQgb2YgY2hhbmdlIGZvciBpOTE1IGFuZCBHVlQg aXMgbm90IGluY2x1ZGVkIGluIHRoaXMgcGF0Y2ggeWV0LgoKQ2M6IEpvb25hcyBMYWh0aW5lbiA8 am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogWmhlbnl1IFdh bmcgPHpoZW55dXdAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L0tj b25maWcgICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmls ZSAgICAgICAgICAgICB8ICAgMyAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvTWFrZWZpbGUg ICAgICAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jICAgICAgICAg ICAgfCAgNDAgKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmggICAgICAgICAg ICB8ICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgICB8ICAx NyArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgIHwgICA2ICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICB8ICAxMSArKwogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jICAgfCAgIDIgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZmVuY2VfcmVnLmMgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMgICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9w YXJhbXMuYyAgICAgICAgfCAgIDMgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMu aCAgICAgICAgfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jICAg ICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMgICAgICAgICAgIHwg ICAyICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jICAgICAgICAgIHwgMTQzIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5oICAg ICAgICAgIHwgIDUwIC0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMg ICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYyAgICAgICB8ICAg MyArCiAyMSBmaWxlcyBjaGFuZ2VkLCA4MiBpbnNlcnRpb25zKCspLCAyMTkgZGVsZXRpb25zKC0p CiBkZWxldGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Z0LmMKIGRl bGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndnQuaAoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9LY29uZmlnCmluZGV4IDMzYTQ1OGI3ZjFmYy4uYTA1MjYxY2FiZjUzIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tj b25maWcKQEAgLTk2LDcgKzk2LDcgQEAgY29uZmlnIERSTV9JOTE1X1VTRVJQVFIKIAkgIElmIGlu IGRvdWJ0LCBzYXkgIlkiLgogCiBjb25maWcgRFJNX0k5MTVfR1ZUCi0gICAgICAgIGJvb2wgIkVu YWJsZSBJbnRlbCBHVlQtZyBncmFwaGljcyB2aXJ0dWFsaXphdGlvbiBob3N0IHN1cHBvcnQiCisg ICAgICAgIHRyaXN0YXRlICJFbmFibGUgSW50ZWwgR1ZULWcgZ3JhcGhpY3MgdmlydHVhbGl6YXRp b24gaG9zdCBzdXBwb3J0IgogICAgICAgICBkZXBlbmRzIG9uIERSTV9JOTE1CiAgICAgICAgIGRl cGVuZHMgb24gNjRCSVQKICAgICAgICAgZGVmYXVsdCBuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4 IDU3OTRmMTAyZjliOC4uYjNhY2Q0MzFjMzVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtMTgy LDEwICsxODIsNyBAQCBpOTE1LXkgKz0gaTkxNV9wZXJmLm8gXAogCSAgaTkxNV9vYV9jbmwubyBc CiAJICBpOTE1X29hX2ljbC5vCiAKLWlmZXEgKCQoQ09ORklHX0RSTV9JOTE1X0dWVCkseSkKLWk5 MTUteSArPSBpbnRlbF9ndnQubwogaW5jbHVkZSAkKHNyYykvZ3Z0L01ha2VmaWxlCi1lbmRpZgog CiAjIExQRSBBdWRpbyBmb3IgVkxWIGFuZCBDSFQKIGk5MTUteSArPSBpbnRlbF9scGVfYXVkaW8u bwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxlIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxlCmluZGV4IGIwMTZkYzc1M2RiOS4uYTJlMWRlNzQ1 ZDYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvTWFrZWZpbGUKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxlCkBAIC02LDUgKzYsNiBAQCBHVlRfU09V UkNFIDo9IGd2dC5vIGFwZXJ0dXJlX2dtLm8gaGFuZGxlcnMubyB2Z3B1Lm8gdHJhY2VfcG9pbnRz Lm8gZmlybXdhcmUubyBcCiAJZmJfZGVjb2Rlci5vIGRtYWJ1Zi5vIHBhZ2VfdHJhY2subwogCiBj Y2ZsYWdzLXkJCQkJKz0gLUkkKHNyYykgLUkkKHNyYykvJChHVlRfRElSKQotaTkxNS15CQkJCQkr PSAkKGFkZHByZWZpeCAkKEdWVF9ESVIpLywgJChHVlRfU09VUkNFKSkKK2k5MTVfZ3Z0LXkJCQkJ Oj0gJChhZGRwcmVmaXggJChHVlRfRElSKS8sICQoR1ZUX1NPVVJDRSkpCitvYmotJChDT05GSUdf RFJNX0k5MTVfR1ZUKSAgICAgICAgICAgICAgKz0gaTkxNV9ndnQubwogb2JqLSQoQ09ORklHX0RS TV9JOTE1X0dWVF9LVk1HVCkJKz0gJChHVlRfRElSKS9rdm1ndC5vCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0 LmMKaW5kZXggNmVmNWE3ZmM3MGRmLi4yYTZiYmM4OWUyMGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9ndnQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0 LmMKQEAgLTMwLDEwICszMCwxMSBAQAogICoKICAqLwogCisjaW5jbHVkZSA8bGludXgvaW5pdC5o PgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8eGVuL3hlbi5oPgogI2luY2x1 ZGUgPGxpbnV4L2t0aHJlYWQuaD4KLQorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1 ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiZ3Z0LmgiCiAjaW5jbHVkZSA8bGludXgvdmZpby5o PgpAQCAtMjI4LDcgKzIyOSw2IEBAIGludCBpbnRlbF9ndnRfaW5pdF9ob3N0KHZvaWQpCiAKIAln dnRfZGJnX2NvcmUoIlJ1bm5pbmcgd2l0aCBoeXBlcnZpc29yICVzIGluIGhvc3QgbW9kZVxuIiwK IAkJCXN1cHBvcnRlZF9oeXBlcnZpc29yc1tpbnRlbF9ndnRfaG9zdC5oeXBlcnZpc29yX3R5cGVd KTsKLQogCWludGVsX2d2dF9ob3N0LmluaXRpYWxpemVkID0gdHJ1ZTsKIAlyZXR1cm4gMDsKIH0K QEAgLTQ2Nyw2ICs0NjcsNDIgQEAgaW50IGludGVsX2d2dF9pbml0X2RldmljZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBf X2luaXQgaTkxNV9ndnRfaW5pdCh2b2lkKQoreworCWlmICghdHJ5X21vZHVsZV9nZXQoaTkxNV9w cml2X2V4cG9ydC0+ZHJtLmRldi0+ZHJpdmVyLT5vd25lcikpIHsKKwkJZ3Z0X2VycigiZ2V0IGk5 MTUgbW9kdWxlIGZhaWxcbiIpOworCQlyZXR1cm4gLTE7CisJfQorCQkKKwlpZiAoaW50ZWxfZ3Z0 X2luaXRfaG9zdCgpKSB7CisJCWd2dF9lcnIoImluaXQgaG9zdCBmYWlsXG4iKTsKKwkJZ290byBl cnI7CisJfQorCWlmIChpbnRlbF9ndnRfaW5pdF9kZXZpY2UoaTkxNV9wcml2X2V4cG9ydCkpIHsK KwkJZ3Z0X2VycigiaW5pdCBkZXZpY2UgZmFpbFxuIik7CisJCWdvdG8gZXJyOworCX0KKwkKKwly ZXR1cm4gMDsKK2VycjoKKwltb2R1bGVfcHV0KGk5MTVfcHJpdl9leHBvcnQtPmRybS5kZXYtPmRy aXZlci0+b3duZXIpOworCXJldHVybiAtMTsKK30KKworc3RhdGljIHZvaWQgX19leGl0IGk5MTVf Z3Z0X2V4aXQodm9pZCkKK3sKKwlpZiAoIWludGVsX2d2dF9hY3RpdmUoaTkxNV9wcml2X2V4cG9y dCkpCisJCXJldHVybjsKKwlpbnRlbF9ndnRfY2xlYW5fZGV2aWNlKGk5MTVfcHJpdl9leHBvcnQp OworCW1vZHVsZV9wdXQoaTkxNV9wcml2X2V4cG9ydC0+ZHJtLmRldi0+ZHJpdmVyLT5vd25lcik7 Cit9CisKK21vZHVsZV9pbml0KGk5MTVfZ3Z0X2luaXQpOworbW9kdWxlX2V4aXQoaTkxNV9ndnRf ZXhpdCk7CisKICNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9HVlRfS1ZNR1QpCiBNT0RV TEVfU09GVERFUCgicHJlOiBrdm1ndCIpOwogI2VuZGlmCisKK01PRFVMRV9MSUNFTlNFKCJHUEwg YW5kIGFkZGl0aW9uYWwgcmlnaHRzIik7CitNT0RVTEVfQVVUSE9SKCJJbnRlbCBDb3Jwb3JhdGlv biIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oCmluZGV4IDMxZjZjZGJlNWM0Mi4uZjVlOTg2OWFlOTFh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oCkBAIC00ODAsNiArNDgwLDkgQEAgc3RhdGljIGlubGlu ZSB2b2lkIGludGVsX3ZncHVfd3JpdGVfcGNpX2JhcihzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSwK IAogaW50IGludGVsX2d2dF9pbml0X3ZncHVfdHlwZXMoc3RydWN0IGludGVsX2d2dCAqZ3Z0KTsK IHZvaWQgaW50ZWxfZ3Z0X2NsZWFuX3ZncHVfdHlwZXMoc3RydWN0IGludGVsX2d2dCAqZ3Z0KTsK K2V4dGVybiBpbnQgaW50ZWxfZ3Z0X2luaXRfZGV2aWNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7CitleHRlcm4gdm9pZCBpbnRlbF9ndnRfY2xlYW5fZGV2aWNlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CitleHRlcm4gaW50IGludGVsX2d2dF9pbml0X2hv c3Qodm9pZCk7CiAKIHN0cnVjdCBpbnRlbF92Z3B1ICppbnRlbF9ndnRfY3JlYXRlX2lkbGVfdmdw dShzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQpOwogdm9pZCBpbnRlbF9ndnRfZGVzdHJveV9pZGxlX3Zn cHUoc3RydWN0IGludGVsX3ZncHUgKnZncHUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXgg NzdhNGEwMWRkYzA4Li40YWQ5NjY1NGQ5ODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAt MTA3Miw4ICsxMDcyLDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfb3B0aW9ucyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWludGVsX3Nhbml0aXplX2VuYWJsZV9w cGd0dChkZXZfcHJpdiwKIAkJCQkJICAgIGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9wcGd0dCk7CiAJ RFJNX0RFQlVHX0RSSVZFUigicHBndHQgbW9kZTogJWlcbiIsIGk5MTVfbW9kcGFyYW1zLmVuYWJs ZV9wcGd0dCk7Ci0KLQlpbnRlbF9ndnRfc2FuaXRpemVfb3B0aW9ucyhkZXZfcHJpdik7CiB9CiAK IC8qKgpAQCAtMTE4OCwxOCArMTE4NiwxMCBAQCBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRf aHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkJRFJNX0RFQlVHX0RSSVZF UigiY2FuJ3QgZW5hYmxlIE1TSSIpOwogCX0KIAotCXJldCA9IGludGVsX2d2dF9pbml0KGRldl9w cml2KTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl9tc2k7Ci0KIAlpbnRlbF9vcHJlZ2lvbl9zZXR1 cChkZXZfcHJpdik7CiAKIAlyZXR1cm4gMDsKIAotZXJyX21zaToKLQlpZiAocGRldi0+bXNpX2Vu YWJsZWQpCi0JCXBjaV9kaXNhYmxlX21zaShwZGV2KTsKLQlwbV9xb3NfcmVtb3ZlX3JlcXVlc3Qo JmRldl9wcml2LT5wbV9xb3MpOwogZXJyX2dndHQ6CiAJaTkxNV9nZ3R0X2NsZWFudXBfaHcoZGV2 X3ByaXYpOwogZXJyX3BlcmY6CkBAIC0xMzM1LDYgKzEzMjUsOSBAQCBzdGF0aWMgdm9pZCBpOTE1 X3dlbGNvbWVfbWVzc2FnZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlE Uk1fSU5GTygiRFJNX0k5MTVfREVCVUdfUlVOVElNRV9QTSBlbmFibGVkXG4iKTsKIH0KIAorc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTVfcHJpdl9leHBvcnQ7CitFWFBPUlRfU1lNQk9MX0dQ TChpOTE1X3ByaXZfZXhwb3J0KTsKKwogLyoqCiAgKiBpOTE1X2RyaXZlcl9sb2FkIC0gc2V0dXAg Y2hpcCBhbmQgY3JlYXRlIGFuIGluaXRpYWwgY29uZmlnCiAgKiBAcGRldjogUENJIGRldmljZQpA QCAtMTQxMiw2ICsxNDA1LDggQEAgaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IHBjaV9kZXYg KnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiAKIAlpOTE1X3dlbGNvbWVf bWVzc2FnZXMoZGV2X3ByaXYpOwogCisJaTkxNV9wcml2X2V4cG9ydCA9IGRldl9wcml2OworCQog CXJldHVybiAwOwogCiBvdXRfY2xlYW51cF9odzoKQEAgLTE0NDYsOCArMTQ0MSw2IEBAIHZvaWQg aTkxNV9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlkcm1fYXRvbWlj X2hlbHBlcl9zaHV0ZG93bihkZXYpOwogCi0JaW50ZWxfZ3Z0X2NsZWFudXAoZGV2X3ByaXYpOwot CiAJaW50ZWxfbW9kZXNldF9jbGVhbnVwKGRldik7CiAKIAlpbnRlbF9iaW9zX2NsZWFudXAoZGV2 X3ByaXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggZTViOWQzYzc3MTM5Li5jNjM4OTY3 OWIyYTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtNzksOCArNzksNiBAQAogI2luY2x1 ZGUgImk5MTVfdGltZWxpbmUuaCIKICNpbmNsdWRlICJpOTE1X3ZtYS5oIgogCi0jaW5jbHVkZSAi aW50ZWxfZ3Z0LmgiCi0KIC8qIEdlbmVyYWwgY3VzdG9taXphdGlvbjoKICAqLwogCkBAIC0xNTg0 LDYgKzE1ODIsOCBAQCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgewogCXU4IHZvbHRhZ2VfbGV2 ZWw7CiB9OwogCitzdHJ1Y3QgaW50ZWxfZ3Z0OworCiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7 CiAJc3RydWN0IGRybV9kZXZpY2UgZHJtOwogCkBAIC0zODM4LDQgKzM4MzgsNiBAQCBzdGF0aWMg aW5saW5lIGludCBpbnRlbF9od3NfY3NiX3dyaXRlX2luZGV4KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KQogCQlyZXR1cm4gSTkxNV9IV1NfQ1NCX1dSSVRFX0lOREVYOwogfQogCitleHRl cm4gc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTVfcHJpdl9leHBvcnQ7CisKICNlbmRpZgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggMDQ1M2ViNDJhMWEzLi4zYzk0NjA5NjlkZmMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtNzAxLDYgKzcwMSw3IEBAIHZvaWQgKmk5MTVfZ2Vt X29iamVjdF9hbGxvYyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJcmV0 dXJuIGttZW1fY2FjaGVfemFsbG9jKGRldl9wcml2LT5vYmplY3RzLCBHRlBfS0VSTkVMKTsKIH0K K0VYUE9SVF9TWU1CT0xfR1BMKGk5MTVfZ2VtX29iamVjdF9hbGxvYyk7CiAKIHZvaWQgaTkxNV9n ZW1fb2JqZWN0X2ZyZWUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKQEAgLTEw MjksNiArMTAzMCw3IEBAIGludCBpOTE1X2dlbV9vYmpfcHJlcGFyZV9zaG1lbV93cml0ZShzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdl cyhvYmopOwogCXJldHVybiByZXQ7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChpOTE1X2dlbV9vYmpf cHJlcGFyZV9zaG1lbV93cml0ZSk7CiAKIHN0YXRpYyB2b2lkCiBzaG1lbV9jbGZsdXNoX3N3aXp6 bGVkX3JhbmdlKGNoYXIgKmFkZHIsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLApAQCAtMjczMCw2ICsy NzMyLDcgQEAgdm9pZCBfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKIAlsaXN0X2FkZCgmb2JqLT5tbS5saW5rLCAmaTkxNS0+bW0udW5i b3VuZF9saXN0KTsKIAlzcGluX3VubG9jaygmaTkxNS0+bW0ub2JqX2xvY2spOwogfQorRVhQT1JU X1NZTUJPTF9HUEwoX19pOTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2VzKTsKIAogc3RhdGljIGludCBf X19faTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQogewpAQCAtMjg5Niw2ICsyODk5LDcgQEAgdm9pZCAqaTkxNV9nZW1fb2JqZWN0X3Bpbl9t YXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlwdHIgPSBFUlJfUFRSKHJldCk7 CiAJZ290byBvdXRfdW5sb2NrOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoaTkxNV9nZW1fb2JqZWN0 X3Bpbl9tYXApOwogCiBzdGF0aWMgaW50CiBpOTE1X2dlbV9vYmplY3RfcHdyaXRlX2d0dChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLApAQCAtMzk5OSw2ICs0MDAzLDcgQEAgaTkxNV9n ZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosIGJvb2wgd3JpdGUpCiAJaTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7CiAJcmV0 dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9k b21haW4pOwogCiAvKioKICAqIENoYW5nZXMgdGhlIGNhY2hlLWxldmVsIG9mIGFuIG9iamVjdCBh Y3Jvc3MgYWxsIFZNQS4KQEAgLTQzNjQsNiArNDM2OSw3IEBAIGk5MTVfZ2VtX29iamVjdF9zZXRf dG9fY3B1X2RvbWFpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCBib29sIHdyaXRl KQogCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChpOTE1X2dlbV9vYmplY3Rfc2V0 X3RvX2NwdV9kb21haW4pOwogCiAvKiBUaHJvdHRsZSBvdXIgcmVuZGVyaW5nIGJ5IHdhaXRpbmcg dW50aWwgdGhlIHJpbmcgaGFzIGNvbXBsZXRlZCBvdXIgcmVxdWVzdHMKICAqIGVtaXR0ZWQgb3Zl ciAyMCBtc2VjIGFnby4KQEAgLTQ0OTMsNiArNDQ5OSw3IEBAIGk5MTVfZ2VtX29iamVjdF9nZ3R0 X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCiAJcmV0dXJuIHZtYTsKIH0K K0VYUE9SVF9TWU1CT0xfR1BMKGk5MTVfZ2VtX29iamVjdF9nZ3R0X3Bpbik7CiAKIHN0YXRpYyBf X2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50IF9fYnVzeV9yZWFkX2ZsYWcodW5zaWduZWQgaW50 IGlkKQogewpAQCAtNDcxNCw2ICs0NzIxLDcgQEAgdm9pZCBpOTE1X2dlbV9vYmplY3RfaW5pdChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCiAJaTkxNV9nZW1faW5mb19hZGRfb2Jq KHRvX2k5MTUob2JqLT5iYXNlLmRldiksIG9iai0+YmFzZS5zaXplKTsKIH0KK0VYUE9SVF9TWU1C T0xfR1BMKGk5MTVfZ2VtX29iamVjdF9pbml0KTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0X29wcyBpOTE1X2dlbV9vYmplY3Rfb3BzID0gewogCS5mbGFncyA9IEk5 MTVfR0VNX09CSkVDVF9IQVNfU1RSVUNUX1BBR0UgfApAQCAtNDgyMCw2ICs0ODI4LDcgQEAgaTkx NV9nZW1fb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU2 NCBzaXplKQogCWk5MTVfZ2VtX29iamVjdF9mcmVlKG9iaik7CiAJcmV0dXJuIEVSUl9QVFIocmV0 KTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGk5MTVfZ2VtX29iamVjdF9jcmVhdGUpOwogCiBzdGF0 aWMgYm9vbCBkaXNjYXJkX2JhY2tpbmdfc3RvcmFnZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQogewpAQCAtNTAxMCw2ICs1MDE5LDcgQEAgdm9pZCBfX2k5MTVfZ2VtX29iamVjdF9y ZWxlYXNlX3VubGVzc19hY3RpdmUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAll bHNlCiAJCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKF9f aTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfdW5sZXNzX2FjdGl2ZSk7CiAKIHZvaWQgaTkxNV9nZW1f c2FuaXRpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CkBAIC02MTExLDYgKzYx MjEsNyBAQCBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwgdW5zaWduZWQgaW50IG4pCiAJc2cgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3NnKG9i aiwgbiwgJm9mZnNldCk7CiAJcmV0dXJuIG50aF9wYWdlKHNnX3BhZ2Uoc2cpLCBvZmZzZXQpOwog fQorRVhQT1JUX1NZTUJPTF9HUEwoaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKTsKIAogLyogTGlr ZSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoKSwgYnV0IG1hcmsgdGhlIHJldHVybmVkIHBhZ2Ug ZGlydHkgKi8KIHN0cnVjdCBwYWdlICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRl eHQuYwppbmRleCBmMTVhMDM5NzcyZGIuLmQ3N2ZhYmM4NTcxZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2NvbnRleHQuYwpAQCAtMTg1LDYgKzE4NSw3IEBAIHZvaWQgaTkxNV9nZW1f Y29udGV4dF9yZWxlYXNlKHN0cnVjdCBrcmVmICpyZWYpCiAJaWYgKGxsaXN0X2FkZCgmY3R4LT5m cmVlX2xpbmssICZpOTE1LT5jb250ZXh0cy5mcmVlX2xpc3QpKQogCQlxdWV1ZV93b3JrKGk5MTUt PndxLCAmaTkxNS0+Y29udGV4dHMuZnJlZV93b3JrKTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGk5 MTVfZ2VtX2NvbnRleHRfcmVsZWFzZSk7CiAKIHN0YXRpYyB2b2lkIGNvbnRleHRfY2xvc2Uoc3Ry dWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKIHsKQEAgLTQyMCw2ICs0MjEsNyBAQCBpOTE1X2dl bV9jb250ZXh0X2NyZWF0ZV9ndnQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAltdXRleF91bmxv Y2soJmRldi0+c3RydWN0X211dGV4KTsKIAlyZXR1cm4gY3R4OwogfQorRVhQT1JUX1NZTUJPTF9H UEwoaTkxNV9nZW1fY29udGV4dF9jcmVhdGVfZ3Z0KTsKIAogc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKgogaTkxNV9nZW1fY29udGV4dF9jcmVhdGVfa2VybmVsKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1LCBpbnQgcHJpbykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2RtYWJ1Zi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMK aW5kZXggODJlMmNhMTdhNDQxLi5hYzk4YjA5NDIyMGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2RtYWJ1Zi5jCkBAIC0yNDQsNiArMjQ0LDcgQEAgc3RydWN0IGRtYV9idWYgKmk5MTVf Z2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJcmV0dXJuIGRybV9n ZW1fZG1hYnVmX2V4cG9ydChkZXYsICZleHBfaW5mbyk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChp OTE1X2dlbV9wcmltZV9leHBvcnQpOwogCiBzdGF0aWMgaW50IGk5MTVfZ2VtX29iamVjdF9nZXRf cGFnZXNfZG1hYnVmKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlX3JlZy5jCmluZGV4IGQ1NDhhYzA1Y2NkNy4uMjFi NzljMWY2MWQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5j ZV9yZWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcuYwpA QCAtNDIwLDYgKzQyMCw3IEBAIGk5MTVfcmVzZXJ2ZV9mZW5jZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAJbGlzdF9kZWwoJmZlbmNlLT5saW5rKTsKIAlyZXR1cm4gZmVuY2U7 CiB9CitFWFBPUlRfU1lNQk9MX0dQTChpOTE1X3Jlc2VydmVfZmVuY2UpOwogCiAvKioKICAqIGk5 MTVfdW5yZXNlcnZlX2ZlbmNlIC0gUmVjbGFpbSBhIHJlc2VydmVkIGZlbmNlCkBAIC00MzMsNiAr NDM0LDcgQEAgdm9pZCBpOTE1X3VucmVzZXJ2ZV9mZW5jZShzdHJ1Y3QgZHJtX2k5MTVfZmVuY2Vf cmVnICpmZW5jZSkKIAogCWxpc3RfYWRkKCZmZW5jZS0+bGluaywgJmZlbmNlLT5pOTE1LT5tbS5m ZW5jZV9saXN0KTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGk5MTVfdW5yZXNlcnZlX2ZlbmNlKTsK IAogLyoqCiAgKiBpOTE1X2dlbV9yZXZva2VfZmVuY2VzIC0gcmV2b2tlIGZlbmNlIHN0YXRlCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IDQxMzdhZjRiZDhmNS4uODBhYmNmMjM0 OTFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtNDEwNyw2ICs0MTA3LDcg QEAgaW50IGk5MTVfZ2VtX2d0dF9pbnNlcnQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0s CiAJCQkJCSAgIHNpemUsIGFsaWdubWVudCwgY29sb3IsCiAJCQkJCSAgIHN0YXJ0LCBlbmQsIERS TV9NTV9JTlNFUlRfRVZJQ1QpOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoaTkxNV9nZW1fZ3R0X2lu c2VydCk7CiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9TRUxGVEVTVCkKICNpbmNs dWRlICJzZWxmdGVzdHMvbW9ja19ndHQuYyIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcGFyYW1zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jCmlu ZGV4IDI5NWU5ODFlNGEzOS4uOGY1NmMyNWI2ZDdmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BhcmFtcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFy YW1zLmMKQEAgLTE3MSw5ICsxNzEsNiBAQCBpOTE1X3BhcmFtX25hbWVkX3Vuc2FmZShpbmplY3Rf bG9hZF9mYWlsdXJlLCB1aW50LCAwNDAwLAogaTkxNV9wYXJhbV9uYW1lZChlbmFibGVfZHBjZF9i YWNrbGlnaHQsIGJvb2wsIDA2MDAsCiAJIkVuYWJsZSBzdXBwb3J0IGZvciBEUENEIGJhY2tsaWdo dCBjb250cm9sIChkZWZhdWx0OmZhbHNlKSIpOwogCi1pOTE1X3BhcmFtX25hbWVkKGVuYWJsZV9n dnQsIGJvb2wsIDA0MDAsCi0JIkVuYWJsZSBzdXBwb3J0IGZvciBJbnRlbCBHVlQtZyBncmFwaGlj cyB2aXJ0dWFsaXphdGlvbiBob3N0IHN1cHBvcnQoZGVmYXVsdDpmYWxzZSkiKTsKLQogc3RhdGlj IF9fYWx3YXlzX2lubGluZSB2b2lkIF9wcmludF9wYXJhbShzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAs CiAJCQkJCSBjb25zdCBjaGFyICpuYW1lLAogCQkJCQkgY29uc3QgY2hhciAqdHlwZSwKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BhcmFtcy5oCmluZGV4IDZjNGQ0YTIxNDc0Yi4uMTZiOGFmNjU0NmM5IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmgKQEAgLTY3LDggKzY3LDcgQEAgc3RydWN0IGRy bV9wcmludGVyOwogCXBhcmFtKGJvb2wsIHZlcmJvc2Vfc3RhdGVfY2hlY2tzLCB0cnVlKSBcCiAJ cGFyYW0oYm9vbCwgbnVjbGVhcl9wYWdlZmxpcCwgZmFsc2UpIFwKIAlwYXJhbShib29sLCBlbmFi bGVfZHBfbXN0LCB0cnVlKSBcCi0JcGFyYW0oYm9vbCwgZW5hYmxlX2RwY2RfYmFja2xpZ2h0LCBm YWxzZSkgXAotCXBhcmFtKGJvb2wsIGVuYWJsZV9ndnQsIGZhbHNlKQorCXBhcmFtKGJvb2wsIGVu YWJsZV9kcGNkX2JhY2tsaWdodCwgZmFsc2UpCiAKICNkZWZpbmUgTUVNQkVSKFQsIG1lbWJlciwg Li4uKSBUIG1lbWJlcjsKIHN0cnVjdCBpOTE1X3BhcmFtcyB7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVxdWVzdC5jCmluZGV4IDA5ZWQ0ODgzM2I1NC4uZDMxN2FiNTk4MjJjIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlcXVlc3QuYwpAQCAtODM5LDYgKzgzOSw3IEBAIGk5MTVfcmVxdWVzdF9hbGxv YyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICpjdHgpCiAJaW50ZWxfY29udGV4dF91bnBpbihjZSk7CiAJcmV0dXJuIEVSUl9QVFIocmV0KTsK IH0KK0VYUE9SVF9TWU1CT0xfR1BMKGk5MTVfcmVxdWVzdF9hbGxvYyk7CiAKIHN0YXRpYyBpbnQK IGk5MTVfcmVxdWVzdF9hd2FpdF9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnRvLCBzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpmcm9tKQpAQCAtMTE1MSw2ICsxMTUyLDcgQEAgdm9pZCBpOTE1X3Jl cXVlc3RfYWRkKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCiAJaWYgKHByZXYgJiYgaTkx NV9yZXF1ZXN0X2NvbXBsZXRlZChwcmV2KSkKIAkJaTkxNV9yZXF1ZXN0X3JldGlyZV91cHRvKHBy ZXYpOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoaTkxNV9yZXF1ZXN0X2FkZCk7CiAKIHN0YXRpYyB1 bnNpZ25lZCBsb25nIGxvY2FsX2Nsb2NrX3VzKHVuc2lnbmVkIGludCAqY3B1KQogewpAQCAtMTQx NSw2ICsxNDE3LDcgQEAgbG9uZyBpOTE1X3JlcXVlc3Rfd2FpdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpycSwKIAogCXJldHVybiB0aW1lb3V0OwogfQorRVhQT1JUX1NZTUJPTF9HUEwoaTkxNV9yZXF1 ZXN0X3dhaXQpOwogCiBzdGF0aWMgdm9pZCByaW5nX3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50 ZWxfcmluZyAqcmluZykKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf dm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCmluZGV4IDMxZWZjOTcxYTNh OC4uOWQzMzNiYWI0MDM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Zt YS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKQEAgLTc4Myw2ICs3ODMs NyBAQCB2b2lkIGk5MTVfdm1hX2Nsb3NlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCSAqLwogCWxp c3RfYWRkX3RhaWwoJnZtYS0+Y2xvc2VkX2xpbmssICZ2bWEtPnZtLT5pOTE1LT5ndC5jbG9zZWRf dm1hKTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGk5MTVfdm1hX2Nsb3NlKTsKIAogdm9pZCBpOTE1 X3ZtYV9yZW9wZW4oc3RydWN0IGk5MTVfdm1hICp2bWEpCiB7CkBAIC0xMDI4LDYgKzEwMjksNyBA QCBpbnQgaTkxNV92bWFfbW92ZV90b19hY3RpdmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJZXhw b3J0X2ZlbmNlKHZtYSwgcnEsIGZsYWdzKTsKIAlyZXR1cm4gMDsKIH0KK0VYUE9SVF9TWU1CT0xf R1BMKGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKTsKIAogaW50IGk5MTVfdm1hX3VuYmluZChzdHJ1 Y3QgaTkxNV92bWEgKnZtYSkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d2dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Z0LmMKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGMyMmIzZTE4YTBmNS4uMDAwMDAwMDAwMDAwCi0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5jCisrKyAvZGV2L251bGwKQEAgLTEsMTQzICswLDAg QEAKLS8qCi0gKiBDb3B5cmlnaHQoYykgMjAxMS0yMDE2IEludGVsIENvcnBvcmF0aW9uLiBBbGwg cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMg c29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2Fy ZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5j bHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Ig c2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hv bSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdy YXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp b25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVE ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElN UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVS Q0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P TklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZ UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgot ICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBP VEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKLSAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCi0gKiBTT0ZU V0FSRS4KLSAqLwotCi0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKLSNpbmNsdWRlICJpbnRlbF9ndnQu aCIKLQotLyoqCi0gKiBET0M6IEludGVsIEdWVC1nIGhvc3Qgc3VwcG9ydAotICoKLSAqIEludGVs IEdWVC1nIGlzIGEgZ3JhcGhpY3MgdmlydHVhbGl6YXRpb24gdGVjaG5vbG9neSB3aGljaCBzaGFy ZXMgdGhlCi0gKiBHUFUgYW1vbmcgbXVsdGlwbGUgdmlydHVhbCBtYWNoaW5lcyBvbiBhIHRpbWUt c2hhcmluZyBiYXNpcy4gRWFjaAotICogdmlydHVhbCBtYWNoaW5lIGlzIHByZXNlbnRlZCBhIHZp cnR1YWwgR1BVICh2R1BVKSwgd2hpY2ggaGFzIGVxdWl2YWxlbnQKLSAqIGZlYXR1cmVzIGFzIHRo ZSB1bmRlcmx5aW5nIHBoeXNpY2FsIEdQVSAocEdQVSksIHNvIGk5MTUgZHJpdmVyIGNhbiBydW4K LSAqIHNlYW1sZXNzbHkgaW4gYSB2aXJ0dWFsIG1hY2hpbmUuCi0gKgotICogVG8gdmlydHVhbGl6 ZSBHUFUgcmVzb3VyY2VzIEdWVC1nIGRyaXZlciBkZXBlbmRzIG9uIGh5cGVydmlzb3IgdGVjaG5v bG9neQotICogZS5nIEtWTS9WRklPL21kZXYsIFhlbiwgZXRjLiB0byBwcm92aWRlIHJlc291cmNl IGFjY2VzcyB0cmFwcGluZyBjYXBhYmlsaXR5Ci0gKiBhbmQgYmUgdmlydHVhbGl6ZWQgd2l0aGlu IEdWVC1nIGRldmljZSBtb2R1bGUuIE1vcmUgYXJjaGl0ZWN0dXJhbCBkZXNpZ24KLSAqIGRvYyBp cyBhdmFpbGFibGUgb24gaHR0cHM6Ly8wMS5vcmcvZ3JvdXAvMjIzMC9kb2N1bWVudGF0aW9uLWxp c3QuCi0gKi8KLQotc3RhdGljIGJvb2wgaXNfc3VwcG9ydGVkX2RldmljZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0JaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpCi0J CXJldHVybiB0cnVlOwotCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSkKLQkJcmV0dXJuIHRydWU7 Ci0JaWYgKElTX0tBQllMQUtFKGRldl9wcml2KSkKLQkJcmV0dXJuIHRydWU7Ci0JaWYgKElTX0JS T1hUT04oZGV2X3ByaXYpKQotCQlyZXR1cm4gdHJ1ZTsKLQlyZXR1cm4gZmFsc2U7Ci19Ci0KLS8q KgotICogaW50ZWxfZ3Z0X3Nhbml0aXplX29wdGlvbnMgLSBzYW5pdGl6ZSBHVlQgcmVsYXRlZCBv cHRpb25zCi0gKiBAZGV2X3ByaXY6IGRybSBpOTE1IHByaXZhdGUgZGF0YQotICoKLSAqIFRoaXMg ZnVuY3Rpb24gaXMgY2FsbGVkIGF0IHRoZSBpOTE1IG9wdGlvbnMgc2FuaXRpemUgc3RhZ2UuCi0g Ki8KLXZvaWQgaW50ZWxfZ3Z0X3Nhbml0aXplX29wdGlvbnMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQotewotCWlmICghaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2d2dCkKLQkJcmV0 dXJuOwotCi0JaWYgKGludGVsX3ZncHVfYWN0aXZlKGRldl9wcml2KSkgewotCQlEUk1fSU5GTygi R1ZULWcgaXMgZGlzYWJsZWQgZm9yIGd1ZXN0XG4iKTsKLQkJZ290byBiYWlsOwotCX0KLQotCWlm ICghaXNfc3VwcG9ydGVkX2RldmljZShkZXZfcHJpdikpIHsKLQkJRFJNX0lORk8oIlVuc3VwcG9y dGVkIGRldmljZS4gR1ZULWcgaXMgZGlzYWJsZWRcbiIpOwotCQlnb3RvIGJhaWw7Ci0JfQotCi0J cmV0dXJuOwotYmFpbDoKLQlpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3Z0ID0gMDsKLX0KLQotLyoq Ci0gKiBpbnRlbF9ndnRfaW5pdCAtIGluaXRpYWxpemUgR1ZUIGNvbXBvbmVudHMKLSAqIEBkZXZf cHJpdjogZHJtIGk5MTUgcHJpdmF0ZSBkYXRhCi0gKgotICogVGhpcyBmdW5jdGlvbiBpcyBjYWxs ZWQgYXQgdGhlIGluaXRpYWxpemF0aW9uIHN0YWdlIHRvIGNyZWF0ZSBhIEdWVCBkZXZpY2UuCi0g KgotICogUmV0dXJuczoKLSAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBp ZiBmYWlsZWQuCi0gKgotICovCi1pbnQgaW50ZWxfZ3Z0X2luaXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQotewotCWludCByZXQ7Ci0KLQlpZiAoaTkxNV9pbmplY3RfbG9hZF9m YWlsdXJlKCkpCi0JCXJldHVybiAtRU5PREVWOwotCi0JaWYgKCFpOTE1X21vZHBhcmFtcy5lbmFi bGVfZ3Z0KSB7Ci0JCURSTV9ERUJVR19EUklWRVIoIkdWVC1nIGlzIGRpc2FibGVkIGJ5IGtlcm5l bCBwYXJhbXNcbiIpOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlpZiAoVVNFU19HVUNfU1VCTUlTU0lP TihkZXZfcHJpdikpIHsKLQkJRFJNX0VSUk9SKCJpOTE1IEdWVC1nIGxvYWRpbmcgZmFpbGVkIGR1 ZSB0byBHcmFwaGljcyB2aXJ0dWFsaXphdGlvbiBpcyBub3QgeWV0IHN1cHBvcnRlZCB3aXRoIEd1 QyBzdWJtaXNzaW9uXG4iKTsKLQkJcmV0dXJuIC1FSU87Ci0JfQotCi0JLyoKLQkgKiBXZSdyZSBu b3QgaW4gaG9zdCBvciBmYWlsIHRvIGZpbmQgYSBNUFQgbW9kdWxlLCBkaXNhYmxlIEdWVC1nCi0J ICovCi0JcmV0ID0gaW50ZWxfZ3Z0X2luaXRfaG9zdCgpOwotCWlmIChyZXQpIHsKLQkJRFJNX0RF QlVHX0RSSVZFUigiTm90IGluIGhvc3Qgb3IgTVBUIG1vZHVsZXMgbm90IGZvdW5kXG4iKTsKLQkJ Z290byBiYWlsOwotCX0KLQotCXJldCA9IGludGVsX2d2dF9pbml0X2RldmljZShkZXZfcHJpdik7 Ci0JaWYgKHJldCkgewotCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsIHRvIGluaXQgR1ZUIGRldmlj ZVxuIik7Ci0JCWdvdG8gYmFpbDsKLQl9Ci0KLQlyZXR1cm4gMDsKLQotYmFpbDoKLQlpOTE1X21v ZHBhcmFtcy5lbmFibGVfZ3Z0ID0gMDsKLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBpbnRlbF9n dnRfY2xlYW51cCAtIGNsZWFudXAgR1ZUIGNvbXBvbmVudHMgd2hlbiBpOTE1IGRyaXZlciBpcyB1 bmxvYWRpbmcKLSAqIEBkZXZfcHJpdjogZHJtIGk5MTUgcHJpdmF0ZSAqCi0gKgotICogVGhpcyBm dW5jdGlvbiBpcyBjYWxsZWQgYXQgdGhlIGk5MTUgZHJpdmVyIHVubG9hZGluZyBzdGFnZSwgdG8g c2h1dGRvd24KLSAqIEdWVCBjb21wb25lbnRzIGFuZCByZWxlYXNlIHRoZSByZWxhdGVkIHJlc291 cmNlcy4KLSAqLwotdm9pZCBpbnRlbF9ndnRfY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCi17Ci0JaWYgKCFpbnRlbF9ndnRfYWN0aXZlKGRldl9wcml2KSkKLQkJcmV0 dXJuOwotCi0JaW50ZWxfZ3Z0X2NsZWFuX2RldmljZShkZXZfcHJpdik7Ci19CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndnQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2d2dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MWIyNDY0NzAyODIu LjAwMDAwMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndnQuaAorKysg L2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQoYykgMjAxMS0yMDE2 IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp bmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUg d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhl IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0 byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhl IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1 ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29w aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICog VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z IEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg VE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxM Ci0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD TEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKLSAqIE9VVCBP RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIg REVBTElOR1MgSU4gVEhFCi0gKiBTT0ZUV0FSRS4KLSAqLwotCi0jaWZuZGVmIF9JTlRFTF9HVlRf SF8KLSNkZWZpbmUgX0lOVEVMX0dWVF9IXwotCi1zdHJ1Y3QgaW50ZWxfZ3Z0OwotCi0jaWZkZWYg Q09ORklHX0RSTV9JOTE1X0dWVAotaW50IGludGVsX2d2dF9pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGludGVsX2d2dF9jbGVhbnVwKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7Ci1pbnQgaW50ZWxfZ3Z0X2luaXRfZGV2aWNlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGludGVsX2d2dF9jbGVhbl9kZXZpY2Uo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLWludCBpbnRlbF9ndnRfaW5pdF9o b3N0KHZvaWQpOwotdm9pZCBpbnRlbF9ndnRfc2FuaXRpemVfb3B0aW9ucyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50IGludGVsX2d2 dF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQlyZXR1cm4gMDsK LX0KLXN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9ndnRfY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9ndnRf c2FuaXRpemVfb3B0aW9ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci19 Ci0jZW5kaWYKLQotI2VuZGlmIC8qIF9JTlRFTF9HVlRfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCBkNDBmNTVhOGRjMzQuLjk0NmFiMWJmOTIxNCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAtMTg4Miw2ICsxODgyLDcg QEAgdTMyICppbnRlbF9yaW5nX2JlZ2luKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1bnNpZ25l ZCBpbnQgbnVtX2R3b3JkcykKIAogCXJldHVybiBjczsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGlu dGVsX3JpbmdfYmVnaW4pOwogCiAvKiBBbGlnbiB0aGUgcmluZyB0YWlsIHRvIGEgY2FjaGVsaW5l IGJvdW5kYXJ5ICovCiBpbnQgaW50ZWxfcmluZ19jYWNoZWxpbmVfYWxpZ24oc3RydWN0IGk5MTVf cmVxdWVzdCAqcnEpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50 aW1lX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKaW5kZXgg NDgwZGFkYjEwNDdiLi5jNGM1ODljMzhjNjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3J1bnRpbWVfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y dW50aW1lX3BtLmMKQEAgLTQwMjAsNiArNDAyMCw3IEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9n ZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWF0b21pY19pbmMoJmRldl9w cml2LT5ydW50aW1lX3BtLndha2VyZWZfY291bnQpOwogCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVs ZChkZXZfcHJpdik7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChpbnRlbF9ydW50aW1lX3BtX2dldCk7 CiAKIC8qKgogICogaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlIC0gZ3JhYiBhIHJ1bnRp bWUgcG0gcmVmZXJlbmNlIGlmIGRldmljZSBpbiB1c2UKQEAgLTQxMDMsNiArNDEwNCw3IEBAIHZv aWQgaW50ZWxfcnVudGltZV9wbV9wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koa2Rldik7CiAJcG1fcnVudGltZV9wdXRfYXV0 b3N1c3BlbmQoa2Rldik7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChpbnRlbF9ydW50aW1lX3BtX3B1 dCk7CiAKIC8qKgogICogaW50ZWxfcnVudGltZV9wbV9lbmFibGUgLSBlbmFibGUgcnVudGltZSBw bQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwppbmRleCAyMGYyZjVhZDljM2YuLjcwYWJl ZGZjYjJmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKQEAgLTY0NCw2ICs2NDQs NyBAQCB2b2lkIGludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAlfX2ludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KGRldl9wcml2LCBm d19kb21haW5zKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+dW5jb3JlLmxv Y2ssIGlycWZsYWdzKTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGludGVsX3VuY29yZV9mb3JjZXdh a2VfZ2V0KTsKIAogLyoqCiAgKiBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3VzZXJfZ2V0IC0gY2xh aW0gZm9yY2V3YWtlIG9uIGJlaGFsZiBvZiB1c2Vyc3BhY2UKQEAgLTc1Niw2ICs3NTcsNyBAQCB2 b2lkIGludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAlfX2ludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KGRldl9wcml2LCBmd19kb21h aW5zKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGly cWZsYWdzKTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0 KTsKIAogLyoqCiAgKiBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dF9fbG9ja2VkIC0gZ3JhYiBm b3JjZXdha2UgZG9tYWluIHJlZmVyZW5jZXMKQEAgLTIzODAsNiArMjM4Miw3IEBAIGludGVsX3Vu Y29yZV9mb3JjZXdha2VfZm9yX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAKIAlyZXR1cm4gZndfZG9tYWluczsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGludGVsX3VuY29y ZV9mb3JjZXdha2VfZm9yX3JlZyk7CiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9T RUxGVEVTVCkKICNpbmNsdWRlICJzZWxmdGVzdHMvbW9ja191bmNvcmUuYyIKLS0gCjIuMTkuMAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==