From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: [PATCH v3 2/2] drm/i915: Implement I915_PERF_ADD/REMOVE_CONFIG interface Date: Fri, 14 Jul 2017 11:24:40 +0100 Message-ID: <20170714102440.25067-3-lionel.g.landwerlin@intel.com> References: <20170714102440.25067-1-lionel.g.landwerlin@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 16CF56E7E2 for ; Fri, 14 Jul 2017 10:24:54 +0000 (UTC) In-Reply-To: <20170714102440.25067-1-lionel.g.landwerlin@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: Andrzej Datczuk , Matthew Auld List-Id: intel-gfx@lists.freedesktop.org RnJvbTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgoKVGhlIG1vdGl2YXRp b24gYmVoaW5kIHRoaXMgbmV3IGludGVyZmFjZSBpcyBleHBvc2UgYXQgcnVudGltZSB0aGUKY3Jl YXRpb24gb2YgbmV3IE9BIGNvbmZpZ3Mgd2hpY2ggY2FuIGJlIHVzZWQgYXMgcGFydCBvZiB0aGUg aTkxNSBwZXJmCm9wZW4gaW50ZXJmYWNlLiBUaGlzIHdpbGwgZW5hYmxlIHRoZSBrZXJuZWwgdG8g bGVhcm4gbmV3IGNvbmZpZ3Mgd2hpY2gKbWF5IGJlIGV4cGVyaW1lbnRhbCwgb3Igb3RoZXJ3aXNl IG5vdCBwYXJ0IG9mIHRoZSBjb3JlIHNldCBjdXJyZW50bHkKYXZhaWxhYmxlIHRocm91Z2ggdGhl IGk5MTUgcGVyZiBpbnRlcmZhY2UuCgpUaGlzIHdpbGwgcmVsaWV2ZSB0aGUga2VybmVsIGZyb20g aG9sZGluZyBhbGwgdGhlIHBvc3NpYmxlIGNvbmZpZ3MsIHNvCndlIGNhbiBsZWF2ZSBvbmx5IHRo ZSB0ZXN0IGNvbmZpZ3MgaGVyZS4KCnYyOiBEcm9wIERSTV9FUlJPUiBmb3IgdXNlcnNwYWNlIGVy cm9ycyAoTWF0dGhldykKICAgIEFkZCBwYWRkaW5nIHRvIHVzZXJzcGFjZSBzdHJ1Y3R1cmUgKE1h dHRoZXcpCiAgICBzL2d1aWQvdXVpZC8gKE1hdHRoZXcpCgp2MzogVXNlIHUzMiBpbnN0ZWFkIG9m IGludCB0byBpdGVyYXRlIHRocm91Z2ggcmVnaXN0ZXJzIChNYXR0aGV3KQoKU2lnbmVkLW9mZi1i eTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBM aW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+ClNpZ25lZC1v ZmYtYnk6IEFuZHJ6ZWogRGF0Y3p1ayA8YW5kcnplai5kYXRjenVrQGludGVsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oICB8ICAyNSArKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVy Zi5jIHwgMzUyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgfCAgIDIgKwogaW5jbHVkZS91YXBpL2RybS9pOTE1 X2RybS5oICAgICAgfCAgMjQgKysrCiA1IGZpbGVzIGNoYW5nZWQsIDQwNCBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggZDMxMGQ4MjQ1ZGNh Li5hM2QzMzk2NzBlYzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMjczMCw2ICsyNzMw LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBpOTE1X2lvY3Rsc1tdID0g ewogCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VNX0NPTlRFWFRfR0VUUEFSQU0sIGk5MTVfZ2Vt X2NvbnRleHRfZ2V0cGFyYW1faW9jdGwsIERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9E RUZfRFJWKEk5MTVfR0VNX0NPTlRFWFRfU0VUUEFSQU0sIGk5MTVfZ2VtX2NvbnRleHRfc2V0cGFy YW1faW9jdGwsIERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfUEVS Rl9PUEVOLCBpOTE1X3BlcmZfb3Blbl9pb2N0bCwgRFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lP Q1RMX0RFRl9EUlYoSTkxNV9QRVJGX0FERF9DT05GSUcsIGk5MTVfcGVyZl9hZGRfY29uZmlnX2lv Y3RsLCBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRl9EUlYo STkxNV9QRVJGX1JFTU9WRV9DT05GSUcsIGk5MTVfcGVyZl9yZW1vdmVfY29uZmlnX2lvY3RsLCBE Uk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiB9OwogCiBzdGF0aWMgc3RydWN0IGRybV9k cml2ZXIgZHJpdmVyID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggZWUzNTMyZTgwYTJh Li5kZjA0Mzc2YzA2NTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjA0Myw2ICsyMDQz LDI1IEBAIHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtIHsKICAqLwogc3RydWN0IGk5MTVfb2Ffb3Bz IHsKIAkvKioKKwkgKiBAaXNfdmFsaWRfYl9jb3VudGVyX3JlZzogVmFsaWRhdGVzIHJlZ2lzdGVy J3MgYWRkcmVzcyBmb3IKKwkgKiBwcm9ncmFtbWluZyBib29sZWFuIGNvdW50ZXJzIGZvciBhIHBh cnRpY3VsYXIgcGxhdGZvcm0uCisJICovCisJYm9vbCAoKmlzX3ZhbGlkX2JfY291bnRlcl9yZWcp KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgICAgICAgdTMyIGFkZHIp OworCisJLyoqCisJICogQGlzX3ZhbGlkX211eF9yZWc6IFZhbGlkYXRlcyByZWdpc3RlcidzIGFk ZHJlc3MgZm9yIHByb2dyYW1taW5nIG11eAorCSAqIGZvciBhIHBhcnRpY3VsYXIgcGxhdGZvcm0u CisJICovCisJYm9vbCAoKmlzX3ZhbGlkX211eF9yZWcpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgdTMyIGFkZHIpOworCisJLyoqCisJICogQGlzX3ZhbGlkX2ZsZXhfcmVnOiBW YWxpZGF0ZXMgcmVnaXN0ZXIncyBhZGRyZXNzIGZvciBwcm9ncmFtbWluZworCSAqIGZsZXggRVUg ZmlsdGVyaW5nIGZvciBhIHBhcnRpY3VsYXIgcGxhdGZvcm0uCisJICovCisJYm9vbCAoKmlzX3Zh bGlkX2ZsZXhfcmVnKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBhZGRy KTsKKworCS8qKgogCSAqIEBpbml0X29hX2J1ZmZlcjogUmVzZXRzIHRoZSBoZWFkIGFuZCB0YWls IHBvaW50ZXJzIG9mIHRoZQogCSAqIGNpcmN1bGFyIGJ1ZmZlciBmb3IgcGVyaW9kaWMgT0EgcmVw b3J0cy4KIAkgKgpAQCAtMjQzMyw2ICsyNDUyLDggQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg ewogCQlzdHJ1Y3QgbXV0ZXggbG9jazsKIAkJc3RydWN0IGxpc3RfaGVhZCBzdHJlYW1zOwogCisJ CXN0cnVjdCBpZHIgbWV0cmljc19pZHI7CisKIAkJc3RydWN0IHsKIAkJCXN0cnVjdCBpOTE1X3Bl cmZfc3RyZWFtICpleGNsdXNpdmVfc3RyZWFtOwogCkBAIC0zNjAxLDYgKzM2MjIsMTAgQEAgaTkx NV9nZW1fY29udGV4dF9sb29rdXBfdGltZWxpbmUoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0 eCwKIAogaW50IGk5MTVfcGVyZl9vcGVuX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCiAJCQkgc3RydWN0IGRybV9maWxlICpmaWxlKTsKK2ludCBpOTE1X3BlcmZfYWRk X2NvbmZpZ19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAg ICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7CitpbnQgaTkxNV9wZXJmX3JlbW92ZV9jb25maWdf aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQkgIHN0cnVjdCBk cm1fZmlsZSAqZmlsZSk7CiB2b2lkIGk5MTVfb2FfaW5pdF9yZWdfc3RhdGUoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lLAogCQkJICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgs CiAJCQkgICAgdWludDMyX3QgKnJlZ19zdGF0ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BlcmYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCmlu ZGV4IDkyZWI5YjAxZjMyMS4uZmJhNGFkYmZmZTU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BlcmYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYu YwpAQCAtMjY1Miw3ICsyNjUyLDcgQEAgc3RhdGljIHN0cnVjdCBpOTE1X29hX2NvbmZpZyAqZ2V0 X29hX2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJaWYgKG1ldHJp Y3Nfc2V0ID09IDEpCiAJCXJldHVybiAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWc7CiAK LQlyZXR1cm4gTlVMTDsKKwlyZXR1cm4gaWRyX2ZpbmQoJmRldl9wcml2LT5wZXJmLm1ldHJpY3Nf aWRyLCBtZXRyaWNzX3NldCk7CiB9CiAKIC8qKgpAQCAtMjkxMyw2ICsyOTEzLDcgQEAgdm9pZCBp OTE1X3BlcmZfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkJ CSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljKTsKIAlpZiAocmV0 KQogCQlnb3RvIHN5c2ZzX2Vycm9yOworCiAJZ290byBleGl0OwogCiBzeXNmc19lcnJvcjoKQEAg LTI5NDQsNiArMjk0NSwzMzQgQEAgdm9pZCBpOTE1X3BlcmZfdW5yZWdpc3RlcihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqID0g TlVMTDsKIH0KIAorc3RhdGljIGJvb2wgZ2VuOF9pc192YWxpZF9mbGV4X2FkZHIoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgYWRkcikKK3sKKwlzdGF0aWMgY29uc3QgaTkx NV9yZWdfdCBmbGV4X2V1X3JlZ3NbXSA9IHsKKwkJRVVfUEVSRl9DTlRMMCwKKwkJRVVfUEVSRl9D TlRMMSwKKwkJRVVfUEVSRl9DTlRMMiwKKwkJRVVfUEVSRl9DTlRMMywKKwkJRVVfUEVSRl9DTlRM NCwKKwkJRVVfUEVSRl9DTlRMNSwKKwkJRVVfUEVSRl9DTlRMNiwKKwl9OworCWludCBpOworCisJ Zm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZmxleF9ldV9yZWdzKTsgaSsrKSB7CisJCWlmIChm bGV4X2V1X3JlZ3NbaV0ucmVnID09IGFkZHIpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisJcmV0dXJu IGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBnZW43X2lzX3ZhbGlkX2JfY291bnRlcl9hZGRyKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGFkZHIpCit7CisJcmV0dXJuIChh ZGRyID49IDB4MjM4MCAmJiBhZGRyIDw9IDB4MjdhYyk7Cit9CisKK3N0YXRpYyBib29sIGdlbjdf aXNfdmFsaWRfbXV4X2FkZHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIg YWRkcikKK3sKKwlyZXR1cm4gYWRkciA9PSBOT0FfV1JJVEUucmVnIHx8CisJCShhZGRyID49IDB4 ZDBjICYmIGFkZHIgPD0gMHhkM2MpIHx8CisJCShhZGRyID49IDB4MjUxMDAgJiYgYWRkciA8PSAw eDJGQjlDKTsKK30KKworc3RhdGljIGJvb2wgaHN3X2lzX3ZhbGlkX211eF9hZGRyKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGFkZHIpCit7CisJcmV0dXJuIChhZGRyID49 IDB4MjUxMDAgJiYgYWRkciA8PSAweDJGRjkwKSB8fAorCQlnZW43X2lzX3ZhbGlkX211eF9hZGRy KGRldl9wcml2LCBhZGRyKTsKK30KKworc3RhdGljIGJvb2wgY2h2X2lzX3ZhbGlkX211eF9hZGRy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGFkZHIpCit7CisJcmV0dXJu IChhZGRyID49IDB4MTgyMzAwICYmIGFkZHIgPD0gMHgxODIzQTQpIHx8CisJCWdlbjdfaXNfdmFs aWRfbXV4X2FkZHIoZGV2X3ByaXYsIGFkZHIpOworfQorCitzdGF0aWMgc3RydWN0IGk5MTVfb2Ff cmVnICphbGxvY19vYV9yZWdzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJ CQkJIGJvb2wgKCppc192YWxpZCkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1 MzIgYWRkciksCisJCQkJCSB1MzIgX191c2VyICpyZWdzLAorCQkJCQkgdTMyIG5fcmVncykKK3sK KwlzdHJ1Y3QgaTkxNV9vYV9yZWcgKm9hX3JlZ3M7CisJaW50IGVycjsKKwl1MzIgaTsKKworCWlm ICghbl9yZWdzKQorCQlyZXR1cm4gTlVMTDsKKworCS8qIE5vIGlzX3ZhbGlkIGZ1bmN0aW9uIG1l YW5zIHdlJ3JlIG5vdCBhbGxvd2luZyBhbnkgcmVnaXN0ZXIgdG8gYmUgcHJvZ3JhbW1lZC4gKi8K KwlHRU1fQlVHX09OKCFpc192YWxpZCk7CisJaWYgKCFpc192YWxpZCkKKwkJcmV0dXJuIEVSUl9Q VFIoLUVJTlZBTCk7CisKKwlvYV9yZWdzID0ga21hbGxvYyhzaXplb2YoKm9hX3JlZ3MpICogbl9y ZWdzLCBHRlBfS0VSTkVMKTsKKwlpZiAoIW9hX3JlZ3MpCisJCXJldHVybiBFUlJfUFRSKC1FTk9N RU0pOworCisJZm9yIChpID0gMDsgaSA8IG5fcmVnczsgaSsrKSB7CisJCXUzMiBhZGRyLCB2YWx1 ZTsKKworCQllcnIgPSBnZXRfdXNlcihhZGRyLCByZWdzKTsKKwkJaWYgKGVycikKKwkJCWdvdG8g YWRkcl9lcnI7CisKKwkJaWYgKCFpc192YWxpZChkZXZfcHJpdiwgYWRkcikpIHsKKwkJCURSTV9E RUJVRygiSW52YWxpZCBvYV9yZWcgYWRkcmVzczogJVhcbiIsIGFkZHIpOworCQkJZXJyID0gLUVJ TlZBTDsKKwkJCWdvdG8gYWRkcl9lcnI7CisJCX0KKworCQllcnIgPSBnZXRfdXNlcih2YWx1ZSwg cmVncyArIDEpOworCQlpZiAoZXJyKQorCQkJZ290byBhZGRyX2VycjsKKworCQlvYV9yZWdzW2ld LmFkZHIgPSBfTU1JTyhhZGRyKTsKKwkJb2FfcmVnc1tpXS52YWx1ZSA9IHZhbHVlOworCisJCXJl Z3MgKz0gMjsKKwl9CisKKwlyZXR1cm4gb2FfcmVnczsKKworYWRkcl9lcnI6CisJa2ZyZWUob2Ff cmVncyk7CisJcmV0dXJuIEVSUl9QVFIoZXJyKTsKK30KKworc3RhdGljIHNzaXplX3Qgc2hvd19k eW5hbWljX2lkKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCSAgICAgICBzdHJ1Y3QgZGV2aWNlX2F0 dHJpYnV0ZSAqYXR0ciwKKwkJCSAgICAgICBjaGFyICpidWYpCit7CisJc3RydWN0IGk5MTVfb2Ff Y29uZmlnICpvYV9jb25maWcgPQorCQljb250YWluZXJfb2YoYXR0ciwgdHlwZW9mKCpvYV9jb25m aWcpLCBzeXNmc19tZXRyaWNfaWQpOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIG9h X2NvbmZpZy0+aWQpOworfQorCitzdGF0aWMgaW50IGNyZWF0ZV9keW5hbWljX29hX3N5c2ZzX2Vu dHJ5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkJIHN0cnVjdCBpOTE1 X29hX2NvbmZpZyAqb2FfY29uZmlnKQoreworCW9hX2NvbmZpZy0+c3lzZnNfbWV0cmljX2lkLmF0 dHIubmFtZSA9ICJpZCI7CisJb2FfY29uZmlnLT5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0g U19JUlVHTzsKKwlvYV9jb25maWctPnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd19keW5hbWlj X2lkOworCW9hX2NvbmZpZy0+c3lzZnNfbWV0cmljX2lkLnN0b3JlID0gTlVMTDsKKworCW9hX2Nv bmZpZy0+YXR0cnNbMF0gPSAmb2FfY29uZmlnLT5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKwlvYV9j b25maWctPmF0dHJzWzFdID0gTlVMTDsKKworCW9hX2NvbmZpZy0+c3lzZnNfbWV0cmljLm5hbWUg PSBvYV9jb25maWctPnV1aWQ7CisJb2FfY29uZmlnLT5zeXNmc19tZXRyaWMuYXR0cnMgPSBvYV9j b25maWctPmF0dHJzOworCisJcmV0dXJuIHN5c2ZzX2NyZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVy Zi5tZXRyaWNzX2tvYmosCisJCQkJICAmb2FfY29uZmlnLT5zeXNmc19tZXRyaWMpOworfQorCitz dGF0aWMgaW50IGRlc3Ryb3lfY29uZmlnKGludCBpZCwgdm9pZCAqcCwgdm9pZCAqZGF0YSkKK3sK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkYXRhOworCXN0cnVjdCBpOTE1 X29hX2NvbmZpZyAqb2FfY29uZmlnID0gcDsKKworCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJp di0+cGVyZi5tZXRyaWNzX2tvYmosCisJCQkgICAmb2FfY29uZmlnLT5zeXNmc19tZXRyaWMpOwor CWtmcmVlKG9hX2NvbmZpZy0+ZmxleF9yZWdzKTsKKwlrZnJlZShvYV9jb25maWctPmJfY291bnRl cl9yZWdzKTsKKwlrZnJlZShvYV9jb25maWctPm11eF9yZWdzKTsKKwlrZnJlZShvYV9jb25maWcp OworCisJcmV0dXJuIDA7Cit9CisKK2ludCBpOTE1X3BlcmZfYWRkX2NvbmZpZ19pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgICAgIHN0cnVjdCBkcm1fZmls ZSAqZmlsZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOworCXN0cnVjdCBkcm1faTkxNV9wZXJmX29hX2NvbmZpZyAqYXJncyA9IGRhdGE7 CisJc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWcsICp0bXA7CisJdW5zaWduZWQgaW50 IHgxLCB4MiwgeDMsIHg0LCB4NTsKKwlpbnQgZXJyLCBpZDsKKworCWlmICghZGV2X3ByaXYtPnBl cmYuaW5pdGlhbGl6ZWQpIHsKKwkJRFJNX0RFQlVHKCJpOTE1IHBlcmYgaW50ZXJmYWNlIG5vdCBh dmFpbGFibGUgZm9yIHRoaXMgc3lzdGVtXG4iKTsKKwkJcmV0dXJuIC1FTk9UU1VQUDsKKwl9CisK KwlpZiAoIWRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29iaikgeworCQlEUk1fREVCVUcoIk9BIG1l dHJpY3Mgd2VyZW4ndCBhZHZlcnRpc2VkIHZpYSBzeXNmc1xuIik7CisJCXJldHVybiAtRUlOVkFM OworCX0KKworCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkgeworCQlEUk1fREVCVUcoIklu c3VmZmljaWVudCBwcml2aWxlZ2VzIHRvIGFkZCBpOTE1IE9BIGNvbmZpZ1xuIik7CisJCXJldHVy biAtRUFDQ0VTOworCX0KKworCWlmICgoIWFyZ3MtPm11eF9yZWdzIHx8ICFhcmdzLT5uX211eF9y ZWdzKSAmJgorCSAgICAoIWFyZ3MtPmJvb2xlYW5fcmVncyB8fCAhYXJncy0+bl9ib29sZWFuX3Jl Z3MpICYmCisJICAgICghYXJncy0+ZmxleF9yZWdzIHx8ICFhcmdzLT5uX2ZsZXhfcmVncykpIHsK KwkJRFJNX0RFQlVHKCJObyBPQSByZWdpc3RlcnMgZ2l2ZW5cbiIpOworCQlyZXR1cm4gLUVJTlZB TDsKKwl9CisKKwlvYV9jb25maWcgPSBremFsbG9jKHNpemVvZigqb2FfY29uZmlnKSwgR0ZQX0tF Uk5FTCk7CisJaWYgKCFvYV9jb25maWcpIHsKKwkJRFJNX0RFQlVHKCJGYWlsZWQgdG8gYWxsb2Nh dGUgbWVtb3J5IGZvciB0aGUgT0EgY29uZmlnXG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQor CisJZXJyID0gc3RybmNweV9mcm9tX3VzZXIob2FfY29uZmlnLT51dWlkLCB1NjRfdG9fdXNlcl9w dHIoYXJncy0+dXVpZCksCisJCQkJVVVJRF9TVFJJTkdfTEVOKTsKKwlpZiAoZXJyIDwgMCkgewor CQlEUk1fREVCVUcoIkZhaWxlZCB0byBjb3B5IHV1aWQgZnJvbSBPQSBjb25maWdcbiIpOworCQln b3RvIG11eF9lcnI7CisJfQorCisJaWYgKHNzY2FuZihvYV9jb25maWctPnV1aWQsICIlMDh4LSUw NHgtJTA0eC0lMDR4LSUwMTJ4IiwgJngxLCAmeDIsICZ4MywKKwkJICAgJng0LCAmeDUpICE9IDUp IHsKKwkJRFJNX0RFQlVHKCJJbnZhbGlkIHV1aWQgZm9ybWF0IGZvciBPQSBjb25maWdcbiIpOwor CQllcnIgPSAtRUlOVkFMOworCQlnb3RvIG11eF9lcnI7CisJfQorCisJb2FfY29uZmlnLT5tdXhf cmVnc19sZW4gPSBhcmdzLT5uX211eF9yZWdzOworCW9hX2NvbmZpZy0+bXV4X3JlZ3MgPQorCQlh bGxvY19vYV9yZWdzKGRldl9wcml2LAorCQkJICAgICAgZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlz X3ZhbGlkX211eF9yZWcsCisJCQkgICAgICB1NjRfdG9fdXNlcl9wdHIoYXJncy0+bXV4X3JlZ3Mp LAorCQkJICAgICAgYXJncy0+bl9tdXhfcmVncyk7CisKKwlpZiAoSVNfRVJSKG9hX2NvbmZpZy0+ bXV4X3JlZ3MpKSB7CisJCURSTV9ERUJVRygiRmFpbGVkIHRvIGNyZWF0ZSBPQSBjb25maWcgZm9y IG11eF9yZWdzXG4iKTsKKwkJZXJyID0gUFRSX0VSUihvYV9jb25maWctPm11eF9yZWdzKTsKKwkJ Z290byBtdXhfZXJyOworCX0KKworCW9hX2NvbmZpZy0+Yl9jb3VudGVyX3JlZ3NfbGVuID0gYXJn cy0+bl9ib29sZWFuX3JlZ3M7CisJb2FfY29uZmlnLT5iX2NvdW50ZXJfcmVncyA9CisJCWFsbG9j X29hX3JlZ3MoZGV2X3ByaXYsCisJCQkgICAgICBkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFs aWRfYl9jb3VudGVyX3JlZywKKwkJCSAgICAgIHU2NF90b191c2VyX3B0cihhcmdzLT5ib29sZWFu X3JlZ3MpLAorCQkJICAgICAgYXJncy0+bl9ib29sZWFuX3JlZ3MpOworCisJaWYgKElTX0VSUihv YV9jb25maWctPmJfY291bnRlcl9yZWdzKSkgeworCQlEUk1fREVCVUcoIkZhaWxlZCB0byBjcmVh dGUgT0EgY29uZmlnIGZvciBiX2NvdW50ZXJfcmVnc1xuIik7CisJCWVyciA9IFBUUl9FUlIob2Ff Y29uZmlnLT5iX2NvdW50ZXJfcmVncyk7CisJCWdvdG8gYm9vbGVhbl9lcnI7CisJfQorCisJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPCA4KSB7CisJCWlmIChhcmdzLT5uX2ZsZXhfcmVncyAhPSAw KQorCQkJZ290byBmbGV4X2VycjsKKwl9IGVsc2UgeworCQlvYV9jb25maWctPmZsZXhfcmVnc19s ZW4gPSBhcmdzLT5uX2ZsZXhfcmVnczsKKwkJb2FfY29uZmlnLT5mbGV4X3JlZ3MgPQorCQkJYWxs b2Nfb2FfcmVncyhkZXZfcHJpdiwKKwkJCQkgICAgICBkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNf dmFsaWRfZmxleF9yZWcsCisJCQkJICAgICAgdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPmZsZXhfcmVn cyksCisJCQkJICAgICAgYXJncy0+bl9mbGV4X3JlZ3MpOworCisJCWlmIChJU19FUlIob2FfY29u ZmlnLT5mbGV4X3JlZ3MpKSB7CisJCQlEUk1fREVCVUcoIkZhaWxlZCB0byBjcmVhdGUgT0EgY29u ZmlnIGZvciBmbGV4X3JlZ3NcbiIpOworCQkJZXJyID0gUFRSX0VSUihvYV9jb25maWctPmZsZXhf cmVncyk7CisJCQlnb3RvIGZsZXhfZXJyOworCQl9CisJfQorCisJZXJyID0gaTkxNV9tdXRleF9s b2NrX2ludGVycnVwdGlibGUoZGV2KTsKKwlpZiAoZXJyKQorCQlnb3RvIGxvY2tfZXJyOworCisJ aWRyX2Zvcl9lYWNoX2VudHJ5KCZkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2lkciwgdG1wLCBpZCkg eworCQlpZiAoIXN0cmNtcCh0bXAtPnV1aWQsIG9hX2NvbmZpZy0+dXVpZCkpIHsKKwkJCURSTV9E RUJVRygiT0EgY29uZmlnIGFscmVhZHkgZXhpc3RzIHdpdGggdGhpcyB1dWlkXG4iKTsKKwkJCWVy ciA9IC1FQUREUklOVVNFOworCQkJZ290byBzeXNmc19lcnI7CisJCX0KKwl9CisKKwllcnIgPSBj cmVhdGVfZHluYW1pY19vYV9zeXNmc19lbnRyeShkZXZfcHJpdiwgb2FfY29uZmlnKTsKKwlpZiAo ZXJyKSB7CisJCURSTV9ERUJVRygiRmFpbGVkIHRvIGNyZWF0ZSBzeXNmcyBlbnRyeSBmb3IgT0Eg Y29uZmlnXG4iKTsKKwkJZ290byBzeXNmc19lcnI7CisJfQorCisJb2FfY29uZmlnLT5pZCA9IGlk cl9hbGxvYygmZGV2X3ByaXYtPnBlcmYubWV0cmljc19pZHIsCisJCQkJICBvYV9jb25maWcsIDIs CisJCQkJICAwLCBHRlBfS0VSTkVMKTsKKwlpZiAob2FfY29uZmlnLT5pZCA8IDApIHsKKwkJRFJN X0RFQlVHKCJGYWlsZWQgdG8gY3JlYXRlIHN5c2ZzIGVudHJ5IGZvciBPQSBjb25maWdcbiIpOwor CQlnb3RvIGlkcl9lcnI7CisJfQorCisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7 CisKKwlyZXR1cm4gb2FfY29uZmlnLT5pZDsKKworaWRyX2VycjoKKwlzeXNmc19yZW1vdmVfZ3Jv dXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLAorCQkJICAgJm9hX2NvbmZpZy0+c3lzZnNf bWV0cmljKTsKK3N5c2ZzX2VycjoKKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsK K2xvY2tfZXJyOgorCWtmcmVlKG9hX2NvbmZpZy0+ZmxleF9yZWdzKTsKK2ZsZXhfZXJyOgorCWtm cmVlKG9hX2NvbmZpZy0+Yl9jb3VudGVyX3JlZ3MpOworYm9vbGVhbl9lcnI6CisJa2ZyZWUob2Ff Y29uZmlnLT5tdXhfcmVncyk7CittdXhfZXJyOgorCWtmcmVlKG9hX2NvbmZpZyk7CisKKwlEUk1f REVCVUcoIkZhaWxlZCB0byBhZGQgbmV3IE9BIGNvbmZpZ1xuIik7CisJcmV0dXJuIGVycjsKK30K KworaW50IGk5MTVfcGVyZl9yZW1vdmVfY29uZmlnX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCisJCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCit7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwl1NjQgKmFy ZyA9IGRhdGE7CisJc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWc7CisJaW50IHJldDsK KworCWlmICghZGV2X3ByaXYtPnBlcmYuaW5pdGlhbGl6ZWQpIHsKKwkJRFJNX0RFQlVHKCJpOTE1 IHBlcmYgaW50ZXJmYWNlIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgc3lzdGVtXG4iKTsKKwkJcmV0 dXJuIC1FTk9UU1VQUDsKKwl9CisKKwlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpIHsKKwkJ RFJNX0RFQlVHKCJJbnN1ZmZpY2llbnQgcHJpdmlsZWdlcyB0byByZW1vdmUgaTkxNSBPQSBjb25m aWdcbiIpOworCQlyZXR1cm4gLUVBQ0NFUzsKKwl9CisKKwlyZXQgPSBpOTE1X211dGV4X2xvY2tf aW50ZXJydXB0aWJsZShkZXYpOworCWlmIChyZXQpCisJCWdvdG8gbG9ja19lcnI7CisKKwlpZiAo ZGV2X3ByaXYtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbSAmJgorCSAgICBkZXZfcHJpdi0+cGVy Zi5vYS5leGNsdXNpdmVfc3RyZWFtLT5vYV9jb25maWctPmlkID09ICphcmcpIHsKKwkJRFJNX0RF QlVHKCJGYWlsZWQgdG8gcmVtb3ZlIGNvbmZpZyBpbiB1c2VcbiIpOworCQlyZXQgPSAtRUFERFJJ TlVTRTsKKwkJZ290byBjb25maWdfZXJyOworCX0KKworCW9hX2NvbmZpZyA9IGlkcl9maW5kKCZk ZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2lkciwgKmFyZyk7CisJaWYgKCFvYV9jb25maWcpIHsKKwkJ RFJNX0RFQlVHKCJGYWlsZWQgdG8gcmVtb3ZlIHVua25vd24gY29uZmlnXG4iKTsKKwkJcmV0ID0g LUVJTlZBTDsKKwkJZ290byBjb25maWdfZXJyOworCX0KKworCUdFTV9CVUdfT04oKmFyZyAhPSBv YV9jb25maWctPmlkKTsKKworCWlkcl9yZW1vdmUoJmRldl9wcml2LT5wZXJmLm1ldHJpY3NfaWRy LCAqYXJnKTsKKwlkZXN0cm95X2NvbmZpZyhvYV9jb25maWctPmlkLCBvYV9jb25maWcsIGRldl9w cml2KTsKKworY29uZmlnX2VycjoKKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsK K2xvY2tfZXJyOgorCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgY3RsX3RhYmxlIG9h X3RhYmxlW10gPSB7CiAJewogCSAucHJvY25hbWUgPSAicGVyZl9zdHJlYW1fcGFyYW5vaWQiLApA QCAtMjk5OSw4ICszMzI4LDE0IEBAIHZvaWQgaTkxNV9wZXJmX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogewogCWRldl9wcml2LT5wZXJmLm9hLmN1cnJlbnRfY29uZmln ID0gTlVMTDsKIAlkZXZfcHJpdi0+cGVyZi5vYS50aW1lc3RhbXBfZnJlcXVlbmN5ID0gMDsKKwlp ZHJfaW5pdCgmZGV2X3ByaXYtPnBlcmYubWV0cmljc19pZHIpOwogCiAJaWYgKElTX0hBU1dFTEwo ZGV2X3ByaXYpKSB7CisJCWRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9iX2NvdW50ZXJf cmVnID0KKwkJCWdlbjdfaXNfdmFsaWRfYl9jb3VudGVyX2FkZHI7CisJCWRldl9wcml2LT5wZXJm Lm9hLm9wcy5pc192YWxpZF9tdXhfcmVnID0KKwkJCWhzd19pc192YWxpZF9tdXhfYWRkcjsKKwkJ ZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX2ZsZXhfcmVnID0gTlVMTDsKIAkJZGV2X3By aXYtPnBlcmYub2Eub3BzLmluaXRfb2FfYnVmZmVyID0gZ2VuN19pbml0X29hX2J1ZmZlcjsKIAkJ ZGV2X3ByaXYtPnBlcmYub2Eub3BzLmVuYWJsZV9tZXRyaWNfc2V0ID0gaHN3X2VuYWJsZV9tZXRy aWNfc2V0OwogCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuZGlzYWJsZV9tZXRyaWNfc2V0ID0gaHN3 X2Rpc2FibGVfbWV0cmljX3NldDsKQEAgLTMwMjAsNiArMzM1NSwxMiBAQCB2b2lkIGk5MTVfcGVy Zl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJICogd29ydGggdGhl IGNvbXBsZXhpdHkgdG8gbWFpbnRhaW4gbm93IHRoYXQgQkRXKyBlbmFibGUKIAkJICogZXhlY2xp c3QgbW9kZSBieSBkZWZhdWx0LgogCQkgKi8KKwkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3Zh bGlkX2JfY291bnRlcl9yZWcgPQorCQkJZ2VuN19pc192YWxpZF9iX2NvdW50ZXJfYWRkcjsKKwkJ ZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX211eF9yZWcgPQorCQkJZ2VuN19pc192YWxp ZF9tdXhfYWRkcjsKKwkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX2ZsZXhfcmVnID0K KwkJCWdlbjhfaXNfdmFsaWRfZmxleF9hZGRyOwogCiAJCWRldl9wcml2LT5wZXJmLm9hLm9wcy5p bml0X29hX2J1ZmZlciA9IGdlbjhfaW5pdF9vYV9idWZmZXI7CiAJCWRldl9wcml2LT5wZXJmLm9h Lm9wcy5lbmFibGVfbWV0cmljX3NldCA9IGdlbjhfZW5hYmxlX21ldHJpY19zZXQ7CkBAIC0zMDM4 LDYgKzMzNzksMTAgQEAgdm9pZCBpOTE1X3BlcmZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAJCQlkZXZfcHJpdi0+cGVyZi5vYS50aW1lc3RhbXBfZnJlcXVlbmN5ID0g MTI1MDAwMDA7CiAKIAkJCWRldl9wcml2LT5wZXJmLm9hLmdlbjhfdmFsaWRfY3R4X2JpdCA9ICgx PDwyNSk7CisJCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKKwkJCQlkZXZfcHJpdi0+ cGVyZi5vYS5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9CisJCQkJCWNodl9pc192YWxpZF9tdXhfYWRk cjsKKwkJCX0KIAkJfSBlbHNlIGlmIChJU19HRU45KGRldl9wcml2KSkgewogCQkJZGV2X3ByaXYt PnBlcmYub2EuY3R4X29hY3R4Y3RybF9vZmZzZXQgPSAweDEyODsKIAkJCWRldl9wcml2LT5wZXJm Lm9hLmN0eF9mbGV4ZXUwX29mZnNldCA9IDB4M2RlOwpAQCAtMzA3Niw2ICszNDIxLDggQEAgdm9p ZCBpOTE1X3BlcmZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCQlk ZXZfcHJpdi0+cGVyZi5vYS50aW1lc3RhbXBfZnJlcXVlbmN5IC8gMjsKIAkJZGV2X3ByaXYtPnBl cmYuc3lzY3RsX2hlYWRlciA9IHJlZ2lzdGVyX3N5c2N0bF90YWJsZShkZXZfcm9vdCk7CiAKKwkJ aWRyX2luaXQoJmRldl9wcml2LT5wZXJmLm1ldHJpY3NfaWRyKTsKKwogCQlkZXZfcHJpdi0+cGVy Zi5pbml0aWFsaXplZCA9IHRydWU7CiAJfQogfQpAQCAtMzA4OSw2ICszNDM2LDkgQEAgdm9pZCBp OTE1X3BlcmZfZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKCFk ZXZfcHJpdi0+cGVyZi5pbml0aWFsaXplZCkKIAkJcmV0dXJuOwogCisJaWRyX2Zvcl9lYWNoKCZk ZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2lkciwgZGVzdHJveV9jb25maWcsIGRldl9wcml2KTsKKwlp ZHJfZGVzdHJveSgmZGV2X3ByaXYtPnBlcmYubWV0cmljc19pZHIpOworCiAJdW5yZWdpc3Rlcl9z eXNjdGxfdGFibGUoZGV2X3ByaXYtPnBlcmYuc3lzY3RsX2hlYWRlcik7CiAKIAltZW1zZXQoJmRl dl9wcml2LT5wZXJmLm9hLm9wcywgMCwgc2l6ZW9mKGRldl9wcml2LT5wZXJmLm9hLm9wcykpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggYzcxMmQwMWY5MmFiLi5mYzU5MzQwNjNjODMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaApAQCAtNzMyLDYgKzczMiw4IEBAIHN0YXRpYyBpbmxpbmUg Ym9vbCBpOTE1X21taW9fcmVnX3ZhbGlkKGk5MTVfcmVnX3QgcmVnKQogI2RlZmluZSBHRFRfQ0hJ Q0tFTl9CSVRTICAgIF9NTUlPKDB4OTg0MCkKICNkZWZpbmUgR1RfTk9BX0VOQUJMRQkgICAgMHgw MDAwMDA4MAogCisjZGVmaW5lIE5PQV9XUklURSAgICAgICAgICAgX01NSU8oMHg5ODg4KQorCiAv KgogICogT0EgQm9vbGVhbiBzdGF0ZQogICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJt L2k5MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggN2NjYmQ2YTJi YmUwLi44MmIzYjg3M2EwZjMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0u aAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTI2MCw2ICsyNjAsOCBAQCB0 eXBlZGVmIHN0cnVjdCBfZHJtX2k5MTVfc2FyZWEgewogI2RlZmluZSBEUk1fSTkxNV9HRU1fQ09O VEVYVF9HRVRQQVJBTQkweDM0CiAjZGVmaW5lIERSTV9JOTE1X0dFTV9DT05URVhUX1NFVFBBUkFN CTB4MzUKICNkZWZpbmUgRFJNX0k5MTVfUEVSRl9PUEVOCQkweDM2CisjZGVmaW5lIERSTV9JOTE1 X1BFUkZfQUREX0NPTkZJRwkweDM3CisjZGVmaW5lIERSTV9JOTE1X1BFUkZfUkVNT1ZFX0NPTkZJ RwkweDM4CiAKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfSU5JVAkJRFJNX0lPVyggRFJNX0NPTU1B TkRfQkFTRSArIERSTV9JOTE1X0lOSVQsIGRybV9pOTE1X2luaXRfdCkKICNkZWZpbmUgRFJNX0lP Q1RMX0k5MTVfRkxVU0gJCURSTV9JTyAoIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9GTFVT SCkKQEAgLTMxNSw2ICszMTcsOCBAQCB0eXBlZGVmIHN0cnVjdCBfZHJtX2k5MTVfc2FyZWEgewog I2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fQ09OVEVYVF9HRVRQQVJBTQlEUk1fSU9XUiAoRFJN X0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9DT05URVhUX0dFVFBBUkFNLCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0pCiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9DT05U RVhUX1NFVFBBUkFNCURSTV9JT1dSIChEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0NP TlRFWFRfU0VUUEFSQU0sIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSkKICNkZWZp bmUgRFJNX0lPQ1RMX0k5MTVfUEVSRl9PUEVOCURSTV9JT1coRFJNX0NPTU1BTkRfQkFTRSArIERS TV9JOTE1X1BFUkZfT1BFTiwgc3RydWN0IGRybV9pOTE1X3BlcmZfb3Blbl9wYXJhbSkKKyNkZWZp bmUgRFJNX0lPQ1RMX0k5MTVfUEVSRl9BRERfQ09ORklHCURSTV9JT1dSKERSTV9DT01NQU5EX0JB U0UgKyBEUk1fSTkxNV9QRVJGX0FERF9DT05GSUcsIHN0cnVjdCBkcm1faTkxNV9wZXJmX29hX2Nv bmZpZykKKyNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfUEVSRl9SRU1PVkVfQ09ORklHCURSTV9JT1dS KERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9QRVJGX1JFTU9WRV9DT05GSUcsIF9fdTY0KQog CiAvKiBBbGxvdyBkcml2ZXJzIHRvIHN1Ym1pdCBiYXRjaGJ1ZmZlcnMgZGlyZWN0bHkgdG8gaGFy ZHdhcmUsIHJlbHlpbmcKICAqIG9uIHRoZSBzZWN1cml0eSBtZWNoYW5pc21zIHByb3ZpZGVkIGJ5 IGhhcmR3YXJlLgpAQCAtMTQ2Nyw2ICsxNDcxLDI2IEBAIGVudW0gZHJtX2k5MTVfcGVyZl9yZWNv cmRfdHlwZSB7CiAJRFJNX0k5MTVfUEVSRl9SRUNPUkRfTUFYIC8qIG5vbi1BQkkgKi8KIH07CiAK Ky8qKgorICogU3RydWN0dXJlIHRvIHVwbG9hZCBwZXJmIGR5bmFtaWMgY29uZmlndXJhdGlvbiBp bnRvIHRoZSBrZXJuZWwuCisgKi8KK3N0cnVjdCBkcm1faTkxNV9wZXJmX29hX2NvbmZpZyB7CisJ LyoqIFN0cmluZyBmb3JtYXR0ZWQgbGlrZSAiJTA4eC0lMDR4LSUwNHgtJTA0eC0lMDEyeCIgKi8K KwlfX3U2NCBfX3VzZXIgdXVpZDsKKworCV9fdTMyIG5fbXV4X3JlZ3M7CisJX191MzIgcGFkMDsK KwlfX3U2NCBfX3VzZXIgbXV4X3JlZ3M7CisKKwlfX3UzMiBuX2Jvb2xlYW5fcmVnczsKKwlfX3Uz MiBwYWQxOworCV9fdTY0IF9fdXNlciBib29sZWFuX3JlZ3M7CisKKwlfX3UzMiBuX2ZsZXhfcmVn czsKKwlfX3UzMiBwYWQyOworCV9fdTY0IF9fdXNlciBmbGV4X3JlZ3M7Cit9OworCiAjaWYgZGVm aW5lZChfX2NwbHVzcGx1cykKIH0KICNlbmRpZgotLSAKMi4xMy4yCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK