From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stuart Summers Subject: [CI 5/5] drm/i915: Expand subslice mask Date: Fri, 24 May 2019 08:40:22 -0700 Message-ID: <20190524154022.13575-6-stuart.summers@intel.com> References: <20190524154022.13575-1-stuart.summers@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 3FA116E0BE for ; Fri, 24 May 2019 15:40:24 +0000 (UTC) In-Reply-To: <20190524154022.13575-1-stuart.summers@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 List-Id: intel-gfx@lists.freedesktop.org Q3VycmVudGx5LCB0aGUgc3Vic2xpY2VfbWFzayBydW50aW1lIHBhcmFtZXRlciBpcyBzdG9yZWQg YXMgYW4KYXJyYXkgb2Ygc3Vic2xpY2VzIHBlciBzbGljZS4gRXhwYW5kIHRoZSBzdWJzbGljZSBt YXNrIGFycmF5IHRvCmJldHRlciBtYXRjaCB3aGF0IGlzIHByZXNlbnRlZCB0byB1c2Vyc3BhY2Ug dGhyb3VnaCB0aGUKSTkxNV9RVUVSWV9UT1BPTE9HWV9JTkZPIGlvY3RsLiBUaGUgaW5kZXggaW50 byB0aGlzIGFycmF5IGlzCnRoZW4gY2FsY3VsYXRlZDoKICBzbGljZSAqIHN1YnNsaWNlIHN0cmlk ZSArIHN1YnNsaWNlIGluZGV4IC8gOAoKdjI6IGZpeCBzcGFjaW5nIGluIHNldF9zc2V1X2luZm8g YXJncwogICAgdXNlIHNldF9zc2V1X2luZm8gdG8gaW5pdGlhbGl6ZSBzc2V1IGRhdGEgd2hlbiBi dWlsZGluZwogICAgZGV2aWNlIHN0YXR1cyBpbiBkZWJ1Z2ZzCiAgICByZW5hbWUgdmFyaWFibGVz IGluIGludGVsX2VuZ2luZV90eXBlcy5oIHRvIGF2b2lkIGNoZWNrcGF0Y2gKICAgIHdhcm5pbmdz CnYzOiB1cGRhdGUgaGVhZGVycyBpbiBpbnRlbF9zc2V1LmgKdjQ6IGFkZCBjb25zdCB0byBzb21l IHNzZXVfZGV2X2luZm8gdmFyaWFibGVzCiAgICB1c2Ugc3NldS0+ZXVfc3RyaWRlIGZvciBFVSBz dHJpZGUgY2FsY3VsYXRpb25zCnY1OiBhZGRyZXNzIHJldmlldyBjb21tZW50cyBmcm9tIFR2cnRr byBhbmQgRGFuaWVsZQp2NjogcmVtb3ZlIGV4dHJhIHNwYWNlIGluIGludGVsX3NzZXVfZ2V0X3N1 YnNsaWNlcwogICAgcmV0dXJuIHRoZSBjb3JyZWN0IHN1YnNsaWNlIGVuYWJsZSBpbiBmb3JfZWFj aF9pbnN0ZG9uZQogICAgYWRkIEdFTV9CVUdfT04gdG8gZW5zdXJlIHVzZXIgZG9lc24ndCBwYXNz IGludmFsaWQgc3NfbWFzayBzaXplCiAgICB1c2UgcHJpbnRrIGZvcm1hdHRlZCBzdHJpbmcgZm9y IHN1YnNsaWNlIG1hc2sKdjc6IHJlbW92ZSBzdHJpbmcuaCBoZWFkZXIgYW5kIHJlYmFzZQoKQ2M6 IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+ CkNjOiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+CkFj a2VkLWJ5OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+ ClJldmlld2VkLWJ5OiBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVy aW9AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBTdHVhcnQgU3VtbWVycyA8c3R1YXJ0LnN1bW1l cnNAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9j cy5jICAgIHwgIDI0ICsrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90 eXBlcy5oIHwgIDMwICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9oYW5nY2hl Y2suYyAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfc3NldS5jICAg ICAgICAgfCAgNDcgKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfc3NldS5o ICAgICAgICAgfCAgMjcgKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfd29ya2Fy b3VuZHMuYyAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAg ICAgICAgIHwgIDQwICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAg ICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMg ICAgICAgIHwgICA1ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMgICAgICAg ICAgICB8ICAxMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYyAg ICAgfCAxMjIgKysrKysrKysrLS0tLS0tLS0tLQogMTEgZmlsZXMgY2hhbmdlZCwgMjAwIGluc2Vy dGlvbnMoKyksIDExNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X2VuZ2luZV9jcy5jCmluZGV4IDI1OTBmNTkwNGI2Ny4uNTA5ZjAyYTY1NDA4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtOTUxLDEyICs5NTEsMzAgQEAg Y29uc3QgY2hhciAqaTkxNV9jYWNoZV9sZXZlbF9zdHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsIGludCB0eXBlKQogCX0KIH0KIAorc3RhdGljIGlubGluZSB1MzIKK2ludGVsX3NzZXVf ZmxzX3N1YnNsaWNlKGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LCB1MzIgc2xpY2Up Cit7CisJdTMyIHN1YnNsaWNlOworCWludCBpOworCisJZm9yIChpID0gc3NldS0+c3Nfc3RyaWRl IC0gMTsgaSA+PSAwOyBpLS0pIHsKKwkJc3Vic2xpY2UgPSBmbHMoc3NldS0+c3Vic2xpY2VfbWFz a1tzbGljZSAqIHNzZXUtPnNzX3N0cmlkZSArCisJCQkJCQkgICBpXSk7CisJCWlmIChzdWJzbGlj ZSkgeworCQkJc3Vic2xpY2UgKz0gaSAqIEJJVFNfUEVSX0JZVEU7CisJCQlicmVhazsKKwkJfQor CX0KKworCXJldHVybiBzdWJzbGljZTsKK30KKwogdTMyIGludGVsX2NhbGN1bGF0ZV9tY3Jfc19z c19zZWxlY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCWNvbnN0IHN0 cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXU7 CiAJdTMyIG1jcl9zX3NzX3NlbGVjdDsKIAl1MzIgc2xpY2UgPSBmbHMoc3NldS0+c2xpY2VfbWFz ayk7Ci0JdTMyIHN1YnNsaWNlID0gZmxzKHNzZXUtPnN1YnNsaWNlX21hc2tbc2xpY2VdKTsKKwl1 MzIgc3Vic2xpY2UgPSBpbnRlbF9zc2V1X2Zsc19zdWJzbGljZShzc2V1LCBzbGljZSk7CiAKIAlp ZiAoSVNfR0VOKGRldl9wcml2LCAxMCkpCiAJCW1jcl9zX3NzX3NlbGVjdCA9IEdFTjhfTUNSX1NM SUNFKHNsaWNlKSB8CkBAIC0xMDMyLDYgKzEwNTAsNyBAQCB2b2lkIGludGVsX2VuZ2luZV9nZXRf aW5zdGRvbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkJICAgICAgIHN0cnVj dCBpbnRlbF9pbnN0ZG9uZSAqaW5zdGRvbmUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZW5naW5lLT5pOTE1OworCWNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpz c2V1ID0gJlJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXU7CiAJc3RydWN0IGludGVsX3VuY29y ZSAqdW5jb3JlID0gZW5naW5lLT51bmNvcmU7CiAJdTMyIG1taW9fYmFzZSA9IGVuZ2luZS0+bW1p b19iYXNlOwogCWludCBzbGljZTsKQEAgLTEwNDksNyArMTA2OCw4IEBAIHZvaWQgaW50ZWxfZW5n aW5lX2dldF9pbnN0ZG9uZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAKIAkJaW5z dGRvbmUtPnNsaWNlX2NvbW1vbiA9CiAJCQlpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIEdFTjdf U0NfSU5TVERPTkUpOwotCQlmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShkZXZfcHJp diwgc2xpY2UsIHN1YnNsaWNlKSB7CisJCWZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1YnNsaWNl KGRldl9wcml2LCBzc2V1LCBzbGljZSwKKwkJCQkJCSBzdWJzbGljZSkgewogCQkJaW5zdGRvbmUt PnNhbXBsZXJbc2xpY2VdW3N1YnNsaWNlXSA9CiAJCQkJcmVhZF9zdWJzbGljZV9yZWcoZGV2X3By aXYsIHNsaWNlLCBzdWJzbGljZSwKIAkJCQkJCSAgR0VON19TQU1QTEVSX0lOU1RET05FKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKaW5kZXggNDBlNzc0 YWNjMmNkLi40MWMyNTdmNmE1NjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2VuZ2luZV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X2VuZ2luZV90eXBlcy5oCkBAIC01NTEsMjAgKzU1MSwyMCBAQCBpbnRlbF9lbmdpbmVfaXNfdmly dHVhbChjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJcmV0dXJuIGVuZ2lu ZS0+ZmxhZ3MgJiBJOTE1X0VOR0lORV9JU19WSVJUVUFMOwogfQogCi0jZGVmaW5lIGluc3Rkb25l X3NsaWNlX21hc2soZGV2X3ByaXZfXykgXAotCShJU19HRU4oZGV2X3ByaXZfXywgNykgPyBcCi0J IDEgOiBSVU5USU1FX0lORk8oZGV2X3ByaXZfXyktPnNzZXUuc2xpY2VfbWFzaykKLQotI2RlZmlu ZSBpbnN0ZG9uZV9zdWJzbGljZV9tYXNrKGRldl9wcml2X18pIFwKLQkoSVNfR0VOKGRldl9wcml2 X18sIDcpID8gXAotCSAxIDogUlVOVElNRV9JTkZPKGRldl9wcml2X18pLT5zc2V1LnN1YnNsaWNl X21hc2tbMF0pCi0KLSNkZWZpbmUgZm9yX2VhY2hfaW5zdGRvbmVfc2xpY2Vfc3Vic2xpY2UoZGV2 X3ByaXZfXywgc2xpY2VfXywgc3Vic2xpY2VfXykgXAotCWZvciAoKHNsaWNlX18pID0gMCwgKHN1 YnNsaWNlX18pID0gMDsgXAotCSAgICAgKHNsaWNlX18pIDwgSTkxNV9NQVhfU0xJQ0VTOyBcCi0J ICAgICAoc3Vic2xpY2VfXykgPSAoKHN1YnNsaWNlX18pICsgMSkgPCBJOTE1X01BWF9TVUJTTElD RVMgPyAoc3Vic2xpY2VfXykgKyAxIDogMCwgXAotCSAgICAgICAoc2xpY2VfXykgKz0gKChzdWJz bGljZV9fKSA9PSAwKSkgXAotCQlmb3JfZWFjaF9pZigoQklUKHNsaWNlX18pICYgaW5zdGRvbmVf c2xpY2VfbWFzayhkZXZfcHJpdl9fKSkgJiYgXAotCQkJICAgIChCSVQoc3Vic2xpY2VfXykgJiBp bnN0ZG9uZV9zdWJzbGljZV9tYXNrKGRldl9wcml2X18pKSkKKyNkZWZpbmUgaW5zdGRvbmVfaGFz X3NsaWNlKGRldl9wcml2X19fLCBzc2V1X19fLCBzbGljZV9fXykgXAorCSgoSVNfR0VOKGRldl9w cml2X19fLCA3KSA/IDEgOiAoKHNzZXVfX18pLT5zbGljZV9tYXNrKSkgJiBcCisJQklUKHNsaWNl X19fKSkKKworI2RlZmluZSBpbnN0ZG9uZV9oYXNfc3Vic2xpY2UoZGV2X3ByaXZfXywgc3NldV9f LCBzbGljZV9fLCBzdWJzbGljZV9fKSBcCisJKElTX0dFTihkZXZfcHJpdl9fLCA3KSA/ICgxICYg QklUKHN1YnNsaWNlX18pKSA6IFwKKwkgaW50ZWxfc3NldV9oYXNfc3Vic2xpY2Uoc3NldV9fLCBz bGljZV9fLCBzdWJzbGljZV9fKSkKKworI2RlZmluZSBmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9z dWJzbGljZShkZXZfcHJpdl8sIHNzZXVfLCBzbGljZV8sIHN1YnNsaWNlXykgXAorCWZvciAoKHNs aWNlXykgPSAwLCAoc3Vic2xpY2VfKSA9IDA7IChzbGljZV8pIDwgSTkxNV9NQVhfU0xJQ0VTOyBc CisJICAgICAoc3Vic2xpY2VfKSA9ICgoc3Vic2xpY2VfKSArIDEpICUgSTkxNV9NQVhfU1VCU0xJ Q0VTLCBcCisJICAgICAoc2xpY2VfKSArPSAoKHN1YnNsaWNlXykgPT0gMCkpIFwKKwkJZm9yX2Vh Y2hfaWYoKGluc3Rkb25lX2hhc19zbGljZShkZXZfcHJpdl8sIHNzZXVfLCBzbGljZV8pKSAmJiBc CisJCQkgICAgKGluc3Rkb25lX2hhc19zdWJzbGljZShkZXZfcHJpdl8sIHNzZXVfLCBzbGljZV8s IFwKKwkJCQkJCSAgICBzdWJzbGljZV8pKSkKIAogI2VuZGlmIC8qIF9fSU5URUxfRU5HSU5FX1RZ UEVTX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfaGFu Z2NoZWNrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9oYW5nY2hlY2suYwppbmRl eCAzYTRkMDliODBmYTAuLmIxOWNkNGNkY2I1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfaGFuZ2NoZWNrLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfaGFuZ2NoZWNrLmMKQEAgLTUxLDYgKzUxLDcgQEAgc3RhdGljIGJvb2wgaW5zdGRvbmVf dW5jaGFuZ2VkKHUzMiBjdXJyZW50X2luc3Rkb25lLCB1MzIgKm9sZF9pbnN0ZG9uZSkKIHN0YXRp YyBib29sIHN1YnVuaXRzX3N0dWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7CisJY29u c3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmUlVOVElNRV9JTkZPKGRldl9wcml2KS0+ c3NldTsKIAlzdHJ1Y3QgaW50ZWxfaW5zdGRvbmUgaW5zdGRvbmU7CiAJc3RydWN0IGludGVsX2lu c3Rkb25lICphY2N1X2luc3Rkb25lID0gJmVuZ2luZS0+aGFuZ2NoZWNrLmluc3Rkb25lOwogCWJv b2wgc3R1Y2s7CkBAIC03Miw3ICs3Myw3IEBAIHN0YXRpYyBib29sIHN1YnVuaXRzX3N0dWNrKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlzdHVjayAmPSBpbnN0ZG9uZV91bmNoYW5n ZWQoaW5zdGRvbmUuc2xpY2VfY29tbW9uLAogCQkJCSAgICAmYWNjdV9pbnN0ZG9uZS0+c2xpY2Vf Y29tbW9uKTsKIAotCWZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1YnNsaWNlKGRldl9wcml2LCBz bGljZSwgc3Vic2xpY2UpIHsKKwlmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShkZXZf cHJpdiwgc3NldSwgc2xpY2UsIHN1YnNsaWNlKSB7CiAJCXN0dWNrICY9IGluc3Rkb25lX3VuY2hh bmdlZChpbnN0ZG9uZS5zYW1wbGVyW3NsaWNlXVtzdWJzbGljZV0sCiAJCQkJCSAgICAmYWNjdV9p bnN0ZG9uZS0+c2FtcGxlcltzbGljZV1bc3Vic2xpY2VdKTsKIAkJc3R1Y2sgJj0gaW5zdGRvbmVf dW5jaGFuZ2VkKGluc3Rkb25lLnJvd1tzbGljZV1bc3Vic2xpY2VdLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfc3NldS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfc3NldS5jCmluZGV4IGEwNzU2ZjAwNmY1Zi4uNzYzYjgxMWYyYzlkIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9zc2V1LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfc3NldS5jCkBAIC04LDYgKzgsMTcgQEAKICNpbmNsdWRlICJp bnRlbF9scmNfcmVnLmgiCiAjaW5jbHVkZSAiaW50ZWxfc3NldS5oIgogCit2b2lkIGludGVsX3Nz ZXVfc2V0X2luZm8oc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsIHU4IG1heF9zbGljZXMsCisJ CQkgdTggbWF4X3N1YnNsaWNlcywgdTggbWF4X2V1c19wZXJfc3Vic2xpY2UpCit7CisJc3NldS0+ bWF4X3NsaWNlcyA9IG1heF9zbGljZXM7CisJc3NldS0+bWF4X3N1YnNsaWNlcyA9IG1heF9zdWJz bGljZXM7CisJc3NldS0+bWF4X2V1c19wZXJfc3Vic2xpY2UgPSBtYXhfZXVzX3Blcl9zdWJzbGlj ZTsKKworCXNzZXUtPnNzX3N0cmlkZSA9IEdFTl9TU0VVX1NUUklERShzc2V1LT5tYXhfc3Vic2xp Y2VzKTsKKwlzc2V1LT5ldV9zdHJpZGUgPSBHRU5fU1NFVV9TVFJJREUoc3NldS0+bWF4X2V1c19w ZXJfc3Vic2xpY2UpOworfQorCiB1bnNpZ25lZCBpbnQKIGludGVsX3NzZXVfc3Vic2xpY2VfdG90 YWwoY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUpCiB7CkBAIC0xOSwxMCArMzAsNDQg QEAgaW50ZWxfc3NldV9zdWJzbGljZV90b3RhbChjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAq c3NldSkKIAlyZXR1cm4gdG90YWw7CiB9CiAKK3ZvaWQgaW50ZWxfc3NldV9jb3B5X3N1YnNsaWNl cyhjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwgaW50IHNsaWNlLAorCQkJICAgICAg IHU4ICp0b19tYXNrKQoreworCWludCBvZmZzZXQgPSBzbGljZSAqIHNzZXUtPnNzX3N0cmlkZTsK KworCW1lbWNweSgmdG9fbWFza1tvZmZzZXRdLCAmc3NldS0+c3Vic2xpY2VfbWFza1tvZmZzZXRd LCBzc2V1LT5zc19zdHJpZGUpOworfQorCit1MzIgaW50ZWxfc3NldV9nZXRfc3Vic2xpY2VzKGNv bnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LCB1OCBzbGljZSkKK3sKKwlpbnQgaSwgb2Zm c2V0ID0gc2xpY2UgKiBzc2V1LT5zc19zdHJpZGU7CisJdTMyIG1hc2s7CisKKwlHRU1fQlVHX09O KHNsaWNlID49IHNzZXUtPm1heF9zbGljZXMpOworCisJR0VNX0JVR19PTihzc2V1LT5zc19zdHJp ZGUgPiBzaXplb2YobWFzaykpOworCisJZm9yIChpID0gMDsgaSA8IHNzZXUtPnNzX3N0cmlkZTsg aSsrKQorCQltYXNrIHw9ICh1MzIpc3NldS0+c3Vic2xpY2VfbWFza1tvZmZzZXQgKyBpXSA8PAor CQkJaSAqIEJJVFNfUEVSX0JZVEU7CisKKwlyZXR1cm4gbWFzazsKK30KKwordm9pZCBpbnRlbF9z c2V1X3NldF9zdWJzbGljZXMoc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsIGludCBzbGljZSwK KwkJCSAgICAgIHUzMiBzc19tYXNrKQoreworCWludCBpLCBvZmZzZXQgPSBzbGljZSAqIHNzZXUt PnNzX3N0cmlkZTsKKworCWZvciAoaSA9IDA7IGkgPCBzc2V1LT5zc19zdHJpZGU7IGkrKykKKwkJ c3NldS0+c3Vic2xpY2VfbWFza1tvZmZzZXQgKyBpXSA9CisJCQkoc3NfbWFzayA+PiAoQklUU19Q RVJfQllURSAqIGkpKSAmIDB4ZmY7Cit9CisKIHVuc2lnbmVkIGludAogaW50ZWxfc3NldV9zdWJz bGljZXNfcGVyX3NsaWNlKGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LCB1OCBzbGlj ZSkKIHsKLQlyZXR1cm4gaHdlaWdodDgoc3NldS0+c3Vic2xpY2VfbWFza1tzbGljZV0pOworCXJl dHVybiBod2VpZ2h0MzIoaW50ZWxfc3NldV9nZXRfc3Vic2xpY2VzKHNzZXUsIHNsaWNlKSk7CiB9 CiAKIHUzMiBpbnRlbF9zc2V1X21ha2VfcnBjcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3NzZXUuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3NzZXUuaAppbmRleCBiNTBkMDQwMWE0ZTIuLmVl ZTIxZDlmMzIwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfc3Nl dS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3NzZXUuaApAQCAtMTUsMTAg KzE1LDExIEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwogI2RlZmluZSBHRU5fTUFYX1NMSUNF UwkJKDYpIC8qIENOTCB1cHBlciBib3VuZCAqLwogI2RlZmluZSBHRU5fTUFYX1NVQlNMSUNFUwko OCkgLyogSUNMIHVwcGVyIGJvdW5kICovCiAjZGVmaW5lIEdFTl9TU0VVX1NUUklERShtYXhfZW50 cmllcykgRElWX1JPVU5EX1VQKG1heF9lbnRyaWVzLCBCSVRTX1BFUl9CWVRFKQorI2RlZmluZSBH RU5fTUFYX1NVQlNMSUNFX1NUUklERSBHRU5fU1NFVV9TVFJJREUoR0VOX01BWF9TVUJTTElDRVMp CiAKIHN0cnVjdCBzc2V1X2Rldl9pbmZvIHsKIAl1OCBzbGljZV9tYXNrOwotCXU4IHN1YnNsaWNl X21hc2tbR0VOX01BWF9TTElDRVNdOworCXU4IHN1YnNsaWNlX21hc2tbR0VOX01BWF9TTElDRVMg KiBHRU5fTUFYX1NVQlNMSUNFX1NUUklERV07CiAJdTE2IGV1X3RvdGFsOwogCXU4IGV1X3Blcl9z dWJzbGljZTsKIAl1OCBtaW5fZXVfaW5fcG9vbDsKQEAgLTMzLDYgKzM0LDkgQEAgc3RydWN0IHNz ZXVfZGV2X2luZm8gewogCXU4IG1heF9zdWJzbGljZXM7CiAJdTggbWF4X2V1c19wZXJfc3Vic2xp Y2U7CiAKKwl1OCBzc19zdHJpZGU7CisJdTggZXVfc3RyaWRlOworCiAJLyogV2UgZG9uJ3QgaGF2 ZSBtb3JlIHRoYW4gOCBldXMgcGVyIHN1YnNsaWNlIGF0IHRoZSBtb21lbnQgYW5kIGFzIHdlCiAJ ICogc3RvcmUgZXVzIGVuYWJsZWQgdXNpbmcgYml0cywgbm8gbmVlZCB0byBtdWx0aXBseSBieSBl dXMgcGVyCiAJICogc3Vic2xpY2UuCkBAIC02MywxMiArNjcsMzMgQEAgaW50ZWxfc3NldV9mcm9t X2RldmljZV9pbmZvKGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1KQogCXJldHVybiB2 YWx1ZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sCitpbnRlbF9zc2V1X2hhc19zdWJzbGljZShj b25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwgaW50IHNsaWNlLAorCQkJaW50IHN1YnNs aWNlKQoreworCXU4IG1hc2sgPSBzc2V1LT5zdWJzbGljZV9tYXNrW3NsaWNlICogc3NldS0+c3Nf c3RyaWRlICsKKwkJCQkgICAgICBzdWJzbGljZSAvIEJJVFNfUEVSX0JZVEVdOworCisJcmV0dXJu IG1hc2sgJiBCSVQoc3Vic2xpY2UgJSBCSVRTX1BFUl9CWVRFKTsKK30KKwordm9pZCBpbnRlbF9z c2V1X3NldF9pbmZvKHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LCB1OCBtYXhfc2xpY2VzLAor CQkJIHU4IG1heF9zdWJzbGljZXMsIHU4IG1heF9ldXNfcGVyX3N1YnNsaWNlKTsKKwogdW5zaWdu ZWQgaW50CiBpbnRlbF9zc2V1X3N1YnNsaWNlX3RvdGFsKGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9p bmZvICpzc2V1KTsKIAogdW5zaWduZWQgaW50CiBpbnRlbF9zc2V1X3N1YnNsaWNlc19wZXJfc2xp Y2UoY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsIHU4IHNsaWNlKTsKIAordm9pZCBp bnRlbF9zc2V1X2NvcHlfc3Vic2xpY2VzKGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1 LCBpbnQgc2xpY2UsCisJCQkgICAgICAgdTggKnRvX21hc2spOworCit1MzIgIGludGVsX3NzZXVf Z2V0X3N1YnNsaWNlcyhjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwgdTggc2xpY2Up OworCit2b2lkIGludGVsX3NzZXVfc2V0X3N1YnNsaWNlcyhzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAq c3NldSwgaW50IHNsaWNlLAorCQkJICAgICAgdTMyIHNzX21hc2spOworCiB1MzIgaW50ZWxfc3Nl dV9tYWtlX3JwY3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkgY29uc3Qgc3Ry dWN0IGludGVsX3NzZXUgKnJlcV9zc2V1KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfd29ya2Fyb3VuZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX3dvcmthcm91bmRzLmMKaW5kZXggY2U0YmNjYTNmODNjLi4wZmY1OGQ2YmIwMWYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dvcmthcm91bmRzLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfd29ya2Fyb3VuZHMuYwpAQCAtNzgzLDcgKzc4 Myw3IEBAIHdhX2luaXRfbWNyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBzdHJ1Y3Qg aTkxNV93YV9saXN0ICp3YWwpCiAJCXUzMiBzbGljZSA9IGZscyhzc2V1LT5zbGljZV9tYXNrKTsK IAkJdTMyIGZ1c2UzID0KIAkJCWludGVsX3VuY29yZV9yZWFkKCZpOTE1LT51bmNvcmUsIEdFTjEw X01JUlJPUl9GVVNFMyk7Ci0JCXU4IHNzX21hc2sgPSBzc2V1LT5zdWJzbGljZV9tYXNrW3NsaWNl XTsKKwkJdTMyIHNzX21hc2sgPSBpbnRlbF9zc2V1X2dldF9zdWJzbGljZXMoc3NldSwgc2xpY2Up OwogCiAJCXU4IGVuYWJsZWRfbWFzayA9IChzc19tYXNrIHwgc3NfbWFzayA+PgogCQkJCSAgIEdF TjEwX0wzQkFOS19QQUlSX0NPVU5UKSAmIEdFTjEwX0wzQkFOS19NQVNLOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYwppbmRleCA3NTU2YTIwNWY2NzcuLjNmOWY4MzMwMDdkZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTEyNzEsNiArMTI3MSw3IEBAIHN0YXRpYyB2 b2lkIGk5MTVfaW5zdGRvbmVfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAJCQkgICAgICAgc3RydWN0IHNlcV9maWxlICptLAogCQkJICAgICAgIHN0cnVjdCBpbnRlbF9p bnN0ZG9uZSAqaW5zdGRvbmUpCiB7CisJc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmUlVO VElNRV9JTkZPKGRldl9wcml2KS0+c3NldTsKIAlpbnQgc2xpY2U7CiAJaW50IHN1YnNsaWNlOwog CkBAIC0xMjg2LDExICsxMjg3LDExIEBAIHN0YXRpYyB2b2lkIGk5MTVfaW5zdGRvbmVfaW5mbyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPD0gNikKIAkJcmV0dXJuOwogCi0JZm9yX2VhY2hfaW5zdGRvbmVfc2xpY2Vfc3Vic2xpY2Uo ZGV2X3ByaXYsIHNsaWNlLCBzdWJzbGljZSkKKwlmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJz bGljZShkZXZfcHJpdiwgc3NldSwgc2xpY2UsIHN1YnNsaWNlKQogCQlzZXFfcHJpbnRmKG0sICJc dFx0U0FNUExFUl9JTlNURE9ORVslZF1bJWRdOiAweCUwOHhcbiIsCiAJCQkgICBzbGljZSwgc3Vi c2xpY2UsIGluc3Rkb25lLT5zYW1wbGVyW3NsaWNlXVtzdWJzbGljZV0pOwogCi0JZm9yX2VhY2hf aW5zdGRvbmVfc2xpY2Vfc3Vic2xpY2UoZGV2X3ByaXYsIHNsaWNlLCBzdWJzbGljZSkKKwlmb3Jf ZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShkZXZfcHJpdiwgc3NldSwgc2xpY2UsIHN1YnNs aWNlKQogCQlzZXFfcHJpbnRmKG0sICJcdFx0Uk9XX0lOU1RET05FWyVkXVslZF06IDB4JTA4eFxu IiwKIAkJCSAgIHNsaWNlLCBzdWJzbGljZSwgaW5zdGRvbmUtPnJvd1tzbGljZV1bc3Vic2xpY2Vd KTsKIH0KQEAgLTQwODQsNyArNDA4NSw3IEBAIHN0YXRpYyB2b2lkIGdlbjEwX3NzZXVfZGV2aWNl X3N0YXR1cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQljb250aW51ZTsK IAogCQlzc2V1LT5zbGljZV9tYXNrIHw9IEJJVChzKTsKLQkJc3NldS0+c3Vic2xpY2VfbWFza1tz XSA9IGluZm8tPnNzZXUuc3Vic2xpY2VfbWFza1tzXTsKKwkJaW50ZWxfc3NldV9jb3B5X3N1YnNs aWNlcygmaW5mby0+c3NldSwgcywgc3NldS0+c3Vic2xpY2VfbWFzayk7CiAKIAkJZm9yIChzcyA9 IDA7IHNzIDwgaW5mby0+c3NldS5tYXhfc3Vic2xpY2VzOyBzcysrKSB7CiAJCQl1bnNpZ25lZCBp bnQgZXVfY250OwpAQCAtNDEzNSwxOCArNDEzNiwyMSBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVf ZGV2aWNlX3N0YXR1cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCXNzZXUt PnNsaWNlX21hc2sgfD0gQklUKHMpOwogCiAJCWlmIChJU19HRU45X0JDKGRldl9wcml2KSkKLQkJ CXNzZXUtPnN1YnNsaWNlX21hc2tbc10gPQotCQkJCVJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNz ZXUuc3Vic2xpY2VfbWFza1tzXTsKKwkJCWludGVsX3NzZXVfY29weV9zdWJzbGljZXMoJmluZm8t PnNzZXUsIHMsCisJCQkJCQkgIHNzZXUtPnN1YnNsaWNlX21hc2spOwogCiAJCWZvciAoc3MgPSAw OyBzcyA8IGluZm8tPnNzZXUubWF4X3N1YnNsaWNlczsgc3MrKykgewogCQkJdW5zaWduZWQgaW50 IGV1X2NudDsKKwkJCXU4IHNzX2lkeCA9IHMgKiBpbmZvLT5zc2V1LnNzX3N0cmlkZSArCisJCQkJ ICAgIHNzIC8gQklUU19QRVJfQllURTsKIAogCQkJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKSB7 CiAJCQkJaWYgKCEoc19yZWdbc10gJiAoR0VOOV9QR0NUTF9TU19BQ0soc3MpKSkpCiAJCQkJCS8q IHNraXAgZGlzYWJsZWQgc3Vic2xpY2UgKi8KIAkJCQkJY29udGludWU7CiAKLQkJCQlzc2V1LT5z dWJzbGljZV9tYXNrW3NdIHw9IEJJVChzcyk7CisJCQkJc3NldS0+c3Vic2xpY2VfbWFza1tzc19p ZHhdIHw9CisJCQkJCUJJVChzcyAlIEJJVFNfUEVSX0JZVEUpOwogCQkJfQogCiAJCQlldV9jbnQg PSAyICogaHdlaWdodDMyKGV1X3JlZ1syKnMgKyBzcy8yXSAmCkBAIC00MTYzLDI1ICs0MTY3LDIz IEBAIHN0YXRpYyB2b2lkIGdlbjlfc3NldV9kZXZpY2Vfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIHN0YXRpYyB2b2lkIGJyb2Fkd2VsbF9zc2V1X2RldmljZV9zdGF0 dXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCQkgc3RydWN0IHNzZXVf ZGV2X2luZm8gKnNzZXUpCiB7CisJc3RydWN0IGludGVsX3J1bnRpbWVfaW5mbyAqaW5mbyA9IFJV TlRJTUVfSU5GTyhkZXZfcHJpdik7CiAJdTMyIHNsaWNlX2luZm8gPSBJOTE1X1JFQUQoR0VOOF9H VF9TTElDRV9JTkZPKTsKIAlpbnQgczsKIAogCXNzZXUtPnNsaWNlX21hc2sgPSBzbGljZV9pbmZv ICYgR0VOOF9MU0xJQ0VTVEFUX01BU0s7CiAKIAlpZiAoc3NldS0+c2xpY2VfbWFzaykgewotCQlz c2V1LT5ldV9wZXJfc3Vic2xpY2UgPQotCQkJUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5l dV9wZXJfc3Vic2xpY2U7Ci0JCWZvciAocyA9IDA7IHMgPCBmbHMoc3NldS0+c2xpY2VfbWFzayk7 IHMrKykgewotCQkJc3NldS0+c3Vic2xpY2VfbWFza1tzXSA9Ci0JCQkJUlVOVElNRV9JTkZPKGRl dl9wcml2KS0+c3NldS5zdWJzbGljZV9tYXNrW3NdOwotCQl9CisJCXNzZXUtPmV1X3Blcl9zdWJz bGljZSA9IGluZm8tPnNzZXUuZXVfcGVyX3N1YnNsaWNlOworCQlmb3IgKHMgPSAwOyBzIDwgZmxz KHNzZXUtPnNsaWNlX21hc2spOyBzKyspCisJCQlpbnRlbF9zc2V1X2NvcHlfc3Vic2xpY2VzKCZp bmZvLT5zc2V1LCBzLAorCQkJCQkJICBzc2V1LT5zdWJzbGljZV9tYXNrKTsKIAkJc3NldS0+ZXVf dG90YWwgPSBzc2V1LT5ldV9wZXJfc3Vic2xpY2UgKgogCQkJCSBpbnRlbF9zc2V1X3N1YnNsaWNl X3RvdGFsKHNzZXUpOwogCiAJCS8qIHN1YnRyYWN0IGZ1c2VkIG9mZiBFVShzKSBmcm9tIGVuYWJs ZWQgc2xpY2UocykgKi8KIAkJZm9yIChzID0gMDsgcyA8IGZscyhzc2V1LT5zbGljZV9tYXNrKTsg cysrKSB7Ci0JCQl1OCBzdWJzbGljZV83ZXUgPQotCQkJCVJVTlRJTUVfSU5GTyhkZXZfcHJpdikt PnNzZXUuc3Vic2xpY2VfN2V1W3NdOworCQkJdTggc3Vic2xpY2VfN2V1ID0gaW5mby0+c3NldS5z dWJzbGljZV83ZXVbc107CiAKIAkJCXNzZXUtPmV1X3RvdGFsIC09IGh3ZWlnaHQ4KHN1YnNsaWNl XzdldSk7CiAJCX0KQEAgLTQyMjgsNiArNDIzMCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfcHJpbnRf c3NldV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgYm9vbCBpc19hdmFpbGFibGVfaW5mbywKIHN0 YXRpYyBpbnQgaTkxNV9zc2V1X3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNl ZCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUo bS0+cHJpdmF0ZSk7CisJY29uc3Qgc3RydWN0IGludGVsX3J1bnRpbWVfaW5mbyAqaW5mbyA9IFJV TlRJTUVfSU5GTyhkZXZfcHJpdik7CiAJc3RydWN0IHNzZXVfZGV2X2luZm8gc3NldTsKIAlpbnRl bF93YWtlcmVmX3Qgd2FrZXJlZjsKIApAQCAtNDIzNSwxNCArNDIzOCwxMyBAQCBzdGF0aWMgaW50 IGk5MTVfc3NldV9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJCXJl dHVybiAtRU5PREVWOwogCiAJc2VxX3B1dHMobSwgIlNTRVUgRGV2aWNlIEluZm9cbiIpOwotCWk5 MTVfcHJpbnRfc3NldV9pbmZvKG0sIHRydWUsICZSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1 KTsKKwlpOTE1X3ByaW50X3NzZXVfaW5mbyhtLCB0cnVlLCAmaW5mby0+c3NldSk7CiAKIAlzZXFf cHV0cyhtLCAiU1NFVSBEZXZpY2UgU3RhdHVzXG4iKTsKIAltZW1zZXQoJnNzZXUsIDAsIHNpemVv Zihzc2V1KSk7Ci0Jc3NldS5tYXhfc2xpY2VzID0gUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3Nl dS5tYXhfc2xpY2VzOwotCXNzZXUubWF4X3N1YnNsaWNlcyA9IFJVTlRJTUVfSU5GTyhkZXZfcHJp diktPnNzZXUubWF4X3N1YnNsaWNlczsKLQlzc2V1Lm1heF9ldXNfcGVyX3N1YnNsaWNlID0KLQkJ UlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5tYXhfZXVzX3Blcl9zdWJzbGljZTsKKwlpbnRl bF9zc2V1X3NldF9pbmZvKCZzc2V1LCBpbmZvLT5zc2V1Lm1heF9zbGljZXMsCisJCQkgICAgaW5m by0+c3NldS5tYXhfc3Vic2xpY2VzLAorCQkJICAgIGluZm8tPnNzZXUubWF4X2V1c19wZXJfc3Vi c2xpY2UpOwogCiAJd2l0aF9pbnRlbF9ydW50aW1lX3BtKGRldl9wcml2LCB3YWtlcmVmKSB7CiAJ CWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4 IGYzZWVhNTY3NjEyMy4uMGJhYzliZGRlMWU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAg LTMzMSw3ICszMzEsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2V0cGFyYW1faW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldl9w cml2LT5kcm0ucGRldjsKIAljb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9ICZSVU5U SU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1OwogCWRybV9pOTE1X2dldHBhcmFtX3QgKnBhcmFtID0g ZGF0YTsKLQlpbnQgdmFsdWU7CisJaW50IHZhbHVlID0gMDsKIAogCXN3aXRjaCAocGFyYW0tPnBh cmFtKSB7CiAJY2FzZSBJOTE1X1BBUkFNX0lSUV9BQ1RJVkU6CkBAIC00NjEsNyArNDYxLDkgQEAg c3RhdGljIGludCBpOTE1X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCiAJCQlyZXR1cm4gLUVOT0RFVjsKIAkJYnJlYWs7CiAJY2FzZSBJOTE1X1BBUkFN X1NVQlNMSUNFX01BU0s6Ci0JCXZhbHVlID0gc3NldS0+c3Vic2xpY2VfbWFza1swXTsKKwkJLyog T25seSBjb3B5IGJpdHMgZnJvbSB0aGUgZmlyc3Qgc2xpY2UgKi8KKwkJbWVtY3B5KCZ2YWx1ZSwg c3NldS0+c3Vic2xpY2VfbWFzaywKKwkJICAgICAgIG1pbihzc2V1LT5zc19zdHJpZGUsICh1OClz aXplb2YodmFsdWUpKSk7CiAJCWlmICghdmFsdWUpCiAJCQlyZXR1cm4gLUVOT0RFVjsKIAkJYnJl YWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCA0Zjg1Y2JkZGRiMGQu LmM3NjBjYzViMzM4OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVf ZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCkBAIC00 MDgsNiArNDA4LDcgQEAgc3RhdGljIHZvaWQgcHJpbnRfZXJyb3JfYnVmZmVycyhzdHJ1Y3QgZHJt X2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAogc3RhdGljIHZvaWQgZXJyb3JfcHJpbnRfaW5zdGRv bmUoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIAkJCQkgY29uc3Qgc3RydWN0 IGRybV9pOTE1X2Vycm9yX2VuZ2luZSAqZWUpCiB7CisJc3RydWN0IHNzZXVfZGV2X2luZm8gKnNz ZXUgPSAmUlVOVElNRV9JTkZPKG0tPmk5MTUpLT5zc2V1OwogCWludCBzbGljZTsKIAlpbnQgc3Vi c2xpY2U7CiAKQEAgLTQyMywxMiArNDI0LDEyIEBAIHN0YXRpYyB2b2lkIGVycm9yX3ByaW50X2lu c3Rkb25lKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCiAJaWYgKElOVEVMX0dF TihtLT5pOTE1KSA8PSA2KQogCQlyZXR1cm47CiAKLQlmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9z dWJzbGljZShtLT5pOTE1LCBzbGljZSwgc3Vic2xpY2UpCisJZm9yX2VhY2hfaW5zdGRvbmVfc2xp Y2Vfc3Vic2xpY2UobS0+aTkxNSwgc3NldSwgc2xpY2UsIHN1YnNsaWNlKQogCQllcnJfcHJpbnRm KG0sICIgIFNBTVBMRVJfSU5TVERPTkVbJWRdWyVkXTogMHglMDh4XG4iLAogCQkJICAgc2xpY2Us IHN1YnNsaWNlLAogCQkJICAgZWUtPmluc3Rkb25lLnNhbXBsZXJbc2xpY2VdW3N1YnNsaWNlXSk7 CiAKLQlmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShtLT5pOTE1LCBzbGljZSwgc3Vi c2xpY2UpCisJZm9yX2VhY2hfaW5zdGRvbmVfc2xpY2Vfc3Vic2xpY2UobS0+aTkxNSwgc3NldSwg c2xpY2UsIHN1YnNsaWNlKQogCQllcnJfcHJpbnRmKG0sICIgIFJPV19JTlNURE9ORVslZF1bJWRd OiAweCUwOHhcbiIsCiAJCQkgICBzbGljZSwgc3Vic2xpY2UsCiAJCQkgICBlZS0+aW5zdGRvbmUu cm93W3NsaWNlXVtzdWJzbGljZV0pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9xdWVyeS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9xdWVyeS5jCmluZGV4IDdi NzAxNjE3MTA1Ny4uYWM4YWM1OWM0ODYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3F1ZXJ5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9xdWVyeS5jCkBA IC0zNyw4ICszNyw2IEBAIHN0YXRpYyBpbnQgcXVlcnlfdG9wb2xvZ3lfaW5mbyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNz ZXUgPSAmUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcXVl cnlfdG9wb2xvZ3lfaW5mbyB0b3BvOwogCXUzMiBzbGljZV9sZW5ndGgsIHN1YnNsaWNlX2xlbmd0 aCwgZXVfbGVuZ3RoLCB0b3RhbF9sZW5ndGg7Ci0JdTggc3Vic2xpY2Vfc3RyaWRlID0gR0VOX1NT RVVfU1RSSURFKHNzZXUtPm1heF9zdWJzbGljZXMpOwotCXU4IGV1X3N0cmlkZSA9IEdFTl9TU0VV X1NUUklERShzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSk7CiAJaW50IHJldDsKIAogCWlmIChx dWVyeV9pdGVtLT5mbGFncyAhPSAwKQpAQCAtNTAsOCArNDgsOCBAQCBzdGF0aWMgaW50IHF1ZXJ5 X3RvcG9sb2d5X2luZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCUJVSUxE X0JVR19PTihzaXplb2YodTgpICE9IHNpemVvZihzc2V1LT5zbGljZV9tYXNrKSk7CiAKIAlzbGlj ZV9sZW5ndGggPSBzaXplb2Yoc3NldS0+c2xpY2VfbWFzayk7Ci0Jc3Vic2xpY2VfbGVuZ3RoID0g c3NldS0+bWF4X3NsaWNlcyAqIHN1YnNsaWNlX3N0cmlkZTsKLQlldV9sZW5ndGggPSBzc2V1LT5t YXhfc2xpY2VzICogc3NldS0+bWF4X3N1YnNsaWNlcyAqIGV1X3N0cmlkZTsKKwlzdWJzbGljZV9s ZW5ndGggPSBzc2V1LT5tYXhfc2xpY2VzICogc3NldS0+c3Nfc3RyaWRlOworCWV1X2xlbmd0aCA9 IHNzZXUtPm1heF9zbGljZXMgKiBzc2V1LT5tYXhfc3Vic2xpY2VzICogc3NldS0+ZXVfc3RyaWRl OwogCXRvdGFsX2xlbmd0aCA9IHNpemVvZih0b3BvKSArIHNsaWNlX2xlbmd0aCArIHN1YnNsaWNl X2xlbmd0aCArCiAJCSAgICAgICBldV9sZW5ndGg7CiAKQEAgLTY5LDkgKzY3LDkgQEAgc3RhdGlj IGludCBxdWVyeV90b3BvbG9neV9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAl0b3BvLm1heF9ldXNfcGVyX3N1YnNsaWNlID0gc3NldS0+bWF4X2V1c19wZXJfc3Vic2xp Y2U7CiAKIAl0b3BvLnN1YnNsaWNlX29mZnNldCA9IHNsaWNlX2xlbmd0aDsKLQl0b3BvLnN1YnNs aWNlX3N0cmlkZSA9IHN1YnNsaWNlX3N0cmlkZTsKKwl0b3BvLnN1YnNsaWNlX3N0cmlkZSA9IHNz ZXUtPnNzX3N0cmlkZTsKIAl0b3BvLmV1X29mZnNldCA9IHNsaWNlX2xlbmd0aCArIHN1YnNsaWNl X2xlbmd0aDsKLQl0b3BvLmV1X3N0cmlkZSA9IGV1X3N0cmlkZTsKKwl0b3BvLmV1X3N0cmlkZSA9 IHNzZXUtPmV1X3N0cmlkZTsKIAogCWlmIChfX2NvcHlfdG9fdXNlcih1NjRfdG9fdXNlcl9wdHIo cXVlcnlfaXRlbS0+ZGF0YV9wdHIpLAogCQkJICAgJnRvcG8sIHNpemVvZih0b3BvKSkpCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYwppbmRleCA5N2Y3NDI1MzBmYTEuLjM2 MjVmNzc3ZjNhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNl X2luZm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jCkBA IC05Miw5ICs5Miw5IEBAIHN0YXRpYyB2b2lkIHNzZXVfZHVtcChjb25zdCBzdHJ1Y3Qgc3NldV9k ZXZfaW5mbyAqc3NldSwgc3RydWN0IGRybV9wcmludGVyICpwKQogCQkgICBod2VpZ2h0OChzc2V1 LT5zbGljZV9tYXNrKSwgc3NldS0+c2xpY2VfbWFzayk7CiAJZHJtX3ByaW50ZihwLCAic3Vic2xp Y2UgdG90YWw6ICV1XG4iLCBpbnRlbF9zc2V1X3N1YnNsaWNlX3RvdGFsKHNzZXUpKTsKIAlmb3Ig KHMgPSAwOyBzIDwgc3NldS0+bWF4X3NsaWNlczsgcysrKSB7Ci0JCWRybV9wcmludGYocCwgInNs aWNlJWQ6ICV1IHN1YnNsaWNlcywgbWFzaz0lMDR4XG4iLAorCQlkcm1fcHJpbnRmKHAsICJzbGlj ZSVkOiAldSBzdWJzbGljZXMsIG1hc2s9JTA4eFxuIiwKIAkJCSAgIHMsIGludGVsX3NzZXVfc3Vi c2xpY2VzX3Blcl9zbGljZShzc2V1LCBzKSwKLQkJCSAgIHNzZXUtPnN1YnNsaWNlX21hc2tbc10p OworCQkJICAgaW50ZWxfc3NldV9nZXRfc3Vic2xpY2VzKHNzZXUsIHMpKTsKIAl9CiAJZHJtX3By aW50ZihwLCAiRVUgdG90YWw6ICV1XG4iLCBzc2V1LT5ldV90b3RhbCk7CiAJZHJtX3ByaW50Zihw LCAiRVUgcGVyIHN1YnNsaWNlOiAldVxuIiwgc3NldS0+ZXVfcGVyX3N1YnNsaWNlKTsKQEAgLTEx NywxMCArMTE3LDkgQEAgdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19kdW1wX3J1bnRpbWUoY29uc3Qg c3RydWN0IGludGVsX3J1bnRpbWVfaW5mbyAqaW5mbywKIHN0YXRpYyBpbnQgc3NldV9ldV9pZHgo Y29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsIGludCBzbGljZSwKIAkJICAgICAgIGlu dCBzdWJzbGljZSkKIHsKLQlpbnQgc3Vic2xpY2Vfc3RyaWRlID0gR0VOX1NTRVVfU1RSSURFKHNz ZXUtPm1heF9ldXNfcGVyX3N1YnNsaWNlKTsKLQlpbnQgc2xpY2Vfc3RyaWRlID0gc3NldS0+bWF4 X3N1YnNsaWNlcyAqIHN1YnNsaWNlX3N0cmlkZTsKKwlpbnQgc2xpY2Vfc3RyaWRlID0gc3NldS0+ bWF4X3N1YnNsaWNlcyAqIHNzZXUtPmV1X3N0cmlkZTsKIAotCXJldHVybiBzbGljZSAqIHNsaWNl X3N0cmlkZSArIHN1YnNsaWNlICogc3Vic2xpY2Vfc3RyaWRlOworCXJldHVybiBzbGljZSAqIHNs aWNlX3N0cmlkZSArIHN1YnNsaWNlICogc3NldS0+ZXVfc3RyaWRlOwogfQogCiBzdGF0aWMgdTE2 IHNzZXVfZ2V0X2V1cyhjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwgaW50IHNsaWNl LApAQCAtMTI5LDcgKzEyOCw3IEBAIHN0YXRpYyB1MTYgc3NldV9nZXRfZXVzKGNvbnN0IHN0cnVj dCBzc2V1X2Rldl9pbmZvICpzc2V1LCBpbnQgc2xpY2UsCiAJaW50IGksIG9mZnNldCA9IHNzZXVf ZXVfaWR4KHNzZXUsIHNsaWNlLCBzdWJzbGljZSk7CiAJdTE2IGV1X21hc2sgPSAwOwogCi0JZm9y IChpID0gMDsgaSA8IEdFTl9TU0VVX1NUUklERShzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSk7 IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBzc2V1LT5ldV9zdHJpZGU7IGkrKykgewogCQlldV9t YXNrIHw9ICgodTE2KXNzZXUtPmV1X21hc2tbb2Zmc2V0ICsgaV0pIDw8CiAJCQkoaSAqIEJJVFNf UEVSX0JZVEUpOwogCX0KQEAgLTE0Miw3ICsxNDEsNyBAQCBzdGF0aWMgdm9pZCBzc2V1X3NldF9l dXMoc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsIGludCBzbGljZSwgaW50IHN1YnNsaWNlLAog ewogCWludCBpLCBvZmZzZXQgPSBzc2V1X2V1X2lkeChzc2V1LCBzbGljZSwgc3Vic2xpY2UpOwog Ci0JZm9yIChpID0gMDsgaSA8IEdFTl9TU0VVX1NUUklERShzc2V1LT5tYXhfZXVzX3Blcl9zdWJz bGljZSk7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBzc2V1LT5ldV9zdHJpZGU7IGkrKykgewog CQlzc2V1LT5ldV9tYXNrW29mZnNldCArIGldID0KIAkJCShldV9tYXNrID4+IChCSVRTX1BFUl9C WVRFICogaSkpICYgMHhmZjsKIAl9CkBAIC0xNTksOSArMTU4LDkgQEAgdm9pZCBpbnRlbF9kZXZp Y2VfaW5mb19kdW1wX3RvcG9sb2d5KGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LAog CX0KIAogCWZvciAocyA9IDA7IHMgPCBzc2V1LT5tYXhfc2xpY2VzOyBzKyspIHsKLQkJZHJtX3By aW50ZihwLCAic2xpY2UlZDogJXUgc3Vic2xpY2UocykgKDB4JWhoeCk6XG4iLAorCQlkcm1fcHJp bnRmKHAsICJzbGljZSVkOiAldSBzdWJzbGljZShzKSAoMHglMDh4KTpcbiIsCiAJCQkgICBzLCBp bnRlbF9zc2V1X3N1YnNsaWNlc19wZXJfc2xpY2Uoc3NldSwgcyksCi0JCQkgICBzc2V1LT5zdWJz bGljZV9tYXNrW3NdKTsKKwkJCSAgIGludGVsX3NzZXVfZ2V0X3N1YnNsaWNlcyhzc2V1LCBzKSk7 CiAKIAkJZm9yIChzcyA9IDA7IHNzIDwgc3NldS0+bWF4X3N1YnNsaWNlczsgc3MrKykgewogCQkJ dTE2IGVuYWJsZWRfZXVzID0gc3NldV9nZXRfZXVzKHNzZXUsIHMsIHNzKTsKQEAgLTE5MCwxNSAr MTg5LDEwIEBAIHN0YXRpYyB2b2lkIGdlbjExX3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAl1OCBldV9lbjsKIAlpbnQgczsKIAotCWlmIChJU19FTEtI QVJUTEFLRShkZXZfcHJpdikpIHsKLQkJc3NldS0+bWF4X3NsaWNlcyA9IDE7Ci0JCXNzZXUtPm1h eF9zdWJzbGljZXMgPSA0OwotCQlzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSA9IDg7Ci0JfSBl bHNlIHsKLQkJc3NldS0+bWF4X3NsaWNlcyA9IDE7Ci0JCXNzZXUtPm1heF9zdWJzbGljZXMgPSA4 OwotCQlzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSA9IDg7Ci0JfQorCWlmIChJU19FTEtIQVJU TEFLRShkZXZfcHJpdikpCisJCWludGVsX3NzZXVfc2V0X2luZm8oc3NldSwgMSwgNCwgOCk7CisJ ZWxzZQorCQlpbnRlbF9zc2V1X3NldF9pbmZvKHNzZXUsIDEsIDgsIDgpOwogCiAJc19lbiA9IEk5 MTVfUkVBRChHRU4xMV9HVF9TTElDRV9FTkFCTEUpICYgR0VOMTFfR1RfU19FTkFfTUFTSzsKIAlz c19lbiA9IH5JOTE1X1JFQUQoR0VOMTFfR1RfU1VCU0xJQ0VfRElTQUJMRSk7CkBAIC0yMDcsMTUg KzIwMSwxNSBAQCBzdGF0aWMgdm9pZCBnZW4xMV9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlmb3IgKHMgPSAwOyBzIDwgc3NldS0+bWF4X3NsaWNl czsgcysrKSB7CiAJCWlmIChzX2VuICYgQklUKHMpKSB7Ci0JCQlpbnQgc3NfaWR4ID0gc3NldS0+ bWF4X3N1YnNsaWNlcyAqIHM7CiAJCQlpbnQgc3M7CiAKIAkJCXNzZXUtPnNsaWNlX21hc2sgfD0g QklUKHMpOwotCQkJc3NldS0+c3Vic2xpY2VfbWFza1tzXSA9IChzc19lbiA+PiBzc19pZHgpICYg c3NfZW5fbWFzazsKLQkJCWZvciAoc3MgPSAwOyBzcyA8IHNzZXUtPm1heF9zdWJzbGljZXM7IHNz KyspIHsKLQkJCQlpZiAoc3NldS0+c3Vic2xpY2VfbWFza1tzXSAmIEJJVChzcykpCisKKwkJCWlu dGVsX3NzZXVfc2V0X3N1YnNsaWNlcyhzc2V1LCBzLCBzc19lbl9tYXNrKTsKKworCQkJZm9yIChz cyA9IDA7IHNzIDwgc3NldS0+bWF4X3N1YnNsaWNlczsgc3MrKykKKwkJCQlpZiAoaW50ZWxfc3Nl dV9oYXNfc3Vic2xpY2Uoc3NldSwgcywgc3MpKQogCQkJCQlzc2V1X3NldF9ldXMoc3NldSwgcywg c3MsIGV1X2VuKTsKLQkJCX0KIAkJfQogCX0KIAlzc2V1LT5ldV9wZXJfc3Vic2xpY2UgPSBod2Vp Z2h0OChldV9lbik7CkBAIC0yMzUsMjMgKzIyOSwxMCBAQCBzdGF0aWMgdm9pZCBnZW4xMF9zc2V1 X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJY29uc3QgaW50 IGV1X21hc2sgPSAweGZmOwogCXUzMiBzdWJzbGljZV9tYXNrLCBldV9lbjsKIAorCWludGVsX3Nz ZXVfc2V0X2luZm8oc3NldSwgNiwgNCwgOCk7CisKIAlzc2V1LT5zbGljZV9tYXNrID0gKGZ1c2Uy ICYgR0VOMTBfRjJfU19FTkFfTUFTSykgPj4KIAkJCSAgICBHRU4xMF9GMl9TX0VOQV9TSElGVDsK LQlzc2V1LT5tYXhfc2xpY2VzID0gNjsKLQlzc2V1LT5tYXhfc3Vic2xpY2VzID0gNDsKLQlzc2V1 LT5tYXhfZXVzX3Blcl9zdWJzbGljZSA9IDg7Ci0KLQlzdWJzbGljZV9tYXNrID0gKDEgPDwgNCkg LSAxOwotCXN1YnNsaWNlX21hc2sgJj0gfigoZnVzZTIgJiBHRU4xMF9GMl9TU19ESVNfTUFTSykg Pj4KLQkJCSAgIEdFTjEwX0YyX1NTX0RJU19TSElGVCk7Ci0KLQkvKgotCSAqIFNsaWNlMCBjYW4g aGF2ZSB1cCB0byAzIHN1YnNsaWNlcywgYnV0IHRoZXJlIGFyZSBvbmx5IDIgaW4KLQkgKiBzbGlj ZTEvMi4KLQkgKi8KLQlzc2V1LT5zdWJzbGljZV9tYXNrWzBdID0gc3Vic2xpY2VfbWFzazsKLQlm b3IgKHMgPSAxOyBzIDwgc3NldS0+bWF4X3NsaWNlczsgcysrKQotCQlzc2V1LT5zdWJzbGljZV9t YXNrW3NdID0gc3Vic2xpY2VfbWFzayAmIDB4MzsKIAogCS8qIFNsaWNlMCAqLwogCWV1X2VuID0g fkk5MTVfUkVBRChHRU44X0VVX0RJU0FCTEUwKTsKQEAgLTI3NiwxNCArMjU3LDIyIEBAIHN0YXRp YyB2b2lkIGdlbjEwX3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAlldV9lbiA9IH5JOTE1X1JFQUQoR0VOMTBfRVVfRElTQUJMRTMpOwogCXNzZXVfc2V0 X2V1cyhzc2V1LCA1LCAxLCBldV9lbiAmIGV1X21hc2spOwogCi0JLyogRG8gYSBzZWNvbmQgcGFz cyB3aGVyZSB3ZSBtYXJrIHRoZSBzdWJzbGljZXMgZGlzYWJsZWQgaWYgYWxsIHRoZWlyCi0JICog ZXVzIGFyZSBvZmYuCi0JICovCisJc3Vic2xpY2VfbWFzayA9ICgxIDw8IDQpIC0gMTsKKwlzdWJz bGljZV9tYXNrICY9IH4oKGZ1c2UyICYgR0VOMTBfRjJfU1NfRElTX01BU0spID4+CisJCQkgICBH RU4xMF9GMl9TU19ESVNfU0hJRlQpOworCiAJZm9yIChzID0gMDsgcyA8IHNzZXUtPm1heF9zbGlj ZXM7IHMrKykgewogCQlmb3IgKHNzID0gMDsgc3MgPCBzc2V1LT5tYXhfc3Vic2xpY2VzOyBzcysr KSB7CiAJCQlpZiAoc3NldV9nZXRfZXVzKHNzZXUsIHMsIHNzKSA9PSAwKQotCQkJCXNzZXUtPnN1 YnNsaWNlX21hc2tbc10gJj0gfkJJVChzcyk7CisJCQkJc3Vic2xpY2VfbWFzayAmPSB+QklUKHNz KTsKIAkJfQorCisJCS8qCisJCSAqIFNsaWNlMCBjYW4gaGF2ZSB1cCB0byAzIHN1YnNsaWNlcywg YnV0IHRoZXJlIGFyZSBvbmx5IDIgaW4KKwkJICogc2xpY2UxLzIuCisJCSAqLworCQlpbnRlbF9z c2V1X3NldF9zdWJzbGljZXMoc3NldSwgcywgcyA9PSAwID8gc3Vic2xpY2VfbWFzayA6CisJCQkJ CQkJICAgc3Vic2xpY2VfbWFzayAmIDB4Myk7CiAJfQogCiAJc3NldS0+ZXVfdG90YWwgPSBjb21w dXRlX2V1X3RvdGFsKHNzZXUpOwpAQCAtMzA5LDEzICsyOTgsMTIgQEAgc3RhdGljIHZvaWQgY2hl cnJ5dmlld19zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiB7CiAJc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmUlVOVElNRV9JTkZPKGRldl9wcml2 KS0+c3NldTsKIAl1MzIgZnVzZTsKKwl1OCBzdWJzbGljZV9tYXNrOwogCiAJZnVzZSA9IEk5MTVf UkVBRChDSFZfRlVTRV9HVCk7CiAKIAlzc2V1LT5zbGljZV9tYXNrID0gQklUKDApOwotCXNzZXUt Pm1heF9zbGljZXMgPSAxOwotCXNzZXUtPm1heF9zdWJzbGljZXMgPSAyOwotCXNzZXUtPm1heF9l dXNfcGVyX3N1YnNsaWNlID0gODsKKwlpbnRlbF9zc2V1X3NldF9pbmZvKHNzZXUsIDEsIDIsIDgp OwogCiAJaWYgKCEoZnVzZSAmIENIVl9GR1RfRElTQUJMRV9TUzApKSB7CiAJCXU4IGRpc2FibGVk X21hc2sgPQpAQCAtMzI0LDcgKzMxMiw3IEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfc3NldV9p bmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkJKCgoZnVzZSAm IENIVl9GR1RfRVVfRElTX1NTMF9SMV9NQVNLKSA+PgogCQkJICBDSFZfRkdUX0VVX0RJU19TUzBf UjFfU0hJRlQpIDw8IDQpOwogCi0JCXNzZXUtPnN1YnNsaWNlX21hc2tbMF0gfD0gQklUKDApOwor CQlzdWJzbGljZV9tYXNrIHw9IEJJVCgwKTsKIAkJc3NldV9zZXRfZXVzKHNzZXUsIDAsIDAsIH5k aXNhYmxlZF9tYXNrKTsKIAl9CiAKQEAgLTMzNSwxMCArMzIzLDEyIEBAIHN0YXRpYyB2b2lkIGNo ZXJyeXZpZXdfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCQkJKCgoZnVzZSAmIENIVl9GR1RfRVVfRElTX1NTMV9SMV9NQVNLKSA+PgogCQkJICBDSFZf RkdUX0VVX0RJU19TUzFfUjFfU0hJRlQpIDw8IDQpOwogCi0JCXNzZXUtPnN1YnNsaWNlX21hc2tb MF0gfD0gQklUKDEpOworCQlzdWJzbGljZV9tYXNrIHw9IEJJVCgxKTsKIAkJc3NldV9zZXRfZXVz KHNzZXUsIDAsIDEsIH5kaXNhYmxlZF9tYXNrKTsKIAl9CiAKKwlpbnRlbF9zc2V1X3NldF9zdWJz bGljZXMoc3NldSwgMCwgc3Vic2xpY2VfbWFzayk7CisKIAlzc2V1LT5ldV90b3RhbCA9IGNvbXB1 dGVfZXVfdG90YWwoc3NldSk7CiAKIAkvKgpAQCAtMzcxLDkgKzM2MSw4IEBAIHN0YXRpYyB2b2lk IGdlbjlfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CXNzZXUtPnNsaWNlX21hc2sgPSAoZnVzZTIgJiBHRU44X0YyX1NfRU5BX01BU0spID4+IEdFTjhf RjJfU19FTkFfU0hJRlQ7CiAKIAkvKiBCWFQgaGFzIGEgc2luZ2xlIHNsaWNlIGFuZCBhdCBtb3N0 IDMgc3Vic2xpY2VzLiAqLwotCXNzZXUtPm1heF9zbGljZXMgPSBJU19HRU45X0xQKGRldl9wcml2 KSA/IDEgOiAzOwotCXNzZXUtPm1heF9zdWJzbGljZXMgPSBJU19HRU45X0xQKGRldl9wcml2KSA/ IDMgOiA0OwotCXNzZXUtPm1heF9ldXNfcGVyX3N1YnNsaWNlID0gODsKKwlpbnRlbF9zc2V1X3Nl dF9pbmZvKHNzZXUsIElTX0dFTjlfTFAoZGV2X3ByaXYpID8gMSA6IDMsCisJCQkgICAgSVNfR0VO OV9MUChkZXZfcHJpdikgPyAzIDogNCwgOCk7CiAKIAkvKgogCSAqIFRoZSBzdWJzbGljZSBkaXNh YmxlIGZpZWxkIGlzIGdsb2JhbCwgaS5lLiBpdCBhcHBsaWVzCkBAIC0zOTIsMTQgKzM4MSwxNCBA QCBzdGF0aWMgdm9pZCBnZW45X3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIAkJCS8qIHNraXAgZGlzYWJsZWQgc2xpY2UgKi8KIAkJCWNvbnRpbnVlOwog Ci0JCXNzZXUtPnN1YnNsaWNlX21hc2tbc10gPSBzdWJzbGljZV9tYXNrOworCQlpbnRlbF9zc2V1 X3NldF9zdWJzbGljZXMoc3NldSwgcywgc3Vic2xpY2VfbWFzayk7CiAKIAkJZXVfZGlzYWJsZSA9 IEk5MTVfUkVBRChHRU45X0VVX0RJU0FCTEUocykpOwogCQlmb3IgKHNzID0gMDsgc3MgPCBzc2V1 LT5tYXhfc3Vic2xpY2VzOyBzcysrKSB7CiAJCQlpbnQgZXVfcGVyX3NzOwogCQkJdTggZXVfZGlz YWJsZWRfbWFzazsKIAotCQkJaWYgKCEoc3NldS0+c3Vic2xpY2VfbWFza1tzXSAmIEJJVChzcykp KQorCQkJaWYgKCFpbnRlbF9zc2V1X2hhc19zdWJzbGljZShzc2V1LCBzLCBzcykpCiAJCQkJLyog c2tpcCBkaXNhYmxlZCBzdWJzbGljZSAqLwogCQkJCWNvbnRpbnVlOwogCkBAIC00NzIsOSArNDYx LDcgQEAgc3RhdGljIHZvaWQgYnJvYWR3ZWxsX3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAogCWZ1c2UyID0gSTkxNV9SRUFEKEdFTjhfRlVTRTIpOwog CXNzZXUtPnNsaWNlX21hc2sgPSAoZnVzZTIgJiBHRU44X0YyX1NfRU5BX01BU0spID4+IEdFTjhf RjJfU19FTkFfU0hJRlQ7Ci0Jc3NldS0+bWF4X3NsaWNlcyA9IDM7Ci0Jc3NldS0+bWF4X3N1YnNs aWNlcyA9IDM7Ci0Jc3NldS0+bWF4X2V1c19wZXJfc3Vic2xpY2UgPSA4OworCWludGVsX3NzZXVf c2V0X2luZm8oc3NldSwgMywgMywgOCk7CiAKIAkvKgogCSAqIFRoZSBzdWJzbGljZSBkaXNhYmxl IGZpZWxkIGlzIGdsb2JhbCwgaS5lLiBpdCBhcHBsaWVzCkBAIC01MDEsMTggKzQ4OCwxOSBAQCBz dGF0aWMgdm9pZCBicm9hZHdlbGxfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogCQkJLyogc2tpcCBkaXNhYmxlZCBzbGljZSAqLwogCQkJY29udGludWU7 CiAKLQkJc3NldS0+c3Vic2xpY2VfbWFza1tzXSA9IHN1YnNsaWNlX21hc2s7CisJCWludGVsX3Nz ZXVfc2V0X3N1YnNsaWNlcyhzc2V1LCBzLCBzdWJzbGljZV9tYXNrKTsKIAogCQlmb3IgKHNzID0g MDsgc3MgPCBzc2V1LT5tYXhfc3Vic2xpY2VzOyBzcysrKSB7CiAJCQl1OCBldV9kaXNhYmxlZF9t YXNrOwogCQkJdTMyIG5fZGlzYWJsZWQ7CiAKLQkJCWlmICghKHNzZXUtPnN1YnNsaWNlX21hc2tb c10gJiBCSVQoc3MpKSkKKwkJCWlmICghaW50ZWxfc3NldV9oYXNfc3Vic2xpY2Uoc3NldSwgcywg c3MpKQogCQkJCS8qIHNraXAgZGlzYWJsZWQgc3Vic2xpY2UgKi8KIAkJCQljb250aW51ZTsKIAog CQkJZXVfZGlzYWJsZWRfbWFzayA9Ci0JCQkJZXVfZGlzYWJsZVtzXSA+PiAoc3MgKiBzc2V1LT5t YXhfZXVzX3Blcl9zdWJzbGljZSk7CisJCQkJZXVfZGlzYWJsZVtzXSA+PgorCQkJCQkoc3MgKiBz c2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSk7CiAKIAkJCXNzZXVfc2V0X2V1cyhzc2V1LCBzLCBz cywgfmV1X2Rpc2FibGVkX21hc2spOwogCkBAIC01NTIsNiArNTQwLDcgQEAgc3RhdGljIHZvaWQg aGFzd2VsbF9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAJc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmUlVOVElNRV9JTkZPKGRldl9wcml2KS0+ c3NldTsKIAl1MzIgZnVzZTE7CiAJaW50IHMsIHNzOworCXUzMiBzdWJzbGljZV9tYXNrOwogCiAJ LyoKIAkgKiBUaGVyZSBpc24ndCBhIHJlZ2lzdGVyIHRvIHRlbGwgdXMgaG93IG1hbnkgc2xpY2Vz L3N1YnNsaWNlcy4gV2UKQEAgLTU2MywyMiArNTUyLDE4IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxf c3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkvKiBm YWxsIHRocm91Z2ggKi8KIAljYXNlIDE6CiAJCXNzZXUtPnNsaWNlX21hc2sgPSBCSVQoMCk7Ci0J CXNzZXUtPnN1YnNsaWNlX21hc2tbMF0gPSBCSVQoMCk7CisJCXN1YnNsaWNlX21hc2sgPSBCSVQo MCk7CiAJCWJyZWFrOwogCWNhc2UgMjoKIAkJc3NldS0+c2xpY2VfbWFzayA9IEJJVCgwKTsKLQkJ c3NldS0+c3Vic2xpY2VfbWFza1swXSA9IEJJVCgwKSB8IEJJVCgxKTsKKwkJc3Vic2xpY2VfbWFz ayA9IEJJVCgwKSB8IEJJVCgxKTsKIAkJYnJlYWs7CiAJY2FzZSAzOgogCQlzc2V1LT5zbGljZV9t YXNrID0gQklUKDApIHwgQklUKDEpOwotCQlzc2V1LT5zdWJzbGljZV9tYXNrWzBdID0gQklUKDAp IHwgQklUKDEpOwotCQlzc2V1LT5zdWJzbGljZV9tYXNrWzFdID0gQklUKDApIHwgQklUKDEpOwor CQlzdWJzbGljZV9tYXNrID0gQklUKDApIHwgQklUKDEpOwogCQlicmVhazsKIAl9CiAKLQlzc2V1 LT5tYXhfc2xpY2VzID0gaHdlaWdodDgoc3NldS0+c2xpY2VfbWFzayk7Ci0Jc3NldS0+bWF4X3N1 YnNsaWNlcyA9IGh3ZWlnaHQ4KHNzZXUtPnN1YnNsaWNlX21hc2tbMF0pOwotCiAJZnVzZTEgPSBJ OTE1X1JFQUQoSFNXX1BBVlBfRlVTRTEpOwogCXN3aXRjaCAoKGZ1c2UxICYgSFNXX0YxX0VVX0RJ U19NQVNLKSA+PiBIU1dfRjFfRVVfRElTX1NISUZUKSB7CiAJZGVmYXVsdDoKQEAgLTU5NSw5ICs1 ODAsMTQgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCXNzZXUtPmV1X3Blcl9zdWJzbGljZSA9IDY7CiAJCWJy ZWFrOwogCX0KLQlzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSA9IHNzZXUtPmV1X3Blcl9zdWJz bGljZTsKKworCWludGVsX3NzZXVfc2V0X2luZm8oc3NldSwgaHdlaWdodDgoc3NldS0+c2xpY2Vf bWFzayksCisJCQkgICAgaHdlaWdodDgoc3Vic2xpY2VfbWFzayksCisJCQkgICAgc3NldS0+ZXVf cGVyX3N1YnNsaWNlKTsKIAogCWZvciAocyA9IDA7IHMgPCBzc2V1LT5tYXhfc2xpY2VzOyBzKysp IHsKKwkJaW50ZWxfc3NldV9zZXRfc3Vic2xpY2VzKHNzZXUsIHMsIHN1YnNsaWNlX21hc2spOwor CiAJCWZvciAoc3MgPSAwOyBzcyA8IHNzZXUtPm1heF9zdWJzbGljZXM7IHNzKyspIHsKIAkJCXNz ZXVfc2V0X2V1cyhzc2V1LCBzLCBzcywKIAkJCQkgICAgICgxVUwgPDwgc3NldS0+ZXVfcGVyX3N1 YnNsaWNlKSAtIDEpOwotLSAKMi4yMS4wLjUuZ2FlYjU4MmE5ODMKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==