From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 19/32] drm/i915: Split engine setup/init into two phases Date: Wed, 17 Apr 2019 08:56:44 +0100 Message-ID: <20190417075657.19456-19-chris@chris-wilson.co.uk> References: <20190417075657.19456-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8E2F06E02C for ; Wed, 17 Apr 2019 07:58:50 +0000 (UTC) In-Reply-To: <20190417075657.19456-1-chris@chris-wilson.co.uk> 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 List-Id: intel-gfx@lists.freedesktop.org SW4gdGhlIG5leHQgcGF0Y2gsIHdlIHJlcXVpcmUgdGhlIGVuZ2luZSB2ZnVuY3Mgc2V0dXAgcHJp b3IgdG8KaW5pdGlhbGlzaW5nIHRoZSBwaW5uZWQga2VybmVsIGNvbnRleHRzLCBzbyBzcGxpdCB0 aGUgdmZ1bmMgc2V0dXAgZnJvbQp0aGUgZW5naW5lIGluaXRpYWxpc2F0aW9uIGFuZCBjYWxsIGl0 IGVhcmxpZXIuCgp2Mjogcy9zZXR1cF94Y3Mvc2V0dXBfY29tbW9uLyBmb3IgaW50ZWxfcmluZ19z dWJtaXNzaW9uX3NldHVwKCkKClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPgpSZXZpZXdlZC1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1 bGluQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUu aCAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9j cy5jICAgICB8ICA5OSArKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJj LmMgICAgICAgICAgIHwgIDc0ICsrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf bHJjLmggICAgICAgICAgIHwgICA1ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9y aW5nYnVmZmVyLmMgICAgfCAyMzIgKysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kcy5jICAgfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L21vY2tfZW5naW5lLmMgICAgICAgICB8ICA0OCArKy0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9tb2NrX2VuZ2luZS5oICAgICAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyAgICAgICAgICAgICAgIHwgICA2ICsKIC4uLi9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jICB8ICAxMiArLQogMTAgZmlsZXMgY2hhbmdlZCwgMjQ1 IGluc2VydGlvbnMoKyksIDI0NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX2VuZ2luZS5oCmluZGV4IGEyMjhkYzE3NzRkOC4uM2U1M2Y1M2JjNTJiIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaApAQCAtMzYyLDE0ICszNjIsMTIgQEAgX19pbnRl bF9yaW5nX3NwYWNlKHVuc2lnbmVkIGludCBoZWFkLCB1bnNpZ25lZCBpbnQgdGFpbCwgdW5zaWdu ZWQgaW50IHNpemUpCiAJcmV0dXJuIChoZWFkIC0gdGFpbCAtIENBQ0hFTElORV9CWVRFUykgJiAo c2l6ZSAtIDEpOwogfQogCi1pbnQgaW50ZWxfZW5naW5lX3NldHVwX2NvbW1vbihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpOworaW50IGludGVsX2VuZ2luZXNfc2V0dXAoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogaW50IGludGVsX2VuZ2luZV9pbml0X2NvbW1vbihzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogdm9pZCBpbnRlbF9lbmdpbmVfY2xlYW51cF9j b21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIAotaW50IGludGVsX2luaXRf cmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Ci1pbnQg aW50ZWxfaW5pdF9ic2RfcmluZ19idWZmZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KTsKLWludCBpbnRlbF9pbml0X2JsdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpOwotaW50IGludGVsX2luaXRfdmVib3hfcmluZ19idWZmZXIoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKTsKK2ludCBpbnRlbF9yaW5nX3N1Ym1pc3Npb25fc2V0dXAoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKK2ludCBpbnRlbF9yaW5nX3N1Ym1pc3Npb25f aW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogCiBpbnQgaW50ZWxfZW5naW5l X3N0b3BfY3Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIHZvaWQgaW50ZWxfZW5n aW5lX2NhbmNlbF9zdG9wX2NzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IDFkYmVjN2E5YTU1NC4u NmNiOTAxMzdiMmZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9l bmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3Mu YwpAQCAtNTAsMzUgKzUwLDI0IEBACiAKIHN0cnVjdCBlbmdpbmVfY2xhc3NfaW5mbyB7CiAJY29u c3QgY2hhciAqbmFtZTsKLQlpbnQgKCppbml0X2xlZ2FjeSkoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKTsKLQlpbnQgKCppbml0X2V4ZWNsaXN0cykoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKTsKLQogCXU4IHVhYmlfY2xhc3M7CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0 IGVuZ2luZV9jbGFzc19pbmZvIGludGVsX2VuZ2luZV9jbGFzc2VzW10gPSB7CiAJW1JFTkRFUl9D TEFTU10gPSB7CiAJCS5uYW1lID0gInJjcyIsCi0JCS5pbml0X2V4ZWNsaXN0cyA9IGxvZ2ljYWxf cmVuZGVyX3JpbmdfaW5pdCwKLQkJLmluaXRfbGVnYWN5ID0gaW50ZWxfaW5pdF9yZW5kZXJfcmlu Z19idWZmZXIsCiAJCS51YWJpX2NsYXNzID0gSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSLAogCX0s CiAJW0NPUFlfRU5HSU5FX0NMQVNTXSA9IHsKIAkJLm5hbWUgPSAiYmNzIiwKLQkJLmluaXRfZXhl Y2xpc3RzID0gbG9naWNhbF94Y3NfcmluZ19pbml0LAotCQkuaW5pdF9sZWdhY3kgPSBpbnRlbF9p bml0X2JsdF9yaW5nX2J1ZmZlciwKIAkJLnVhYmlfY2xhc3MgPSBJOTE1X0VOR0lORV9DTEFTU19D T1BZLAogCX0sCiAJW1ZJREVPX0RFQ09ERV9DTEFTU10gPSB7CiAJCS5uYW1lID0gInZjcyIsCi0J CS5pbml0X2V4ZWNsaXN0cyA9IGxvZ2ljYWxfeGNzX3JpbmdfaW5pdCwKLQkJLmluaXRfbGVnYWN5 ID0gaW50ZWxfaW5pdF9ic2RfcmluZ19idWZmZXIsCiAJCS51YWJpX2NsYXNzID0gSTkxNV9FTkdJ TkVfQ0xBU1NfVklERU8sCiAJfSwKIAlbVklERU9fRU5IQU5DRU1FTlRfQ0xBU1NdID0gewogCQku bmFtZSA9ICJ2ZWNzIiwKLQkJLmluaXRfZXhlY2xpc3RzID0gbG9naWNhbF94Y3NfcmluZ19pbml0 LAotCQkuaW5pdF9sZWdhY3kgPSBpbnRlbF9pbml0X3ZlYm94X3JpbmdfYnVmZmVyLAogCQkudWFi aV9jbGFzcyA9IEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPX0VOSEFOQ0UsCiAJfSwKIH07CkBAIC00 MDAsNDggKzM4OSwzOSBAQCBpbnQgaW50ZWxfZW5naW5lc19pbml0X21taW8oc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAvKioKICAqIGludGVsX2VuZ2luZXNfaW5pdCgpIC0g aW5pdCB0aGUgRW5naW5lIENvbW1hbmQgU3RyZWFtZXJzCi0gKiBAZGV2X3ByaXY6IGk5MTUgZGV2 aWNlIHByaXZhdGUKKyAqIEBpOTE1OiBpOTE1IGRldmljZSBwcml2YXRlCiAgKgogICogUmV0dXJu OiBub24temVybyBpZiB0aGUgaW5pdGlhbGl6YXRpb24gZmFpbGVkLgogICovCi1pbnQgaW50ZWxf ZW5naW5lc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK2ludCBpbnRl bF9lbmdpbmVzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CisJaW50ICgq aW5pdCkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIAlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmU7CiAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQsIGVycl9pZDsKIAlpbnQg ZXJyOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7Ci0JCWNvbnN0 IHN0cnVjdCBlbmdpbmVfY2xhc3NfaW5mbyAqY2xhc3NfaW5mbyA9Ci0JCQkmaW50ZWxfZW5naW5l X2NsYXNzZXNbZW5naW5lLT5jbGFzc107Ci0JCWludCAoKmluaXQpKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSk7Ci0KLQkJaWYgKEhBU19FWEVDTElTVFMoZGV2X3ByaXYpKQotCQkJaW5p dCA9IGNsYXNzX2luZm8tPmluaXRfZXhlY2xpc3RzOwotCQllbHNlCi0JCQlpbml0ID0gY2xhc3Nf aW5mby0+aW5pdF9sZWdhY3k7CisJaWYgKEhBU19FWEVDTElTVFMoaTkxNSkpCisJCWluaXQgPSBp bnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbl9pbml0OworCWVsc2UKKwkJaW5pdCA9IGludGVsX3Jp bmdfc3VibWlzc2lvbl9pbml0OwogCi0JCWVyciA9IC1FSU5WQUw7CisJZm9yX2VhY2hfZW5naW5l KGVuZ2luZSwgaTkxNSwgaWQpIHsKIAkJZXJyX2lkID0gaWQ7CiAKLQkJaWYgKEdFTV9ERUJVR19X QVJOX09OKCFpbml0KSkKLQkJCWdvdG8gY2xlYW51cDsKLQogCQllcnIgPSBpbml0KGVuZ2luZSk7 CiAJCWlmIChlcnIpCiAJCQlnb3RvIGNsZWFudXA7Ci0KLQkJR0VNX0JVR19PTighZW5naW5lLT5z dWJtaXRfcmVxdWVzdCk7CiAJfQogCiAJcmV0dXJuIDA7CiAKIGNsZWFudXA6Ci0JZm9yX2VhY2hf ZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwg aTkxNSwgaWQpIHsKIAkJaWYgKGlkID49IGVycl9pZCkgewogCQkJa2ZyZWUoZW5naW5lKTsKLQkJ CWRldl9wcml2LT5lbmdpbmVbaWRdID0gTlVMTDsKKwkJCWk5MTUtPmVuZ2luZVtpZF0gPSBOVUxM OwogCQl9IGVsc2UgewotCQkJZGV2X3ByaXYtPmd0LmNsZWFudXBfZW5naW5lKGVuZ2luZSk7CisJ CQlpOTE1LT5ndC5jbGVhbnVwX2VuZ2luZShlbmdpbmUpOwogCQl9CiAJfQogCXJldHVybiBlcnI7 CkBAIC01NTksMTYgKzUzOSw3IEBAIHN0YXRpYyBpbnQgaW5pdF9zdGF0dXNfcGFnZShzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJcmV0dXJuIHJldDsKIH0KIAotLyoqCi0gKiBpbnRl bF9lbmdpbmVzX3NldHVwX2NvbW1vbiAtIHNldHVwIGVuZ2luZSBzdGF0ZSBub3QgcmVxdWlyaW5n IGh3IGFjY2VzcwotICogQGVuZ2luZTogRW5naW5lIHRvIHNldHVwLgotICoKLSAqIEluaXRpYWxp emVzIEBlbmdpbmVAIHN0cnVjdHVyZSBtZW1iZXJzIHNoYXJlZCBiZXR3ZWVuIGxlZ2FjeSBhbmQg ZXhlY2xpc3RzCi0gKiBzdWJtaXNzaW9uIG1vZGVzIHdoaWNoIGRvIG5vdCByZXF1aXJlIGhhcmR3 YXJlIGFjY2Vzcy4KLSAqCi0gKiBUeXBpY2FsbHkgZG9uZSBlYXJseSBpbiB0aGUgc3VibWlzc2lv biBtb2RlIHNwZWNpZmljIGVuZ2luZSBzZXR1cCBzdGFnZS4KLSAqLwotaW50IGludGVsX2VuZ2lu ZV9zZXR1cF9jb21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorc3RhdGljIGlu dCBpbnRlbF9lbmdpbmVfc2V0dXBfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKIHsKIAlpbnQgZXJyOwogCkBAIC02MDIsNiArNTczLDUyIEBAIGludCBpbnRlbF9lbmdpbmVf c2V0dXBfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlyZXR1cm4gZXJy OwogfQogCisvKioKKyAqIGludGVsX2VuZ2luZXNfc2V0dXAtIHNldHVwIGVuZ2luZSBzdGF0ZSBu b3QgcmVxdWlyaW5nIGh3IGFjY2VzcworICogQGk5MTU6IERldmljZSB0byBzZXR1cC4KKyAqCisg KiBJbml0aWFsaXplcyBlbmdpbmUgc3RydWN0dXJlIG1lbWJlcnMgc2hhcmVkIGJldHdlZW4gbGVn YWN5IGFuZCBleGVjbGlzdHMKKyAqIHN1Ym1pc3Npb24gbW9kZXMgd2hpY2ggZG8gbm90IHJlcXVp cmUgaGFyZHdhcmUgYWNjZXNzLgorICoKKyAqIFR5cGljYWxseSBkb25lIGVhcmx5IGluIHRoZSBz dWJtaXNzaW9uIG1vZGUgc3BlY2lmaWMgZW5naW5lIHNldHVwIHN0YWdlLgorICovCitpbnQgaW50 ZWxfZW5naW5lc19zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlpbnQg KCpzZXR1cCkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKKwlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmU7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisJaW50IGVycjsK KworCWlmIChIQVNfRVhFQ0xJU1RTKGk5MTUpKQorCQlzZXR1cCA9IGludGVsX2V4ZWNsaXN0c19z dWJtaXNzaW9uX3NldHVwOworCWVsc2UKKwkJc2V0dXAgPSBpbnRlbF9yaW5nX3N1Ym1pc3Npb25f c2V0dXA7CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgeworCQllcnIgPSBp bnRlbF9lbmdpbmVfc2V0dXBfY29tbW9uKGVuZ2luZSk7CisJCWlmIChlcnIpCisJCQlnb3RvIGNs ZWFudXA7CisKKwkJZXJyID0gc2V0dXAoZW5naW5lKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gY2xl YW51cDsKKworCQlHRU1fQlVHX09OKCFlbmdpbmUtPmNvcHMpOworCX0KKworCXJldHVybiAwOwor CitjbGVhbnVwOgorCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJCWlmIChl bmdpbmUtPmNvcHMpCisJCQlpOTE1LT5ndC5jbGVhbnVwX2VuZ2luZShlbmdpbmUpOworCQllbHNl CisJCQlrZnJlZShlbmdpbmUpOworCQlpOTE1LT5lbmdpbmVbaWRdID0gTlVMTDsKKwl9CisJcmV0 dXJuIGVycjsKK30KKwogdm9pZCBpbnRlbF9lbmdpbmVzX3NldF9zY2hlZHVsZXJfY2FwcyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IHsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKaW5kZXggZDE3YzA4ZTI2OTM1Li4wMWY1OGExNTJh OWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCkBAIC0xNjk3LDggKzE2OTcsOCBA QCBzdGF0aWMgaW50IGludGVsX2luaXRfd29ya2Fyb3VuZF9iYihzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCiAJdW5zaWduZWQgaW50IGk7CiAJaW50IHJldDsKIAotCWlmIChHRU1fREVC VUdfV0FSTl9PTihlbmdpbmUtPmlkICE9IFJDUzApKQotCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAo ZW5naW5lLT5jbGFzcyAhPSBSRU5ERVJfQ0xBU1MpCisJCXJldHVybiAwOwogCiAJc3dpdGNoIChJ TlRFTF9HRU4oZW5naW5lLT5pOTE1KSkgewogCWNhc2UgMTE6CkBAIC0yNDQ0LDE1ICsyNDQ0LDgg QEAgbG9naWNhbF9yaW5nX2RlZmF1bHRfaXJxcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCiAJZW5naW5lLT5pcnFfa2VlcF9tYXNrID0gR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBU IDw8IHNoaWZ0OwogfQogCi1zdGF0aWMgaW50Ci1sb2dpY2FsX3Jpbmdfc2V0dXAoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQoraW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uX3Nl dHVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKLQlpbnQgZXJyOwotCi0JZXJy ID0gaW50ZWxfZW5naW5lX3NldHVwX2NvbW1vbihlbmdpbmUpOwotCWlmIChlcnIpCi0JCXJldHVy biBlcnI7Ci0KIAkvKiBJbnRlbnRpb25hbGx5IGxlZnQgYmxhbmsuICovCiAJZW5naW5lLT5idWZm ZXIgPSBOVUxMOwogCkBAIC0yNDYyLDEwICsyNDU1LDE2IEBAIGxvZ2ljYWxfcmluZ19zZXR1cChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1 bmNzKGVuZ2luZSk7CiAJbG9naWNhbF9yaW5nX2RlZmF1bHRfaXJxcyhlbmdpbmUpOwogCisJaWYg KGVuZ2luZS0+Y2xhc3MgPT0gUkVOREVSX0NMQVNTKSB7CisJCWVuZ2luZS0+aW5pdF9jb250ZXh0 ID0gZ2VuOF9pbml0X3Jjc19jb250ZXh0OworCQllbmdpbmUtPmVtaXRfZmx1c2ggPSBnZW44X2Vt aXRfZmx1c2hfcmVuZGVyOworCQllbmdpbmUtPmVtaXRfZmluaV9icmVhZGNydW1iID0gZ2VuOF9l bWl0X2ZpbmlfYnJlYWRjcnVtYl9yY3M7CisJfQorCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQgbG9naWNhbF9yaW5nX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoraW50 IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZW5naW5lLT5pOTE1 OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVu Z2luZS0+ZXhlY2xpc3RzOwpAQCAtMjQ3Nyw2ICsyNDc2LDE1IEBAIHN0YXRpYyBpbnQgbG9naWNh bF9yaW5nX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlyZXR1cm4gcmV0 OwogCiAJaW50ZWxfZW5naW5lX2luaXRfd29ya2Fyb3VuZHMoZW5naW5lKTsKKwlpbnRlbF9lbmdp bmVfaW5pdF93aGl0ZWxpc3QoZW5naW5lKTsKKworCWlmIChpbnRlbF9pbml0X3dvcmthcm91bmRf YmIoZW5naW5lKSkKKwkJLyoKKwkJICogV2UgY29udGludWUgZXZlbiBpZiB3ZSBmYWlsIHRvIGlu aXRpYWxpemUgV0EgYmF0Y2gKKwkJICogYmVjYXVzZSB3ZSBvbmx5IGV4cGVjdCByYXJlIGdsaXRj aGVzIGJ1dCBub3RoaW5nCisJCSAqIGNyaXRpY2FsIHRvIHByZXZlbnQgdXMgZnJvbSB1c2luZyBH UFUKKwkJICovCisJCURSTV9FUlJPUigiV0EgYmF0Y2ggYnVmZmVyIGluaXRpYWxpemF0aW9uIGZh aWxlZFxuIik7CiAKIAlpZiAoSEFTX0xPR0lDQUxfUklOR19FTFNRKGk5MTUpKSB7CiAJCWV4ZWNs aXN0cy0+c3VibWl0X3JlZyA9IGk5MTUtPnVuY29yZS5yZWdzICsKQEAgLTI1MDksNTAgKzI1MTcs NiBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIAlyZXR1cm4gMDsKIH0KIAotaW50IGxvZ2ljYWxfcmVuZGVyX3JpbmdfaW5pdChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0JaW50IHJldDsKLQotCXJldCA9IGxv Z2ljYWxfcmluZ19zZXR1cChlbmdpbmUpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQkv KiBPdmVycmlkZSBzb21lIGZvciByZW5kZXIgcmluZy4gKi8KLQllbmdpbmUtPmluaXRfY29udGV4 dCA9IGdlbjhfaW5pdF9yY3NfY29udGV4dDsKLQllbmdpbmUtPmVtaXRfZmx1c2ggPSBnZW44X2Vt aXRfZmx1c2hfcmVuZGVyOwotCWVuZ2luZS0+ZW1pdF9maW5pX2JyZWFkY3J1bWIgPSBnZW44X2Vt aXRfZmluaV9icmVhZGNydW1iX3JjczsKLQotCXJldCA9IGxvZ2ljYWxfcmluZ19pbml0KGVuZ2lu ZSk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCXJldCA9IGludGVsX2luaXRfd29ya2Fy b3VuZF9iYihlbmdpbmUpOwotCWlmIChyZXQpIHsKLQkJLyoKLQkJICogV2UgY29udGludWUgZXZl biBpZiB3ZSBmYWlsIHRvIGluaXRpYWxpemUgV0EgYmF0Y2gKLQkJICogYmVjYXVzZSB3ZSBvbmx5 IGV4cGVjdCByYXJlIGdsaXRjaGVzIGJ1dCBub3RoaW5nCi0JCSAqIGNyaXRpY2FsIHRvIHByZXZl bnQgdXMgZnJvbSB1c2luZyBHUFUKLQkJICovCi0JCURSTV9FUlJPUigiV0EgYmF0Y2ggYnVmZmVy IGluaXRpYWxpemF0aW9uIGZhaWxlZDogJWRcbiIsCi0JCQkgIHJldCk7Ci0JfQotCi0JaW50ZWxf ZW5naW5lX2luaXRfd2hpdGVsaXN0KGVuZ2luZSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotaW50IGxv Z2ljYWxfeGNzX3JpbmdfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0J aW50IGVycjsKLQotCWVyciA9IGxvZ2ljYWxfcmluZ19zZXR1cChlbmdpbmUpOwotCWlmIChlcnIp Ci0JCXJldHVybiBlcnI7Ci0KLQlyZXR1cm4gbG9naWNhbF9yaW5nX2luaXQoZW5naW5lKTsKLX0K LQogc3RhdGljIHUzMiBpbnRlbF9scl9pbmRpcmVjdF9jdHhfb2Zmc2V0KHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKIHsKIAl1MzIgaW5kaXJlY3RfY3R4X29mZnNldDsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfbHJjLmgKaW5kZXggMWEzM2VjNzRhZjhjLi5hMGRjOTA3YTcyNDkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5oCkBAIC02Niw4ICs2Niw5IEBAIGVudW0gewog CiAvKiBMb2dpY2FsIFJpbmdzICovCiB2b2lkIGludGVsX2xvZ2ljYWxfcmluZ19jbGVhbnVwKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Ci1pbnQgbG9naWNhbF9yZW5kZXJfcmluZ19p bml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Ci1pbnQgbG9naWNhbF94Y3Nfcmlu Z19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CisKK2ludCBpbnRlbF9leGVj bGlzdHNfc3VibWlzc2lvbl9zZXR1cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwor aW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKTsKIAogLyogTG9naWNhbCBSaW5nIENvbnRleHRzICovCiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCBmMTY0ZGJlOTAwNTAuLjA5NTc5 YmNlYTQ3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ2J1 ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYwpA QCAtMTUyMyw1NCArMTUyMyw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfY29udGV4dF9v cHMgcmluZ19jb250ZXh0X29wcyA9IHsKIAkuZGVzdHJveSA9IHJpbmdfY29udGV4dF9kZXN0cm95 LAogfTsKIAotc3RhdGljIGludCBpbnRlbF9pbml0X3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKLXsKLQlzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmU7Ci0J c3RydWN0IGludGVsX3JpbmcgKnJpbmc7Ci0JaW50IGVycjsKLQotCWVyciA9IGludGVsX2VuZ2lu ZV9zZXR1cF9jb21tb24oZW5naW5lKTsKLQlpZiAoZXJyKQotCQlyZXR1cm4gZXJyOwotCi0JdGlt ZWxpbmUgPSBpOTE1X3RpbWVsaW5lX2NyZWF0ZShlbmdpbmUtPmk5MTUsIGVuZ2luZS0+c3RhdHVz X3BhZ2Uudm1hKTsKLQlpZiAoSVNfRVJSKHRpbWVsaW5lKSkgewotCQllcnIgPSBQVFJfRVJSKHRp bWVsaW5lKTsKLQkJZ290byBlcnI7Ci0JfQotCUdFTV9CVUdfT04odGltZWxpbmUtPmhhc19pbml0 aWFsX2JyZWFkY3J1bWIpOwotCi0JcmluZyA9IGludGVsX2VuZ2luZV9jcmVhdGVfcmluZyhlbmdp bmUsIHRpbWVsaW5lLCAzMiAqIFBBR0VfU0laRSk7Ci0JaTkxNV90aW1lbGluZV9wdXQodGltZWxp bmUpOwotCWlmIChJU19FUlIocmluZykpIHsKLQkJZXJyID0gUFRSX0VSUihyaW5nKTsKLQkJZ290 byBlcnI7Ci0JfQotCi0JZXJyID0gaW50ZWxfcmluZ19waW4ocmluZyk7Ci0JaWYgKGVycikKLQkJ Z290byBlcnJfcmluZzsKLQotCUdFTV9CVUdfT04oZW5naW5lLT5idWZmZXIpOwotCWVuZ2luZS0+ YnVmZmVyID0gcmluZzsKLQotCWVyciA9IGludGVsX2VuZ2luZV9pbml0X2NvbW1vbihlbmdpbmUp OwotCWlmIChlcnIpCi0JCWdvdG8gZXJyX3VucGluOwotCi0JR0VNX0JVR19PTihyaW5nLT50aW1l bGluZS0+aHdzcF9nZ3R0ICE9IGVuZ2luZS0+c3RhdHVzX3BhZ2Uudm1hKTsKLQotCXJldHVybiAw OwotCi1lcnJfdW5waW46Ci0JaW50ZWxfcmluZ191bnBpbihyaW5nKTsKLWVycl9yaW5nOgotCWlu dGVsX3JpbmdfcHV0KHJpbmcpOwotZXJyOgotCWludGVsX2VuZ2luZV9jbGVhbnVwX2NvbW1vbihl bmdpbmUpOwotCXJldHVybiBlcnI7Ci19Ci0KIHZvaWQgaW50ZWxfZW5naW5lX2NsZWFudXAoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKQEAgLTIxNjYsMjQgKzIxMTgsNiBAQCBzdGF0aWMg aW50IGdlbjZfcmluZ19mbHVzaChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyIG1vZGUpCiAJ cmV0dXJuIGdlbjZfZmx1c2hfZHcocnEsIG1vZGUsIE1JX0lOVkFMSURBVEVfVExCKTsKIH0KIAot c3RhdGljIHZvaWQgaW50ZWxfcmluZ19pbml0X2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCi0JCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQotewotCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDYpIHsKLQkJZW5naW5lLT5pcnFfZW5hYmxlID0gZ2VuNl9p cnFfZW5hYmxlOwotCQllbmdpbmUtPmlycV9kaXNhYmxlID0gZ2VuNl9pcnFfZGlzYWJsZTsKLQl9 IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNSkgewotCQllbmdpbmUtPmlycV9lbmFi bGUgPSBnZW41X2lycV9lbmFibGU7Ci0JCWVuZ2luZS0+aXJxX2Rpc2FibGUgPSBnZW41X2lycV9k aXNhYmxlOwotCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAzKSB7Ci0JCWVuZ2lu ZS0+aXJxX2VuYWJsZSA9IGk5eHhfaXJxX2VuYWJsZTsKLQkJZW5naW5lLT5pcnFfZGlzYWJsZSA9 IGk5eHhfaXJxX2Rpc2FibGU7Ci0JfSBlbHNlIHsKLQkJZW5naW5lLT5pcnFfZW5hYmxlID0gaTh4 eF9pcnFfZW5hYmxlOwotCQllbmdpbmUtPmlycV9kaXNhYmxlID0gaTh4eF9pcnFfZGlzYWJsZTsK LQl9Ci19Ci0KIHN0YXRpYyB2b2lkIGk5eHhfc2V0X2RlZmF1bHRfc3VibWlzc2lvbihzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJZW5naW5lLT5zdWJtaXRfcmVxdWVzdCA9IGk5 eHhfc3VibWl0X3JlcXVlc3Q7CkBAIC0yMTk5LDEzICsyMTMzLDMzIEBAIHN0YXRpYyB2b2lkIGdl bjZfYnNkX3NldF9kZWZhdWx0X3N1Ym1pc3Npb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQogCWVuZ2luZS0+c3VibWl0X3JlcXVlc3QgPSBnZW42X2JzZF9zdWJtaXRfcmVxdWVzdDsK IH0KIAotc3RhdGljIHZvaWQgaW50ZWxfcmluZ19kZWZhdWx0X3ZmdW5jcyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQorc3RhdGljIHZvaWQgc2V0dXBfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVuZ2luZS0+aTkxNTsK KworCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gNikgeworCQllbmdpbmUtPmlycV9lbmFibGUgPSBn ZW42X2lycV9lbmFibGU7CisJCWVuZ2luZS0+aXJxX2Rpc2FibGUgPSBnZW42X2lycV9kaXNhYmxl OworCX0gZWxzZSBpZiAoSU5URUxfR0VOKGk5MTUpID49IDUpIHsKKwkJZW5naW5lLT5pcnFfZW5h YmxlID0gZ2VuNV9pcnFfZW5hYmxlOworCQllbmdpbmUtPmlycV9kaXNhYmxlID0gZ2VuNV9pcnFf ZGlzYWJsZTsKKwl9IGVsc2UgaWYgKElOVEVMX0dFTihpOTE1KSA+PSAzKSB7CisJCWVuZ2luZS0+ aXJxX2VuYWJsZSA9IGk5eHhfaXJxX2VuYWJsZTsKKwkJZW5naW5lLT5pcnFfZGlzYWJsZSA9IGk5 eHhfaXJxX2Rpc2FibGU7CisJfSBlbHNlIHsKKwkJZW5naW5lLT5pcnFfZW5hYmxlID0gaTh4eF9p cnFfZW5hYmxlOworCQllbmdpbmUtPmlycV9kaXNhYmxlID0gaTh4eF9pcnFfZGlzYWJsZTsKKwl9 Cit9CisKK3N0YXRpYyB2b2lkIHNldHVwX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUtPmk5MTU7 CisKIAkvKiBnZW44KyBhcmUgb25seSBzdXBwb3J0ZWQgd2l0aCBleGVjbGlzdHMgKi8KLQlHRU1f QlVHX09OKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCk7CisJR0VNX0JVR19PTihJTlRFTF9HRU4o aTkxNSkgPj0gOCk7CiAKLQlpbnRlbF9yaW5nX2luaXRfaXJxKGRldl9wcml2LCBlbmdpbmUpOwor CXNldHVwX2lycShlbmdpbmUpOwogCiAJZW5naW5lLT5yZXN1bWUgPSB4Y3NfcmVzdW1lOwogCWVu Z2luZS0+cmVzZXQucHJlcGFyZSA9IHJlc2V0X3ByZXBhcmU7CkBAIC0yMjIxLDExNyArMjE3NSw5 NiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAkgKiBlbmdpbmUtPmVtaXRfaW5pdF9icmVhZGNydW1iKCku CiAJICovCiAJZW5naW5lLT5lbWl0X2ZpbmlfYnJlYWRjcnVtYiA9IGk5eHhfZW1pdF9icmVhZGNy dW1iOwotCWlmIChJU19HRU4oZGV2X3ByaXYsIDUpKQorCWlmIChJU19HRU4oaTkxNSwgNSkpCiAJ CWVuZ2luZS0+ZW1pdF9maW5pX2JyZWFkY3J1bWIgPSBnZW41X2VtaXRfYnJlYWRjcnVtYjsKIAog CWVuZ2luZS0+c2V0X2RlZmF1bHRfc3VibWlzc2lvbiA9IGk5eHhfc2V0X2RlZmF1bHRfc3VibWlz c2lvbjsKIAotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDYpCisJaWYgKElOVEVMX0dFTihp OTE1KSA+PSA2KQogCQllbmdpbmUtPmVtaXRfYmJfc3RhcnQgPSBnZW42X2VtaXRfYmJfc3RhcnQ7 Ci0JZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA0KQorCWVsc2UgaWYgKElOVEVMX0dF TihpOTE1KSA+PSA0KQogCQllbmdpbmUtPmVtaXRfYmJfc3RhcnQgPSBpOTY1X2VtaXRfYmJfc3Rh cnQ7Ci0JZWxzZSBpZiAoSVNfSTgzMChkZXZfcHJpdikgfHwgSVNfSTg0NUcoZGV2X3ByaXYpKQor CWVsc2UgaWYgKElTX0k4MzAoaTkxNSkgfHwgSVNfSTg0NUcoaTkxNSkpCiAJCWVuZ2luZS0+ZW1p dF9iYl9zdGFydCA9IGk4MzBfZW1pdF9iYl9zdGFydDsKIAllbHNlCiAJCWVuZ2luZS0+ZW1pdF9i Yl9zdGFydCA9IGk5MTVfZW1pdF9iYl9zdGFydDsKIH0KIAotaW50IGludGVsX2luaXRfcmVuZGVy X3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lk IHNldHVwX3JjcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OwotCWludCByZXQ7Ci0KLQlp bnRlbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKGRldl9wcml2LCBlbmdpbmUpOworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1ID0gZW5naW5lLT5pOTE1OwogCi0JaWYgKEhBU19MM19EUEYoZGV2 X3ByaXYpKQorCWlmIChIQVNfTDNfRFBGKGk5MTUpKQogCQllbmdpbmUtPmlycV9rZWVwX21hc2sg PSBHVF9SRU5ERVJfTDNfUEFSSVRZX0VSUk9SX0lOVEVSUlVQVDsKIAogCWVuZ2luZS0+aXJxX2Vu YWJsZV9tYXNrID0gR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUOwogCi0JaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gNykgeworCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gNykgewogCQllbmdpbmUt PmluaXRfY29udGV4dCA9IGludGVsX3Jjc19jdHhfaW5pdDsKIAkJZW5naW5lLT5lbWl0X2ZsdXNo ID0gZ2VuN19yZW5kZXJfcmluZ19mbHVzaDsKIAkJZW5naW5lLT5lbWl0X2ZpbmlfYnJlYWRjcnVt YiA9IGdlbjdfcmNzX2VtaXRfYnJlYWRjcnVtYjsKLQl9IGVsc2UgaWYgKElTX0dFTihkZXZfcHJp diwgNikpIHsKKwl9IGVsc2UgaWYgKElTX0dFTihpOTE1LCA2KSkgewogCQllbmdpbmUtPmluaXRf Y29udGV4dCA9IGludGVsX3Jjc19jdHhfaW5pdDsKIAkJZW5naW5lLT5lbWl0X2ZsdXNoID0gZ2Vu Nl9yZW5kZXJfcmluZ19mbHVzaDsKIAkJZW5naW5lLT5lbWl0X2ZpbmlfYnJlYWRjcnVtYiA9IGdl bjZfcmNzX2VtaXRfYnJlYWRjcnVtYjsKLQl9IGVsc2UgaWYgKElTX0dFTihkZXZfcHJpdiwgNSkp IHsKKwl9IGVsc2UgaWYgKElTX0dFTihpOTE1LCA1KSkgewogCQllbmdpbmUtPmVtaXRfZmx1c2gg PSBnZW40X3JlbmRlcl9yaW5nX2ZsdXNoOwogCX0gZWxzZSB7Ci0JCWlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpIDwgNCkKKwkJaWYgKElOVEVMX0dFTihpOTE1KSA8IDQpCiAJCQllbmdpbmUtPmVtaXRf Zmx1c2ggPSBnZW4yX3JlbmRlcl9yaW5nX2ZsdXNoOwogCQllbHNlCiAJCQllbmdpbmUtPmVtaXRf Zmx1c2ggPSBnZW40X3JlbmRlcl9yaW5nX2ZsdXNoOwogCQllbmdpbmUtPmlycV9lbmFibGVfbWFz ayA9IEk5MTVfVVNFUl9JTlRFUlJVUFQ7CiAJfQogCi0JaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYp KQorCWlmIChJU19IQVNXRUxMKGk5MTUpKQogCQllbmdpbmUtPmVtaXRfYmJfc3RhcnQgPSBoc3df ZW1pdF9iYl9zdGFydDsKIAogCWVuZ2luZS0+cmVzdW1lID0gcmNzX3Jlc3VtZTsKLQotCXJldCA9 IGludGVsX2luaXRfcmluZ19idWZmZXIoZW5naW5lKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0 OwotCi0JcmV0dXJuIDA7CiB9CiAKLWludCBpbnRlbF9pbml0X2JzZF9yaW5nX2J1ZmZlcihzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCitzdGF0aWMgdm9pZCBzZXR1cF92Y3Moc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKLQotCWludGVsX3JpbmdfZGVmYXVsdF92ZnVuY3MoZGV2 X3ByaXYsIGVuZ2luZSk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUt Pmk5MTU7CiAKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2KSB7CisJaWYgKElOVEVMX0dF TihpOTE1KSA+PSA2KSB7CiAJCS8qIGdlbjYgYnNkIG5lZWRzIGEgc3BlY2lhbCB3YSBmb3IgdGFp bCB1cGRhdGVzICovCi0JCWlmIChJU19HRU4oZGV2X3ByaXYsIDYpKQorCQlpZiAoSVNfR0VOKGk5 MTUsIDYpKQogCQkJZW5naW5lLT5zZXRfZGVmYXVsdF9zdWJtaXNzaW9uID0gZ2VuNl9ic2Rfc2V0 X2RlZmF1bHRfc3VibWlzc2lvbjsKIAkJZW5naW5lLT5lbWl0X2ZsdXNoID0gZ2VuNl9ic2Rfcmlu Z19mbHVzaDsKIAkJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPSBHVF9CU0RfVVNFUl9JTlRFUlJV UFQ7CiAKLQkJaWYgKElTX0dFTihkZXZfcHJpdiwgNikpCisJCWlmIChJU19HRU4oaTkxNSwgNikp CiAJCQllbmdpbmUtPmVtaXRfZmluaV9icmVhZGNydW1iID0gZ2VuNl94Y3NfZW1pdF9icmVhZGNy dW1iOwogCQllbHNlCiAJCQllbmdpbmUtPmVtaXRfZmluaV9icmVhZGNydW1iID0gZ2VuN194Y3Nf ZW1pdF9icmVhZGNydW1iOwogCX0gZWxzZSB7CiAJCWVuZ2luZS0+ZW1pdF9mbHVzaCA9IGJzZF9y aW5nX2ZsdXNoOwotCQlpZiAoSVNfR0VOKGRldl9wcml2LCA1KSkKKwkJaWYgKElTX0dFTihpOTE1 LCA1KSkKIAkJCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0gSUxLX0JTRF9VU0VSX0lOVEVSUlVQ VDsKIAkJZWxzZQogCQkJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPSBJOTE1X0JTRF9VU0VSX0lO VEVSUlVQVDsKIAl9Ci0KLQlyZXR1cm4gaW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihlbmdpbmUpOwog fQogCi1pbnQgaW50ZWxfaW5pdF9ibHRfcmluZ19idWZmZXIoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQorc3RhdGljIHZvaWQgc2V0dXBfYmNzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUt Pmk5MTU7Ci0KLQlHRU1fQlVHX09OKElOVEVMX0dFTihkZXZfcHJpdikgPCA2KTsKLQotCWludGVs X3JpbmdfZGVmYXVsdF92ZnVuY3MoZGV2X3ByaXYsIGVuZ2luZSk7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUtPmk5MTU7CiAKIAllbmdpbmUtPmVtaXRfZmx1c2ggPSBn ZW42X3JpbmdfZmx1c2g7CiAJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPSBHVF9CTFRfVVNFUl9J TlRFUlJVUFQ7CiAKLQlpZiAoSVNfR0VOKGRldl9wcml2LCA2KSkKKwlpZiAoSVNfR0VOKGk5MTUs IDYpKQogCQllbmdpbmUtPmVtaXRfZmluaV9icmVhZGNydW1iID0gZ2VuNl94Y3NfZW1pdF9icmVh ZGNydW1iOwogCWVsc2UKIAkJZW5naW5lLT5lbWl0X2ZpbmlfYnJlYWRjcnVtYiA9IGdlbjdfeGNz X2VtaXRfYnJlYWRjcnVtYjsKLQotCXJldHVybiBpbnRlbF9pbml0X3JpbmdfYnVmZmVyKGVuZ2lu ZSk7CiB9CiAKLWludCBpbnRlbF9pbml0X3ZlYm94X3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lkIHNldHVwX3ZlY3Moc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGVuZ2luZS0+aTkxNTsKLQotCUdFTV9CVUdfT04oSU5URUxfR0VOKGRldl9wcml2KSA8IDcpOwor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZW5naW5lLT5pOTE1OwogCi0JaW50ZWxf cmluZ19kZWZhdWx0X3ZmdW5jcyhkZXZfcHJpdiwgZW5naW5lKTsKKwlHRU1fQlVHX09OKElOVEVM X0dFTihpOTE1KSA8IDcpOwogCiAJZW5naW5lLT5lbWl0X2ZsdXNoID0gZ2VuNl9yaW5nX2ZsdXNo OwogCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0gUE1fVkVCT1hfVVNFUl9JTlRFUlJVUFQ7CkBA IC0yMzM5LDYgKzIyNzIsNzMgQEAgaW50IGludGVsX2luaXRfdmVib3hfcmluZ19idWZmZXIoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWVuZ2luZS0+aXJxX2Rpc2FibGUgPSBoc3df dmVib3hfaXJxX2Rpc2FibGU7CiAKIAllbmdpbmUtPmVtaXRfZmluaV9icmVhZGNydW1iID0gZ2Vu N194Y3NfZW1pdF9icmVhZGNydW1iOworfQorCitpbnQgaW50ZWxfcmluZ19zdWJtaXNzaW9uX3Nl dHVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwlzZXR1cF9jb21tb24oZW5n aW5lKTsKKworCXN3aXRjaCAoZW5naW5lLT5jbGFzcykgeworCWNhc2UgUkVOREVSX0NMQVNTOgor CQlzZXR1cF9yY3MoZW5naW5lKTsKKwkJYnJlYWs7CisJY2FzZSBWSURFT19ERUNPREVfQ0xBU1M6 CisJCXNldHVwX3ZjcyhlbmdpbmUpOworCQlicmVhazsKKwljYXNlIENPUFlfRU5HSU5FX0NMQVNT OgorCQlzZXR1cF9iY3MoZW5naW5lKTsKKwkJYnJlYWs7CisJY2FzZSBWSURFT19FTkhBTkNFTUVO VF9DTEFTUzoKKwkJc2V0dXBfdmVjcyhlbmdpbmUpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlN SVNTSU5HX0NBU0UoZW5naW5lLT5jbGFzcyk7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCXJl dHVybiAwOworfQorCitpbnQgaW50ZWxfcmluZ19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQoreworCXN0cnVjdCBpOTE1X3RpbWVsaW5lICp0aW1lbGluZTsK KwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZzsKKwlpbnQgZXJyOworCisJdGltZWxpbmUgPSBpOTE1 X3RpbWVsaW5lX2NyZWF0ZShlbmdpbmUtPmk5MTUsIGVuZ2luZS0+c3RhdHVzX3BhZ2Uudm1hKTsK KwlpZiAoSVNfRVJSKHRpbWVsaW5lKSkgeworCQllcnIgPSBQVFJfRVJSKHRpbWVsaW5lKTsKKwkJ Z290byBlcnI7CisJfQorCUdFTV9CVUdfT04odGltZWxpbmUtPmhhc19pbml0aWFsX2JyZWFkY3J1 bWIpOworCisJcmluZyA9IGludGVsX2VuZ2luZV9jcmVhdGVfcmluZyhlbmdpbmUsIHRpbWVsaW5l LCAzMiAqIFBBR0VfU0laRSk7CisJaTkxNV90aW1lbGluZV9wdXQodGltZWxpbmUpOworCWlmIChJ U19FUlIocmluZykpIHsKKwkJZXJyID0gUFRSX0VSUihyaW5nKTsKKwkJZ290byBlcnI7CisJfQor CisJZXJyID0gaW50ZWxfcmluZ19waW4ocmluZyk7CisJaWYgKGVycikKKwkJZ290byBlcnJfcmlu ZzsKIAotCXJldHVybiBpbnRlbF9pbml0X3JpbmdfYnVmZmVyKGVuZ2luZSk7CisJR0VNX0JVR19P TihlbmdpbmUtPmJ1ZmZlcik7CisJZW5naW5lLT5idWZmZXIgPSByaW5nOworCisJZXJyID0gaW50 ZWxfZW5naW5lX2luaXRfY29tbW9uKGVuZ2luZSk7CisJaWYgKGVycikKKwkJZ290byBlcnJfdW5w aW47CisKKwlHRU1fQlVHX09OKHJpbmctPnRpbWVsaW5lLT5od3NwX2dndHQgIT0gZW5naW5lLT5z dGF0dXNfcGFnZS52bWEpOworCisJcmV0dXJuIDA7CisKK2Vycl91bnBpbjoKKwlpbnRlbF9yaW5n X3VucGluKHJpbmcpOworZXJyX3Jpbmc6CisJaW50ZWxfcmluZ19wdXQocmluZyk7CitlcnI6CisJ aW50ZWxfZW5naW5lX2NsZWFudXBfY29tbW9uKGVuZ2luZSk7CisJcmV0dXJuIGVycjsKIH0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dvcmthcm91bmRzLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kcy5jCmluZGV4IDM2NDY5NjIy MWZkNy4uNTc1MTQ0NmE0YjBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF93b3JrYXJvdW5kcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dv cmthcm91bmRzLmMKQEAgLTEwNzcsNyArMTA3Nyw4IEBAIHZvaWQgaW50ZWxfZW5naW5lX2luaXRf d2hpdGVsaXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSA9IGVuZ2luZS0+aTkxNTsKIAlzdHJ1Y3QgaTkxNV93YV9saXN0ICp3 ID0gJmVuZ2luZS0+d2hpdGVsaXN0OwogCi0JR0VNX0JVR19PTihlbmdpbmUtPmlkICE9IFJDUzAp OworCWlmIChlbmdpbmUtPmNsYXNzICE9IFJFTkRFUl9DTEFTUykKKwkJcmV0dXJuOwogCiAJd2Ff aW5pdF9zdGFydCh3LCAid2hpdGVsaXN0Iik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L21vY2tfZW5naW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9tb2NrX2Vu Z2luZS5jCmluZGV4IDIxZjQxM2ZmNWI4ZS4uODVjZGJmZTFkOTg5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9tb2NrX2VuZ2luZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L21vY2tfZW5naW5lLmMKQEAgLTIzOSw3ICsyMzksNiBAQCBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICptb2NrX2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCQkg ICAgaW50IGlkKQogewogCXN0cnVjdCBtb2NrX2VuZ2luZSAqZW5naW5lOwotCWludCBlcnI7CiAK IAlHRU1fQlVHX09OKGlkID49IEk5MTVfTlVNX0VOR0lORVMpOwogCkBAIC0yNjUsMzcgKzI2NCw0 NCBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICptb2NrX2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwKIAllbmdpbmUtPmJhc2UucmVzZXQuZmluaXNoID0gbW9ja19yZXNldF9m aW5pc2g7CiAJZW5naW5lLT5iYXNlLmNhbmNlbF9yZXF1ZXN0cyA9IG1vY2tfY2FuY2VsX3JlcXVl c3RzOwogCi0JaWYgKGk5MTVfdGltZWxpbmVfaW5pdChpOTE1LCAmZW5naW5lLT5iYXNlLnRpbWVs aW5lLCBOVUxMKSkKLQkJZ290byBlcnJfZnJlZTsKLQlpOTE1X3RpbWVsaW5lX3NldF9zdWJjbGFz cygmZW5naW5lLT5iYXNlLnRpbWVsaW5lLCBUSU1FTElORV9FTkdJTkUpOwotCi0JaW50ZWxfZW5n aW5lX2luaXRfYnJlYWRjcnVtYnMoJmVuZ2luZS0+YmFzZSk7Ci0JaW50ZWxfZW5naW5lX2luaXRf ZXhlY2xpc3RzKCZlbmdpbmUtPmJhc2UpOwotCWludGVsX2VuZ2luZV9pbml0X19wbSgmZW5naW5l LT5iYXNlKTsKLQogCS8qIGZha2UgaHcgcXVldWUgKi8KIAlzcGluX2xvY2tfaW5pdCgmZW5naW5l LT5od19sb2NrKTsKIAl0aW1lcl9zZXR1cCgmZW5naW5lLT5od19kZWxheSwgaHdfZGVsYXlfY29t cGxldGUsIDApOwogCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPmh3X3F1ZXVlKTsKIAotCWVuZ2lu ZS0+YmFzZS5rZXJuZWxfY29udGV4dCA9Ci0JCWludGVsX2NvbnRleHRfaW5zdGFuY2UoaTkxNS0+ a2VybmVsX2NvbnRleHQsICZlbmdpbmUtPmJhc2UpOwotCWlmIChJU19FUlIoZW5naW5lLT5iYXNl Lmtlcm5lbF9jb250ZXh0KSkKKwlyZXR1cm4gJmVuZ2luZS0+YmFzZTsKK30KKworaW50IG1vY2tf ZW5naW5lX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1ID0gZW5naW5lLT5pOTE1OworCWludCBlcnI7CisKKwlpbnRl bF9lbmdpbmVfaW5pdF9icmVhZGNydW1icyhlbmdpbmUpOworCWludGVsX2VuZ2luZV9pbml0X2V4 ZWNsaXN0cyhlbmdpbmUpOworCWludGVsX2VuZ2luZV9pbml0X19wbShlbmdpbmUpOworCisJaWYg KGk5MTVfdGltZWxpbmVfaW5pdChpOTE1LCAmZW5naW5lLT50aW1lbGluZSwgTlVMTCkpCiAJCWdv dG8gZXJyX2JyZWFkY3J1bWJzOworCWk5MTVfdGltZWxpbmVfc2V0X3N1YmNsYXNzKCZlbmdpbmUt PnRpbWVsaW5lLCBUSU1FTElORV9FTkdJTkUpOworCisJZW5naW5lLT5rZXJuZWxfY29udGV4dCA9 CisJCWludGVsX2NvbnRleHRfaW5zdGFuY2UoaTkxNS0+a2VybmVsX2NvbnRleHQsIGVuZ2luZSk7 CisJaWYgKElTX0VSUihlbmdpbmUtPmtlcm5lbF9jb250ZXh0KSkKKwkJZ290byBlcnJfdGltZWxp bmU7CiAKLQllcnIgPSBpbnRlbF9jb250ZXh0X3BpbihlbmdpbmUtPmJhc2Uua2VybmVsX2NvbnRl eHQpOwotCWludGVsX2NvbnRleHRfcHV0KGVuZ2luZS0+YmFzZS5rZXJuZWxfY29udGV4dCk7CisJ ZXJyID0gaW50ZWxfY29udGV4dF9waW4oZW5naW5lLT5rZXJuZWxfY29udGV4dCk7CisJaW50ZWxf Y29udGV4dF9wdXQoZW5naW5lLT5rZXJuZWxfY29udGV4dCk7CiAJaWYgKGVycikKLQkJZ290byBl cnJfYnJlYWRjcnVtYnM7CisJCWdvdG8gZXJyX3RpbWVsaW5lOwogCi0JcmV0dXJuICZlbmdpbmUt PmJhc2U7CisJcmV0dXJuIDA7CiAKK2Vycl90aW1lbGluZToKKwlpOTE1X3RpbWVsaW5lX2Zpbmko JmVuZ2luZS0+dGltZWxpbmUpOwogZXJyX2JyZWFkY3J1bWJzOgotCWludGVsX2VuZ2luZV9maW5p X2JyZWFkY3J1bWJzKCZlbmdpbmUtPmJhc2UpOwotCWk5MTVfdGltZWxpbmVfZmluaSgmZW5naW5l LT5iYXNlLnRpbWVsaW5lKTsKLWVycl9mcmVlOgotCWtmcmVlKGVuZ2luZSk7Ci0JcmV0dXJuIE5V TEw7CisJaW50ZWxfZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMoZW5naW5lKTsKKwlyZXR1cm4gLUVO T01FTTsKIH0KIAogdm9pZCBtb2NrX2VuZ2luZV9mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9tb2NrX2VuZ2lu ZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvbW9ja19lbmdpbmUuaAppbmRleCA0NGIzNWE4 NWU5ZDEuLjNmOWI2OThjNDlkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv bW9ja19lbmdpbmUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9tb2NrX2VuZ2luZS5o CkBAIC00Miw2ICs0Miw4IEBAIHN0cnVjdCBtb2NrX2VuZ2luZSB7CiBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICptb2NrX2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCQkg ICAgY29uc3QgY2hhciAqbmFtZSwKIAkJCQkgICAgaW50IGlkKTsKK2ludCBtb2NrX2VuZ2luZV9p bml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CisKIHZvaWQgbW9ja19lbmdpbmVf Zmx1c2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIHZvaWQgbW9ja19lbmdpbmVf cmVzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIHZvaWQgbW9ja19lbmdpbmVf ZnJlZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKaW5kZXggZDAyMTEyNzFmMTAzLi5mODBiMTgxNzQ2ZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYwpAQCAtNDU0MCw2ICs0NTQwLDEyIEBAIGludCBpOTE1X2dlbV9pbml0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJZ290byBlcnJfZ2d0dDsKIAl9CiAKKwlyZXQgPSBp bnRlbF9lbmdpbmVzX3NldHVwKGRldl9wcml2KTsKKwlpZiAocmV0KSB7CisJCUdFTV9CVUdfT04o cmV0ID09IC1FSU8pOworCQlnb3RvIGVycl91bmxvY2s7CisJfQorCiAJcmV0ID0gaTkxNV9nZW1f Y29udGV4dHNfaW5pdChkZXZfcHJpdik7CiAJaWYgKHJldCkgewogCQlHRU1fQlVHX09OKHJldCA9 PSAtRUlPKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2Nr X2dlbV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9k ZXZpY2UuYwppbmRleCBjMDcyNDI0YzZiN2MuLmU0MDMzZDA1NzZjNCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYwpAQCAtMjA5LDEyICsy MDksMTYgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKm1vY2tfZ2VtX2RldmljZSh2b2lkKQog CW1vY2tfaW5pdF9nZ3R0KGk5MTUsICZpOTE1LT5nZ3R0KTsKIAogCW1rd3JpdGVfZGV2aWNlX2lu Zm8oaTkxNSktPmVuZ2luZV9tYXNrID0gQklUKDApOwotCWk5MTUtPmtlcm5lbF9jb250ZXh0ID0g bW9ja19jb250ZXh0KGk5MTUsIE5VTEwpOwotCWlmICghaTkxNS0+a2VybmVsX2NvbnRleHQpCi0J CWdvdG8gZXJyX3VubG9jazsKIAogCWk5MTUtPmVuZ2luZVtSQ1MwXSA9IG1vY2tfZW5naW5lKGk5 MTUsICJtb2NrIiwgUkNTMCk7CiAJaWYgKCFpOTE1LT5lbmdpbmVbUkNTMF0pCisJCWdvdG8gZXJy X3VubG9jazsKKworCWk5MTUtPmtlcm5lbF9jb250ZXh0ID0gbW9ja19jb250ZXh0KGk5MTUsIE5V TEwpOworCWlmICghaTkxNS0+a2VybmVsX2NvbnRleHQpCisJCWdvdG8gZXJyX2VuZ2luZTsKKwor CWlmIChtb2NrX2VuZ2luZV9pbml0KGk5MTUtPmVuZ2luZVtSQ1MwXSkpCiAJCWdvdG8gZXJyX2Nv bnRleHQ7CiAKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwpAQCAtMjI1 LDYgKzIyOSw4IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICptb2NrX2dlbV9kZXZpY2Uodm9p ZCkKIAogZXJyX2NvbnRleHQ6CiAJaTkxNV9nZW1fY29udGV4dHNfZmluaShpOTE1KTsKK2Vycl9l bmdpbmU6CisJbW9ja19lbmdpbmVfZnJlZShpOTE1LT5lbmdpbmVbUkNTMF0pOwogZXJyX3VubG9j azoKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCWk5MTVfdGltZWxp bmVzX2ZpbmkoaTkxNSk7Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeA==