From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v2 13/22] drm/i915: Update reset path to fix incomplete requests Date: Wed, 7 Sep 2016 15:45:07 +0100 Message-ID: <20160907144516.29495-13-chris@chris-wilson.co.uk> References: <20160905130438.31046-1-chris@chris-wilson.co.uk> <20160907144516.29495-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 mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 949C76EB18 for ; Wed, 7 Sep 2016 14:45:38 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id a6so3329880wmc.2 for ; Wed, 07 Sep 2016 07:45:38 -0700 (PDT) In-Reply-To: <20160907144516.29495-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 Cc: mika.kuoppala@intel.com List-Id: intel-gfx@lists.freedesktop.org VXBkYXRlIHJlc2V0IHBhdGggaW4gcHJlcGFyYXRpb24gZm9yIGVuZ2luZSByZXNldCB3aGljaCBy ZXF1aXJlcwppZGVudGlmaWNhdGlvbiBvZiBpbmNvbXBsZXRlIHJlcXVlc3RzIGFuZCBhc3NvY2lh dGVkIGNvbnRleHQgYW5kIGZpeGluZwp0aGVpciBzdGF0ZSBzbyB0aGF0IGVuZ2luZSBjYW4gcmVz dW1lIGNvcnJlY3RseSBhZnRlciByZXNldC4KClRoZSByZXF1ZXN0IHRoYXQgY2F1c2VkIHRoZSBo YW5nIHdpbGwgYmUgc2tpcHBlZCBhbmQgaGVhZCBpcyByZXNldCB0byB0aGUKc3RhcnQgb2YgYnJl YWRjcnVtYi4gVGhpcyBhbGxvd3MgdXMgdG8gcmVzdW1lIGZyb20gd2hlcmUgd2UgbGVmdC1vZmYu ClNpbmNlIHRoaXMgcmVxdWVzdCBkaWRuJ3QgY29tcGxldGUgbm9ybWFsbHkgd2UgYWxzbyBuZWVk IHRvIGNsZWFudXAgZWxzcApxdWV1ZSBtYW51YWxseS4gVGhpcyBpcyB2aXRhbCBpZiB3ZSBlbXBs b3kgbm9uYmxvY2tpbmcgcmVxdWVzdApzdWJtaXNzaW9uIHdoZXJlIHdlIG1heSBoYXZlIGEgd2Vi IG9mIGRlcGVuZGVuY2llcyB1cG9uIHRoZSBodW5nIHJlcXVlc3QKYW5kIHNvIGFkdmFuY2luZyB0 aGUgc2Vxbm8gbWFudWFsbHkgaXMgbm8gbG9uZ2VyIHRyaXZpYWwuCgpBQkk6IGdlbV9yZXNldF9z dGF0cyAvIERSTV9JT0NUTF9JOTE1X0dFVF9SRVNFVF9TVEFUUwoKV2UgY2hhbmdlIHRoZSB3YXkg d2UgY291bnQgcGVuZGluZyBiYXRjaGVzLiBPbmx5IHRoZSBhY3RpdmUgY29udGV4dAppbnZvbHZl ZCBpbiB0aGUgcmVzZXQgaXMgbWFya2VkIGFzIGVpdGhlciBpbm5vY2VudCBvciBndWlsdHksIGFu ZCBub3QKbWFyayB0aGUgZW50aXJlIHdvcmxkIGFzIHBlbmRpbmcuIEJ5IGluc3BlY3Rpb24gdGhp cyBvbmx5IGFmZmVjdHMKaWd0L2dlbV9yZXNldF9zdGF0cyAod2hpY2ggYXNzdW1lcyBpbXBsZW1l bnRhdGlvbiBkZXRhaWxzKSBhbmQgbm90CnBpZ2xpdC4KCkFSQl9yb2J1c3RuZXNzIGdpdmVzIHRo aXMgZ3VpZGUgb24gaG93IHdlIGV4cGVjdCB0aGUgdXNlciBvZiB0aGlzCmludGVyZmFjZSB0byBi ZWhhdmU6CgogKiBQcm92aWRlIGEgbWVjaGFuaXNtIGZvciBhbiBPcGVuR0wgYXBwbGljYXRpb24g dG8gbGVhcm4gYWJvdXQKICAgZ3JhcGhpY3MgcmVzZXRzIHRoYXQgYWZmZWN0IHRoZSBjb250ZXh0 LiAgV2hlbiBhIGdyYXBoaWNzIHJlc2V0CiAgIG9jY3VycywgdGhlIE9wZW5HTCBjb250ZXh0IGJl Y29tZXMgdW51c2FibGUgYW5kIHRoZSBhcHBsaWNhdGlvbgogICBtdXN0IGNyZWF0ZSBhIG5ldyBj b250ZXh0IHRvIGNvbnRpbnVlIG9wZXJhdGlvbi4gRGV0ZWN0aW5nIGEKICAgZ3JhcGhpY3MgcmVz ZXQgaGFwcGVucyB0aHJvdWdoIGFuIGluZXhwZW5zaXZlIHF1ZXJ5LgoKQW5kIHdpdGggcmVnYXJk cyB0byB0aGUgYWN0dWFsIG1lYW5pbmcgb2YgdGhlIHJlc2V0IHZhbHVlczoKCiAgIENlcnRhaW4g ZXZlbnRzIGNhbiByZXN1bHQgaW4gYSByZXNldCBvZiB0aGUgR0wgY29udGV4dC4gU3VjaCBhIHJl c2V0CiAgIGNhdXNlcyBhbGwgY29udGV4dCBzdGF0ZSB0byBiZSBsb3N0LiBSZWNvdmVyeSBmcm9t IHN1Y2ggZXZlbnRzCiAgIHJlcXVpcmVzIHJlY3JlYXRpb24gb2YgYWxsIG9iamVjdHMgaW4gdGhl IGFmZmVjdGVkIGNvbnRleHQuIFRoZQogICBjdXJyZW50IHN0YXR1cyBvZiB0aGUgZ3JhcGhpY3Mg cmVzZXQgc3RhdGUgaXMgcmV0dXJuZWQgYnkKCgllbnVtIEdldEdyYXBoaWNzUmVzZXRTdGF0dXNB UkIoKTsKCiAgIFRoZSBzeW1ib2xpYyBjb25zdGFudCByZXR1cm5lZCBpbmRpY2F0ZXMgaWYgdGhl IEdMIGNvbnRleHQgaGFzIGJlZW4KICAgaW4gYSByZXNldCBzdGF0ZSBhdCBhbnkgcG9pbnQgc2lu Y2UgdGhlIGxhc3QgY2FsbCB0bwogICBHZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCLiBOT19FUlJP UiBpbmRpY2F0ZXMgdGhhdCB0aGUgR0wgY29udGV4dAogICBoYXMgbm90IGJlZW4gaW4gYSByZXNl dCBzdGF0ZSBzaW5jZSB0aGUgbGFzdCBjYWxsLgogICBHVUlMVFlfQ09OVEVYVF9SRVNFVF9BUkIg aW5kaWNhdGVzIHRoYXQgYSByZXNldCBoYXMgYmVlbiBkZXRlY3RlZAogICB0aGF0IGlzIGF0dHJp YnV0YWJsZSB0byB0aGUgY3VycmVudCBHTCBjb250ZXh0LgogICBJTk5PQ0VOVF9DT05URVhUX1JF U0VUX0FSQiBpbmRpY2F0ZXMgYSByZXNldCBoYXMgYmVlbiBkZXRlY3RlZCB0aGF0CiAgIGlzIG5v dCBhdHRyaWJ1dGFibGUgdG8gdGhlIGN1cnJlbnQgR0wgY29udGV4dC4KICAgVU5LTk9XTl9DT05U RVhUX1JFU0VUX0FSQiBpbmRpY2F0ZXMgYSBkZXRlY3RlZCBncmFwaGljcyByZXNldCB3aG9zZQog ICBjYXVzZSBpcyB1bmtub3duLgoKVGhlIGxhbmd1YWdlIGhlcmUgaXMgZXhwbGljaXQgaW4gdGhh dCB3ZSBtdXN0IG1hcmsgdXAgdGhlIGd1aWx0eSBiYXRjaCwKYnV0IGlzIGxvb3NlIGVub3VnaCBm b3IgdXMgdG8gcmVsYXggdGhlIGlubm9jZW50IChpLmUuIHBlbmRpbmcpCmFjY291bnRpbmcgYXMg b25seSB0aGUgYWN0aXZlIGJhdGNoZXMgYXJlIGludm9sdmVkIHdpdGggdGhlIHJlc2V0LgoKSW4g dGhlIGZ1dHVyZSwgd2UgYXJlIGxvb2tpbmcgdG93YXJkcyBzaW5nbGUgZW5naW5lIHJlc2V0dGlu ZyAod2l0aAptaW5pbWFsIGxvY2tpbmcpLCB3aGVyZSBpdCBzZWVtcyBpbmFwcHJvcHJpYXRlIHRv IG1hcmsgdGhlIGVudGlyZSB3b3JsZAphcyBpbm5vY2VudCBzaW5jZSB0aGUgcmVzZXQgb2NjdXJy ZWQgb24gYSBkaWZmZXJlbnQgZW5naW5lLiBSZWR1Y2luZyB0aGUKaW5mb3JtYXRpb24gYXZhaWxh YmxlIG1lYW5zIHdlIG9ubHkgaGF2ZSB0byBlbmNvdW50ZXIgdGhlIHBhaW4gb25jZSwgYW5kCmFs c28gcmVkdWNlcyB0aGUgaW5mb3JtYXRpb24gbGVha2luZyBmcm9tIG9uZSBjb250ZXh0IHRvIGFu b3RoZXIuCgp2MjogTGVnYWN5IHJpbmdidWZmZXIgc3VibWlzc2lvbiByZXF1aXJlZCBhIHJlc2V0 IGZvbGxvd2luZyBoaWJlcm5hdGlvbiwKb3IgZWxzZSB3ZSByZXN0b3JlIHN0YWxlIHZhbHVlcyB0 byB0aGUgUklOR19IRUFEIGFuZCB3YWxrZWQgb3ZlcgpzdG9sZW4gZ2FyYmFnZS4KCnYzOiBHdUMg cmVxdWlyZXMgcmVwbGF5aW5nIHRoZSByZXF1ZXN0cyBhZnRlciBhIHJlc2V0LgoKdjQ6IFJlc3Rv cmUgZW5naW5lIElSUSBhZnRlciByZXNldCAoc28gd2FpdGVycyB3aWxsIGJlIHdva2VuISkKICAg IFJlYXJtIGhhbmdjaGVjayBpZiByZXNldHRpbmcgd2l0aCBhIHdhaXRlci4KCkNjOiBUdnJ0a28g VXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpDYzogTWlrYSBLdW9wcGFsYSA8bWlr YS5rdW9wcGFsYUBpbnRlbC5jb20+CkNjOiBBcnVuIFNpbHV2ZXJ5IDxhcnVuLnNpbHV2ZXJ5QGxp bnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13 aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAg ICAgIHwgICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAg fCAgIDUgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8IDEy MyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fY29udGV4dC5jICAgIHwgIDE2IC0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z3VjX3N1Ym1pc3Npb24uYyB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5n aW5lX2NzLmMgICAgIHwgIDE1ICsrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5j ICAgICAgICAgICB8ICA0OSArKysrKysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5oICAgICAgICAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5jICAgIHwgIDQ3ICsrKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmggICAgfCAgIDcgKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDE4MyBpbnNlcnRp b25zKCspLCA5OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCBjMWI4 OTBkYmQ2Y2MuLjJiMDcyN2QxNDY3ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC01NTks NyArNTU5LDYgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fZmluaShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCX0KIAogCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQlpOTE1X2dlbV9y ZXNldChkZXYpOwogCWk5MTVfZ2VtX2NsZWFudXBfZW5naW5lcyhkZXYpOwogCWk5MTVfZ2VtX2Nv bnRleHRfZmluaShkZXYpOwogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwpAQCAt MTU3OSw3ICsxNTc4LDcgQEAgc3RhdGljIGludCBpOTE1X2RybV9yZXN1bWUoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJaWYgKGk5MTVf Z2VtX2luaXRfaHcoZGV2KSkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byByZS1pbml0aWFsaXpl IEdQVSwgZGVjbGFyaW5nIHdlZGdlZCFcbiIpOwotCQlzZXRfYml0KEk5MTVfV0VER0VELCAmZGV2 X3ByaXYtPmdwdV9lcnJvci5mbGFncyk7CisJCWk5MTVfZ2VtX3NldF93ZWRnZWQoZGV2X3ByaXYp OwogCX0KIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIApAQCAtMTc1Niw4ICsx NzU1LDYgQEAgaW50IGk5MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCiAJcHJfbm90aWNlKCJkcm0vaTkxNTogUmVzZXR0aW5nIGNoaXAgYWZ0ZXIgZ3B1IGhhbmdc biIpOwogCi0JaTkxNV9nZW1fcmVzZXQoZGV2KTsKLQogCXJldCA9IGludGVsX2dwdV9yZXNldChk ZXZfcHJpdiwgQUxMX0VOR0lORVMpOwogCWlmIChyZXQpIHsKIAkJaWYgKHJldCAhPSAtRU5PREVW KQpAQCAtMTc2Nyw2ICsxNzY0LDcgQEAgaW50IGk5MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogCQlnb3RvIGVycm9yOwogCX0KIAorCWk5MTVfZ2VtX3Jlc2V0KGRl dl9wcml2KTsKIAlpbnRlbF9vdmVybGF5X3Jlc2V0KGRldl9wcml2KTsKIAogCS8qIE9rLCBub3cg Z2V0IHRoaW5ncyBnb2luZyBhZ2Fpbi4uLiAqLwpAQCAtMTgwMyw3ICsxODAxLDcgQEAgb3V0Ogog CXJldHVybiByZXQ7CiAKIGVycm9yOgotCXNldF9iaXQoSTkxNV9XRURHRUQsICZlcnJvci0+Zmxh Z3MpOworCWk5MTVfZ2VtX3NldF93ZWRnZWQoZGV2X3ByaXYpOwogCWdvdG8gb3V0OwogfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAyZTJmZDhhNzcyMzMuLmE2M2JmODIwYWE4ZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yMDI5LDYgKzIwMjksNyBAQCBzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSB7CiAKIAkvKiBBYnN0cmFjdCB0aGUgc3VibWlzc2lvbiBtZWNoYW5pc20gKGxl Z2FjeSByaW5nYnVmZmVyIG9yIGV4ZWNsaXN0cykgYXdheSAqLwogCXN0cnVjdCB7CisJCXZvaWQg KCpyZXN1bWUpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICopOwogCQl2b2lkICgqY2xlYW51cF9l bmdpbmUpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiAKIAkJLyoqCkBAIC0zMjYy LDcgKzMyNjMsOCBAQCBzdGF0aWMgaW5saW5lIHUzMiBpOTE1X3Jlc2V0X2NvdW50KHN0cnVjdCBp OTE1X2dwdV9lcnJvciAqZXJyb3IpCiAJcmV0dXJuIFJFQURfT05DRShlcnJvci0+cmVzZXRfY291 bnQpOwogfQogCi12b2lkIGk5MTVfZ2VtX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwor dm9pZCBpOTE1X2dlbV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwor dm9pZCBpOTE1X2dlbV9zZXRfd2VkZ2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dik7CiBib29sIGk5MTVfZ2VtX2NsZmx1c2hfb2JqZWN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosIGJvb2wgZm9yY2UpOwogaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9pbml0X2h3 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwpAQCAtMzM5MSw3ICszMzkzLDYgQEAgdm9pZCBpOTE1 X2dlbV9vYmplY3Rfc2F2ZV9iaXRfMTdfc3dpenpsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKTsKIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fY29udGV4dF9pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpOwogdm9pZCBpOTE1X2dlbV9jb250ZXh0X2xvc3Qoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaTkxNV9nZW1fY29udGV4dF9maW5pKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwotdm9pZCBpOTE1X2dlbV9jb250ZXh0X3Jlc2V0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpOwogaW50IGk5MTVfZ2VtX2NvbnRleHRfb3BlbihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwogdm9pZCBpOTE1X2dlbV9jb250ZXh0 X2Nsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7CiBp bnQgaTkxNV9zd2l0Y2hfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCAyMzA2OWEyZDI4NTAuLjY1YTY5YmJlMDIxZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0yNTU1LDI5ICsyNTU1LDgzIEBAIGk5MTVfZ2Vt X2ZpbmRfYWN0aXZlX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXJl dHVybiBOVUxMOwogfQogCi1zdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXNldF9lbmdpbmVfc3RhdHVz KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lkIHJlc2V0X3JlcXVl c3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQoreworCXZvaWQgKnZhZGRy ID0gcmVxdWVzdC0+cmluZy0+dmFkZHI7CisJdTMyIGhlYWQ7CisKKwkvKiBBcyB0aGlzIHJlcXVl c3QgbGlrZWx5IGRlcGVuZHMgb24gc3RhdGUgZnJvbSB0aGUgbG9zdAorCSAqIGNvbnRleHQsIGNs ZWFyIG91dCBhbGwgdGhlIHVzZXIgb3BlcmF0aW9ucyBsZWF2aW5nIHRoZQorCSAqIGJyZWFkY3J1 bWIgYXQgdGhlIGVuZCAoc28gd2UgZ2V0IHRoZSBmZW5jZSBub3RpZmljYXRpb25zKS4KKwkgKi8K KwloZWFkID0gcmVxdWVzdC0+aGVhZDsKKwlpZiAocmVxdWVzdC0+cG9zdGZpeCA8IGhlYWQpIHsK KwkJbWVtc2V0KHZhZGRyICsgaGVhZCwgMCwgcmVxdWVzdC0+cmluZy0+c2l6ZSAtIGhlYWQpOwor CQloZWFkID0gMDsKKwl9CisJbWVtc2V0KHZhZGRyICsgaGVhZCwgMCwgcmVxdWVzdC0+cG9zdGZp eCAtIGhlYWQpOworfQorCitzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXNldF9lbmdpbmUoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxdWVzdDsKKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqaW5jb21wbGV0ZV9jdHg7CiAJ Ym9vbCByaW5nX2h1bmc7CiAKKwkvKiBFbnN1cmUgaXJxIGhhbmRsZXIgZmluaXNoZXMsIGFuZCBu b3QgcnVuIGFnYWluLiAqLworCXRhc2tsZXRfa2lsbCgmZW5naW5lLT5pcnFfdGFza2xldCk7CisK IAlyZXF1ZXN0ID0gaTkxNV9nZW1fZmluZF9hY3RpdmVfcmVxdWVzdChlbmdpbmUpOwotCWlmIChy ZXF1ZXN0ID09IE5VTEwpCisJaWYgKCFyZXF1ZXN0KQogCQlyZXR1cm47CiAKIAlyaW5nX2h1bmcg PSBlbmdpbmUtPmhhbmdjaGVjay5zY29yZSA+PSBIQU5HQ0hFQ0tfU0NPUkVfUklOR19IVU5HOwot CiAJaTkxNV9zZXRfcmVzZXRfc3RhdHVzKHJlcXVlc3QtPmN0eCwgcmluZ19odW5nKTsKKwlpZiAo IXJpbmdfaHVuZykKKwkJcmV0dXJuOworCisJRFJNX0RFQlVHX0RSSVZFUigicmVzZXRpbmcgJXMg dG8gc3RhcnQgZnJvbSB0YWlsIG9mIHJlcXVlc3QgMHgleFxuIiwKKwkJCSBlbmdpbmUtPm5hbWUs IHJlcXVlc3QtPmZlbmNlLnNlcW5vKTsKKworCS8qIFNldHVwIHRoZSBDUyB0byByZXN1bWUgZnJv bSB0aGUgYnJlYWRjcnVtYiBvZiB0aGUgaHVuZyByZXF1ZXN0ICovCisJZW5naW5lLT5yZXNldF9o dyhlbmdpbmUsIHJlcXVlc3QpOworCisJLyogVXNlcnMgb2YgdGhlIGRlZmF1bHQgY29udGV4dCBk byBub3QgcmVseSBvbiBsb2dpY2FsIHN0YXRlCisJICogcHJlc2VydmVkIGJldHdlZW4gYmF0Y2hl cy4gVGhleSBoYXZlIHRvIGVtaXQgZnVsbCBzdGF0ZSBvbgorCSAqIGV2ZXJ5IGJhdGNoIGFuZCBz byBpdCBpcyBzYWZlIHRvIGV4ZWN1dGUgcXVldWVkIHJlcXVlc3RzIGZvbGxvd2luZworCSAqIHRo ZSBoYW5nLgorCSAqCisJICogT3RoZXIgY29udGV4dHMgcHJlc2VydmUgc3RhdGUsIG5vdyBjb3Jy dXB0LiBXZSB3YW50IHRvIHNraXAgYWxsCisJICogcXVldWVkIHJlcXVlc3RzIHRoYXQgcmVmZXJl bmNlIHRoZSBjb3JydXB0IGNvbnRleHQuCisJICovCisJaW5jb21wbGV0ZV9jdHggPSByZXF1ZXN0 LT5jdHg7CisJaWYgKGk5MTVfZ2VtX2NvbnRleHRfaXNfZGVmYXVsdChpbmNvbXBsZXRlX2N0eCkp CisJCXJldHVybjsKKwogCWxpc3RfZm9yX2VhY2hfZW50cnlfY29udGludWUocmVxdWVzdCwgJmVu Z2luZS0+cmVxdWVzdF9saXN0LCBsaW5rKQotCQlpOTE1X3NldF9yZXNldF9zdGF0dXMocmVxdWVz dC0+Y3R4LCBmYWxzZSk7CisJCWlmIChyZXF1ZXN0LT5jdHggPT0gaW5jb21wbGV0ZV9jdHgpCisJ CQlyZXNldF9yZXF1ZXN0KHJlcXVlc3QpOwogfQogCi1zdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXNl dF9lbmdpbmVfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit2b2lkIGk5 MTVfZ2VtX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7Ci0Jc3RydWN0IGludGVsX3JpbmcgKnJp bmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCi0JLyogRW5zdXJlIGlycSBo YW5kbGVyIGZpbmlzaGVzLCBhbmQgbm90IHJ1biBhZ2Fpbi4gKi8KLQl0YXNrbGV0X2tpbGwoJmVu Z2luZS0+aXJxX3Rhc2tsZXQpOworCWk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0cyhkZXZfcHJpdik7 CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikKKwkJaTkxNV9nZW1fcmVzZXRf ZW5naW5lKGVuZ2luZSk7CisKKwlpOTE1X2dlbV9yZXN0b3JlX2ZlbmNlcygmZGV2X3ByaXYtPmRy bSk7Cit9CisKK3N0YXRpYyB2b2lkIG5vcF9zdWJtaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcXVlc3QpCit7Cit9CisKK3N0YXRpYyB2b2lkIGk5MTVfZ2VtX2NsZWFu dXBfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwllbmdpbmUtPnN1 Ym1pdF9yZXF1ZXN0ID0gbm9wX3N1Ym1pdF9yZXF1ZXN0OwogCiAJLyogTWFyayBhbGwgcGVuZGlu ZyByZXF1ZXN0cyBhcyBjb21wbGV0ZSBzbyB0aGF0IGFueSBjb25jdXJyZW50CiAJICogKGxvY2ts ZXNzKSBsb29rdXAgZG9lc24ndCB0cnkgYW5kIHdhaXQgdXBvbiB0aGUgcmVxdWVzdCBhcyB3ZQpA QCAtMjYwMCw1NCArMjY1NCwyMiBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXNldF9lbmdpbmVf Y2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCXNwaW5fdW5sb2NrKCZl bmdpbmUtPmV4ZWNsaXN0X2xvY2spOwogCX0KIAotCS8qCi0JICogV2UgbXVzdCBmcmVlIHRoZSBy ZXF1ZXN0cyBhZnRlciBhbGwgdGhlIGNvcnJlc3BvbmRpbmcgb2JqZWN0cyBoYXZlCi0JICogYmVl biBtb3ZlZCBvZmYgYWN0aXZlIGxpc3RzLiBXaGljaCBpcyB0aGUgc2FtZSBvcmRlciBhcyB0aGUg bm9ybWFsCi0JICogcmV0aXJlX3JlcXVlc3RzIGZ1bmN0aW9uIGRvZXMuIFRoaXMgaXMgaW1wb3J0 YW50IGlmIG9iamVjdCBob2xkCi0JICogaW1wbGljaXQgcmVmZXJlbmNlcyBvbiB0aGluZ3MgbGlr ZSBlLmcuIHBwZ3R0IGFkZHJlc3Mgc3BhY2VzIHRocm91Z2gKLQkgKiB0aGUgcmVxdWVzdC4KLQkg Ki8KLQlyZXF1ZXN0ID0gaTkxNV9nZW1fYWN0aXZlX3JhdygmZW5naW5lLT5sYXN0X3JlcXVlc3Qs Ci0JCQkJICAgICAgJmVuZ2luZS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JaWYgKHJlcXVl c3QpCi0JCWk5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlX3VwdG8ocmVxdWVzdCk7Ci0JR0VNX0JVR19P TihpbnRlbF9lbmdpbmVfaXNfYWN0aXZlKGVuZ2luZSkpOwotCi0JLyogSGF2aW5nIGZsdXNoZWQg YWxsIHJlcXVlc3RzIGZyb20gYWxsIHF1ZXVlcywgd2Uga25vdyB0aGF0IGFsbAotCSAqIHJpbmdi dWZmZXJzIG11c3Qgbm93IGJlIGVtcHR5LiBIb3dldmVyLCBzaW5jZSB3ZSBkbyBub3QgcmVjbGFp bQotCSAqIGFsbCBzcGFjZSB3aGVuIHJldGlyaW5nIHRoZSByZXF1ZXN0ICh0byBwcmV2ZW50IEhF QURzIGNvbGxpZGluZwotCSAqIHdpdGggcmFwaWQgcmluZ2J1ZmZlciB3cmFwYXJvdW5kKSB0aGUg YW1vdW50IG9mIGF2YWlsYWJsZSBzcGFjZQotCSAqIHVwb24gcmVzZXQgaXMgbGVzcyB0aGFuIHdo ZW4gd2Ugc3RhcnQuIERvIG9uZSBtb3JlIHBhc3Mgb3ZlcgotCSAqIGFsbCB0aGUgcmluZ2J1ZmZl cnMgdG8gcmVzZXQgbGFzdF9yZXRpcmVkX2hlYWQuCi0JICovCi0JbGlzdF9mb3JfZWFjaF9lbnRy eShyaW5nLCAmZW5naW5lLT5idWZmZXJzLCBsaW5rKSB7Ci0JCXJpbmctPmxhc3RfcmV0aXJlZF9o ZWFkID0gcmluZy0+dGFpbDsKLQkJaW50ZWxfcmluZ191cGRhdGVfc3BhY2UocmluZyk7Ci0JfQot CiAJZW5naW5lLT5pOTE1LT5ndC5hY3RpdmVfZW5naW5lcyAmPSB+aW50ZWxfZW5naW5lX2ZsYWco ZW5naW5lKTsKIH0KIAotdm9pZCBpOTE1X2dlbV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQordm9pZCBpOTE1X2dlbV9zZXRfd2VkZ2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRl dik7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCi0JLyoKLQkgKiBCZWZvcmUg d2UgZnJlZSB0aGUgb2JqZWN0cyBmcm9tIHRoZSByZXF1ZXN0cywgd2UgbmVlZCB0byBpbnNwZWN0 Ci0JICogdGhlbSBmb3IgZmluZGluZyB0aGUgZ3VpbHR5IHBhcnR5LiBBcyB0aGUgcmVxdWVzdHMg b25seSBib3Jyb3cKLQkgKiB0aGVpciByZWZlcmVuY2UgdG8gdGhlIG9iamVjdHMsIHRoZSBpbnNw ZWN0aW9uIG11c3QgYmUgZG9uZSBmaXJzdC4KLQkgKi8KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5l LCBkZXZfcHJpdikKLQkJaTkxNV9nZW1fcmVzZXRfZW5naW5lX3N0YXR1cyhlbmdpbmUpOworCWxv Y2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKKwlzZXRfYml0 KEk5MTVfV0VER0VELCAmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncyk7CiAKKwlpOTE1X2dlbV9j b250ZXh0X2xvc3QoZGV2X3ByaXYpOwogCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2 KQotCQlpOTE1X2dlbV9yZXNldF9lbmdpbmVfY2xlYW51cChlbmdpbmUpOworCQlpOTE1X2dlbV9j bGVhbnVwX2VuZ2luZShlbmdpbmUpOwogCW1vZF9kZWxheWVkX3dvcmsoZGV2X3ByaXYtPndxLCAm ZGV2X3ByaXYtPmd0LmlkbGVfd29yaywgMCk7CiAKLQlpOTE1X2dlbV9jb250ZXh0X3Jlc2V0KGRl dik7Ci0KLQlpOTE1X2dlbV9yZXN0b3JlX2ZlbmNlcyhkZXYpOworCWk5MTVfZ2VtX3JldGlyZV9y ZXF1ZXN0cyhkZXZfcHJpdik7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC00MzQzLDggKzQzNjUsNyBA QCB2b2lkIGk5MTVfZ2VtX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCSAqIGd1YXJh bnRlZSB0aGF0IHRoZSBjb250ZXh0IGltYWdlIGlzIGNvbXBsZXRlLiBTbyBsZXQncyBqdXN0IHJl c2V0CiAJICogaXQgYW5kIHN0YXJ0IGFnYWluLgogCSAqLwotCWlmIChpOTE1LmVuYWJsZV9leGVj bGlzdHMpCi0JCWludGVsX2xyX2NvbnRleHRfcmVzZXQoZGV2X3ByaXYsIGRldl9wcml2LT5rZXJu ZWxfY29udGV4dCk7CisJZGV2X3ByaXYtPmd0LnJlc3VtZShkZXZfcHJpdik7CiAKIAltdXRleF91 bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIH0KQEAgLTQ0OTYsOCArNDUxNywxMCBAQCBpbnQg aTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCW11dGV4X2xvY2soJmRldi0+ c3RydWN0X211dGV4KTsKIAogCWlmICghaTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7CisJCWRldl9w cml2LT5ndC5yZXN1bWUgPSBpbnRlbF9sZWdhY3lfc3VibWlzc2lvbl9yZXN1bWU7CiAJCWRldl9w cml2LT5ndC5jbGVhbnVwX2VuZ2luZSA9IGludGVsX2VuZ2luZV9jbGVhbnVwOwogCX0gZWxzZSB7 CisJCWRldl9wcml2LT5ndC5yZXN1bWUgPSBpbnRlbF9scl9jb250ZXh0X3Jlc3VtZTsKIAkJZGV2 X3ByaXYtPmd0LmNsZWFudXBfZW5naW5lID0gaW50ZWxfbG9naWNhbF9yaW5nX2NsZWFudXA7CiAJ fQogCkBAIC00NTMwLDcgKzQ1NTMsNyBAQCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCQkgKiBmb3IgYWxsIG90aGVyIGZhaWx1cmUsIHN1Y2ggYXMgYW4gYWxsb2Nh dGlvbiBmYWlsdXJlLCBiYWlsLgogCQkgKi8KIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdGlh bGl6ZSBHUFUsIGRlY2xhcmluZyBpdCB3ZWRnZWRcbiIpOwotCQlzZXRfYml0KEk5MTVfV0VER0VE LCAmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncyk7CisJCWk5MTVfZ2VtX3NldF93ZWRnZWQoZGV2 X3ByaXYpOwogCQlyZXQgPSAwOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jCmluZGV4IDM1OTUwZWU0NmExZC4uZGYxMGY0ZTk1NzM2IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCkBAIC00MjAsMjIgKzQyMCw2IEBAIHN0YXRpYyB2b2lk IGk5MTVfZ2VtX2NvbnRleHRfdW5waW4oc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAl9 CiB9CiAKLXZvaWQgaTkxNV9nZW1fY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK LQotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldi0+c3RydWN0X211dGV4KTsKLQotCWlmIChpOTE1 LmVuYWJsZV9leGVjbGlzdHMpIHsKLQkJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKLQot CQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN0eCwgJmRldl9wcml2LT5jb250ZXh0X2xpc3QsIGxpbmsp Ci0JCQlpbnRlbF9scl9jb250ZXh0X3Jlc2V0KGRldl9wcml2LCBjdHgpOwotCX0KLQotCWk5MTVf Z2VtX2NvbnRleHRfbG9zdChkZXZfcHJpdik7Ci19Ci0KIGludCBpOTE1X2dlbV9jb250ZXh0X2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19z dWJtaXNzaW9uLmMKaW5kZXggNzc1MjZkN2Y0MWY4Li5kNWE0ZTllZGNjYzUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKQEAgLTk5NCw2ICs5OTQsNyBAQCBp bnQgaTkxNV9ndWNfc3VibWlzc2lvbl9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3VjOwogCXN0cnVj dCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudDsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmU7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0OwogCiAJLyogY2xpZW50 IGZvciBleGVjYnVmIHN1Ym1pc3Npb24gKi8KIAljbGllbnQgPSBndWNfY2xpZW50X2FsbG9jKGRl dl9wcml2LApAQCAtMTAxMCw5ICsxMDExLDE0IEBAIGludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2Vu YWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZ3VjX2luaXRfZG9vcmJl bGxfaHcoZ3VjKTsKIAogCS8qIFRha2Ugb3ZlciBmcm9tIG1hbnVhbCBjb250cm9sIG9mIEVMU1Ag KGV4ZWNsaXN0cykgKi8KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikKKwlmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikgewogCQllbmdpbmUtPnN1Ym1pdF9yZXF1ZXN0 ID0gaTkxNV9ndWNfc3VibWl0OwogCisJCS8qIFJlcGxheSB0aGUgY3VycmVudCBzZXQgb2YgcHJl dmlvdXNseSBzdWJtaXR0ZWQgcmVxdWVzdHMgKi8KKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShyZXF1 ZXN0LCAmZW5naW5lLT5yZXF1ZXN0X2xpc3QsIGxpbmspCisJCQlpOTE1X2d1Y19zdWJtaXQocmVx dWVzdCk7CisJfQorCiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5n aW5lX2NzLmMKaW5kZXggMmU5NmE4NjEwNWMyLi5lNDA1ZjEwODAyOTYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCkBAIC0yMTEsNiArMjExLDggQEAgdm9pZCBpbnRlbF9l bmdpbmVfaW5pdF9oYW5nY2hlY2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewog CW1lbXNldCgmZW5naW5lLT5oYW5nY2hlY2ssIDAsIHNpemVvZihlbmdpbmUtPmhhbmdjaGVjaykp OwogCWNsZWFyX2JpdChlbmdpbmUtPmlkLCAmZW5naW5lLT5pOTE1LT5ncHVfZXJyb3IubWlzc2Vk X2lycV9yaW5ncyk7CisJaWYgKGludGVsX2VuZ2luZV9oYXNfd2FpdGVyKGVuZ2luZSkpCisJCWk5 MTVfcXVldWVfaGFuZ2NoZWNrKGVuZ2luZS0+aTkxNSk7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVs X2VuZ2luZV9pbml0X3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKQEAg LTIzMCw3ICsyMzIsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmdpbmVfaW5pdF9yZXF1ZXN0cyhz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAgKi8KIHZvaWQgaW50ZWxfZW5naW5lX3Nl dHVwX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0JSU5JVF9MSVNU X0hFQUQoJmVuZ2luZS0+YnVmZmVycyk7CiAJSU5JVF9MSVNUX0hFQUQoJmVuZ2luZS0+ZXhlY2xp c3RfcXVldWUpOwogCXNwaW5fbG9ja19pbml0KCZlbmdpbmUtPmV4ZWNsaXN0X2xvY2spOwogCkBA IC0zMDYsNiArMzA3LDE4IEBAIGludCBpbnRlbF9lbmdpbmVfaW5pdF9jb21tb24oc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXJldHVybiAwOwogfQogCit2b2lkIGludGVsX2VuZ2lu ZV9yZXNldF9pcnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKKworCXNwaW5fbG9ja19p cnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJaWYgKGludGVsX2VuZ2luZV9oYXNfd2FpdGVyKGVu Z2luZSkpCisJCWVuZ2luZS0+aXJxX2VuYWJsZShlbmdpbmUpOworCWVsc2UKKwkJZW5naW5lLT5p cnFfZGlzYWJsZShlbmdpbmUpOworCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2Nr KTsKK30KKwogLyoqCiAgKiBpbnRlbF9lbmdpbmVzX2NsZWFudXBfY29tbW9uIC0gY2xlYW5zIHVw IHRoZSBlbmdpbmUgc3RhdGUgY3JlYXRlZCBieQogICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRoZSBjb21tb24gaW5pdGlhaWxpemVycy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK aW5kZXggYTMzNjg3ZDI5NGI1Li42MTU0OWE2MjNlMmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jCkBAIC0xMjIyLDExICsxMjIyLDE2IEBAIHN0YXRpYyB2b2lkIGxyY19pbml0X2h3cyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiBzdGF0aWMgaW50IGdlbjhfaW5pdF9jb21tb25f cmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OworCWludCByZXQ7CisKKwlyZXQgPSBp bnRlbF9tb2NzX2luaXRfZW5naW5lKGVuZ2luZSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsK IAogCWxyY19pbml0X2h3cyhlbmdpbmUpOwogCi0JSTkxNV9XUklURV9JTVIoZW5naW5lLAotCQkg ICAgICAgfihlbmdpbmUtPmlycV9lbmFibGVfbWFzayB8IGVuZ2luZS0+aXJxX2tlZXBfbWFzaykp OworCWludGVsX2VuZ2luZV9yZXNldF9pcnEoZW5naW5lKTsKKwogCUk5MTVfV1JJVEUoUklOR19I V1NUQU0oZW5naW5lLT5tbWlvX2Jhc2UpLCAweGZmZmZmZmZmKTsKIAogCUk5MTVfV1JJVEUoUklO R19NT0RFX0dFTjcoZW5naW5lKSwKQEAgLTEyMzcsNyArMTI0MiwxMCBAQCBzdGF0aWMgaW50IGdl bjhfaW5pdF9jb21tb25fcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIAlp bnRlbF9lbmdpbmVfaW5pdF9oYW5nY2hlY2soZW5naW5lKTsKIAotCXJldHVybiBpbnRlbF9tb2Nz X2luaXRfZW5naW5lKGVuZ2luZSk7CisJaWYgKCFleGVjbGlzdHNfZWxzcF9pZGxlKGVuZ2luZSkp CisJCWV4ZWNsaXN0c19zdWJtaXRfcG9ydHMoZW5naW5lKTsKKworCXJldHVybiAwOwogfQogCiBz dGF0aWMgaW50IGdlbjhfaW5pdF9yZW5kZXJfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCkBAIC0xMjczLDYgKzEyODEsMzYgQEAgc3RhdGljIGludCBnZW45X2luaXRfcmVuZGVy X3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXJldHVybiBpbml0X3dvcmth cm91bmRzX3JpbmcoZW5naW5lKTsKIH0KIAorc3RhdGljIHZvaWQgcmVzZXRfY29tbW9uX3Jpbmco c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJICAgICAgc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGVuZ2luZS0+aTkxNTsKKwlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGVuZ2lu ZS0+ZXhlY2xpc3RfcG9ydDsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSAmcmVxdWVzdC0+ Y3R4LT5lbmdpbmVbZW5naW5lLT5pZF07CisKKwkvKiBNb3ZlIHRoZSBSSU5HX0hFQUQgb250byB0 aGUgYnJlYWRjcnVtYiwgcGFzdCB0aGUgaGFuZ2luZyBiYXRjaCAqLworCWNlLT5scmNfcmVnX3N0 YXRlW0NUWF9SSU5HX0hFQUQrMV0gPSByZXF1ZXN0LT5wb3N0Zml4OworCXJlcXVlc3QtPnJpbmct PmhlYWQgPSByZXF1ZXN0LT5wb3N0Zml4OworCXJlcXVlc3QtPnJpbmctPmxhc3RfcmV0aXJlZF9o ZWFkID0gLTE7CisJaW50ZWxfcmluZ191cGRhdGVfc3BhY2UocmVxdWVzdC0+cmluZyk7CisKKwlp ZiAoaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pCisJCXJldHVybjsKKworCS8qIENhdGNoIHVw IHdpdGggYW55IG1pc3NlZCBjb250ZXh0LXN3aXRjaCBpbnRlcnJ1cHRzICovCisJSTkxNV9XUklU RShSSU5HX0NPTlRFWFRfU1RBVFVTX1BUUihlbmdpbmUpLCBfTUFTS0VEX0ZJRUxEKDB4ZmZmZiwg MCkpOworCWlmIChyZXF1ZXN0LT5jdHggIT0gcG9ydFswXS5yZXF1ZXN0LT5jdHgpIHsKKwkJaTkx NV9nZW1fcmVxdWVzdF9wdXQocG9ydFswXS5yZXF1ZXN0KTsKKwkJcG9ydFswXSA9IHBvcnRbMV07 CisJCW1lbXNldCgmcG9ydFsxXSwgMCwgc2l6ZW9mKHBvcnRbMV0pKTsKKwl9CisKKwkvKiBDUyBp cyBzdG9wcGVkLCBhbmQgd2Ugd2lsbCByZXN1Ym1pdCBib3RoIHBvcnRzIG9uIHJlc3VtZSAqLwor CUdFTV9CVUdfT04ocmVxdWVzdC0+Y3R4ICE9IHBvcnRbMF0ucmVxdWVzdC0+Y3R4KTsKKwlwb3J0 WzBdLmNvdW50ID0gMDsKKwlwb3J0WzFdLmNvdW50ID0gMDsKK30KKwogc3RhdGljIGludCBpbnRl bF9sb2dpY2FsX3JpbmdfZW1pdF9wZHBzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQogewogCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCA9IHJlcS0+Y3R4LT5wcGd0dDsKQEAg LTE2MzUsNiArMTY3Myw3IEBAIGxvZ2ljYWxfcmluZ19kZWZhdWx0X3ZmdW5jcyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJLyogRGVmYXVsdCB2ZnVuY3Mgd2hpY2ggY2FuIGJl IG92ZXJyaWRlbiBieSBlYWNoIGVuZ2luZS4gKi8KIAllbmdpbmUtPmluaXRfaHcgPSBnZW44X2lu aXRfY29tbW9uX3Jpbmc7CisJZW5naW5lLT5yZXNldF9odyA9IHJlc2V0X2NvbW1vbl9yaW5nOwog CWVuZ2luZS0+ZW1pdF9mbHVzaCA9IGdlbjhfZW1pdF9mbHVzaDsKIAllbmdpbmUtPmVtaXRfcmVx dWVzdCA9IGdlbjhfZW1pdF9yZXF1ZXN0OwogCWVuZ2luZS0+c3VibWl0X3JlcXVlc3QgPSBleGVj bGlzdHNfc3VibWl0X3JlcXVlc3Q7CkBAIC0yMDg3LDkgKzIxMjYsOSBAQCBlcnJvcl9kZXJlZl9v Ymo6CiAJcmV0dXJuIHJldDsKIH0KIAotdm9pZCBpbnRlbF9scl9jb250ZXh0X3Jlc2V0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCSAgICBzdHJ1Y3QgaTkxNV9nZW1fY29u dGV4dCAqY3R4KQordm9pZCBpbnRlbF9scl9jb250ZXh0X3Jlc3VtZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiB7CisJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCA9IGRl dl9wcml2LT5rZXJuZWxfY29udGV4dDsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7 CiAKIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikgewpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuaAppbmRleCA0ZDcwMzQ2NTAwYzIuLjRmZWQ4MTY1Zjk4YSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmgKQEAgLTg3LDggKzg3LDcgQEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGlu KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAKIHN0cnVjdCBkcm1faTkxNV9wcml2YXRl OwogCi12b2lkIGludGVsX2xyX2NvbnRleHRfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAotCQkJICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpOwordm9pZCBp bnRlbF9scl9jb250ZXh0X3Jlc3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp OwogdWludDY0X3QgaW50ZWxfbHJfY29udGV4dF9kZXNjcmlwdG9yKHN0cnVjdCBpOTE1X2dlbV9j b250ZXh0ICpjdHgsCiAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggZTA0YjU4YThhYTBh Li43ZjM4YTNlNDIzOWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMK QEAgLTU2NCw2ICs1NjQsOCBAQCBzdGF0aWMgaW50IGluaXRfcmluZ19jb21tb24oc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWVsc2UKIAkJcmluZ19zZXR1cF9waHlzX3N0YXR1c19w YWdlKGVuZ2luZSk7CiAKKwlpbnRlbF9lbmdpbmVfcmVzZXRfaXJxKGVuZ2luZSk7CisKIAkvKiBF bmZvcmNlIG9yZGVyaW5nIGJ5IHJlYWRpbmcgSEVBRCByZWdpc3RlciBiYWNrICovCiAJSTkxNV9S RUFEX0hFQUQoZW5naW5lKTsKIApAQCAtNTc3LDM0ICs1NzksMzMgQEAgc3RhdGljIGludCBpbml0 X3JpbmdfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlpZiAoSTkxNV9S RUFEX0hFQUQoZW5naW5lKSkKIAkJRFJNX0RFQlVHKCIlcyBpbml0aWFsaXphdGlvbiBmYWlsZWQg W2hlYWQ9JTA4eF0sIGZ1ZGdpbmdcbiIsCiAJCQkgIGVuZ2luZS0+bmFtZSwgSTkxNV9SRUFEX0hF QUQoZW5naW5lKSk7Ci0JSTkxNV9XUklURV9IRUFEKGVuZ2luZSwgMCk7Ci0JKHZvaWQpSTkxNV9S RUFEX0hFQUQoZW5naW5lKTsKKworCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmcpOworCUk5 MTVfV1JJVEVfSEVBRChlbmdpbmUsIHJpbmctPmhlYWQpOworCUk5MTVfV1JJVEVfVEFJTChlbmdp bmUsIHJpbmctPnRhaWwpOworCSh2b2lkKUk5MTVfUkVBRF9UQUlMKGVuZ2luZSk7CiAKIAlJOTE1 X1dSSVRFX0NUTChlbmdpbmUsCiAJCQkoKHJpbmctPnNpemUgLSBQQUdFX1NJWkUpICYgUklOR19O Ul9QQUdFUykKIAkJCXwgUklOR19WQUxJRCk7CiAKIAkvKiBJZiB0aGUgaGVhZCBpcyBzdGlsbCBu b3QgemVybywgdGhlIHJpbmcgaXMgZGVhZCAqLwotCWlmICh3YWl0X2ZvcigoSTkxNV9SRUFEX0NU TChlbmdpbmUpICYgUklOR19WQUxJRCkgIT0gMCAmJgotCQkgICAgIEk5MTVfUkVBRF9TVEFSVChl bmdpbmUpID09IGk5MTVfZ2d0dF9vZmZzZXQocmluZy0+dm1hKSAmJgotCQkgICAgIChJOTE1X1JF QURfSEVBRChlbmdpbmUpICYgSEVBRF9BRERSKSA9PSAwLCA1MCkpIHsKKwlpZiAoaW50ZWxfd2Fp dF9mb3JfcmVnaXN0ZXJfZncoZGV2X3ByaXYsIFJJTkdfQ1RMKGVuZ2luZS0+bW1pb19iYXNlKSwK KwkJCQkgICAgICAgUklOR19WQUxJRCwgUklOR19WQUxJRCwKKwkJCQkgICAgICAgNTApKSB7CiAJ CURSTV9FUlJPUigiJXMgaW5pdGlhbGl6YXRpb24gZmFpbGVkICIKLQkJCSAgImN0bCAlMDh4ICh2 YWxpZD8gJWQpIGhlYWQgJTA4eCB0YWlsICUwOHggc3RhcnQgJTA4eCBbZXhwZWN0ZWQgJTA4eF1c biIsCisJCQkgICJjdGwgJTA4eCAodmFsaWQ/ICVkKSBoZWFkICUwOHggWyUwOHhdIHRhaWwgJTA4 eCBbJTA4eF0gc3RhcnQgJTA4eCBbZXhwZWN0ZWQgJTA4eF1cbiIsCiAJCQkgIGVuZ2luZS0+bmFt ZSwKIAkJCSAgSTkxNV9SRUFEX0NUTChlbmdpbmUpLAogCQkJICBJOTE1X1JFQURfQ1RMKGVuZ2lu ZSkgJiBSSU5HX1ZBTElELAotCQkJICBJOTE1X1JFQURfSEVBRChlbmdpbmUpLCBJOTE1X1JFQURf VEFJTChlbmdpbmUpLAorCQkJICBJOTE1X1JFQURfSEVBRChlbmdpbmUpLCByaW5nLT5oZWFkLAor CQkJICBJOTE1X1JFQURfVEFJTChlbmdpbmUpLCByaW5nLT50YWlsLAogCQkJICBJOTE1X1JFQURf U1RBUlQoZW5naW5lKSwKIAkJCSAgaTkxNV9nZ3R0X29mZnNldChyaW5nLT52bWEpKTsKIAkJcmV0 ID0gLUVJTzsKIAkJZ290byBvdXQ7CiAJfQogCi0JcmluZy0+bGFzdF9yZXRpcmVkX2hlYWQgPSAt MTsKLQlyaW5nLT5oZWFkID0gSTkxNV9SRUFEX0hFQUQoZW5naW5lKTsKLQlyaW5nLT50YWlsID0g STkxNV9SRUFEX1RBSUwoZW5naW5lKSAmIFRBSUxfQUREUjsKLQlpbnRlbF9yaW5nX3VwZGF0ZV9z cGFjZShyaW5nKTsKLQogCWludGVsX2VuZ2luZV9pbml0X2hhbmdjaGVjayhlbmdpbmUpOwogCiBv dXQ6CkBAIC02MTMsNiArNjE0LDE1IEBAIG91dDoKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMg dm9pZCByZXNldF9yaW5nX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJ CQkgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCit7CisJc3RydWN0 IGludGVsX3JpbmcgKnJpbmcgPSByZXF1ZXN0LT5yaW5nOworCisJcmluZy0+aGVhZCA9IHJlcXVl c3QtPnBvc3RmaXg7CisJcmluZy0+bGFzdF9yZXRpcmVkX2hlYWQgPSAtMTsKK30KKwogc3RhdGlj IGludCBpbnRlbF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEpCiB7CiAJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7CkBAIC0y MDA3LDcgKzIwMTcsNiBAQCBpbnRlbF9lbmdpbmVfY3JlYXRlX3Jpbmcoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lLCBpbnQgc2l6ZSkKIAl9CiAJcmluZy0+dm1hID0gdm1hOwogCi0JbGlz dF9hZGQoJnJpbmctPmxpbmssICZlbmdpbmUtPmJ1ZmZlcnMpOwogCXJldHVybiByaW5nOwogfQog CkBAIC0yMDE1LDcgKzIwMjQsNiBAQCB2b2lkCiBpbnRlbF9yaW5nX2ZyZWUoc3RydWN0IGludGVs X3JpbmcgKnJpbmcpCiB7CiAJaTkxNV92bWFfcHV0KHJpbmctPnZtYSk7Ci0JbGlzdF9kZWwoJnJp bmctPmxpbmspOwogCWtmcmVlKHJpbmcpOwogfQogCkBAIC0yMTY5LDYgKzIxNzcsMTYgQEAgdm9p ZCBpbnRlbF9lbmdpbmVfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJ ZW5naW5lLT5pOTE1ID0gTlVMTDsKIH0KIAordm9pZCBpbnRlbF9sZWdhY3lfc3VibWlzc2lvbl9y ZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZTsKKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2 KSB7CisJCWVuZ2luZS0+YnVmZmVyLT5oZWFkID0gZW5naW5lLT5idWZmZXItPnRhaWw7CisJCWVu Z2luZS0+YnVmZmVyLT5sYXN0X3JldGlyZWRfaGVhZCA9IC0xOworCX0KK30KKwogaW50IGludGVs X3JpbmdfYWxsb2NfcmVxdWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXF1ZXN0KQogewogCWludCByZXQ7CkBAIC0yNjU0LDYgKzI2NzIsNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAlpbnRlbF9yaW5nX2luaXRfc2VtYXBob3JlcyhkZXZfcHJpdiwgZW5naW5lKTsKIAogCWVu Z2luZS0+aW5pdF9odyA9IGluaXRfcmluZ19jb21tb247CisJZW5naW5lLT5yZXNldF9odyA9IHJl c2V0X3JpbmdfY29tbW9uOwogCiAJZW5naW5lLT5lbWl0X3JlcXVlc3QgPSBpOXh4X2VtaXRfcmVx dWVzdDsKIAlpZiAoaTkxNS5zZW1hcGhvcmVzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCmluZGV4IDE4ODQ4YWNmNWU3NC4uMzJmNTI3NDQ3MzEwIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC04Nyw3ICs4Nyw2IEBAIHN0cnVjdCBpbnRl bF9yaW5nIHsKIAl2b2lkICp2YWRkcjsKIAogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZTsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7CiAKIAlzdHJ1Y3QgbGlzdF9oZWFkIHJlcXVlc3Rf bGlzdDsKIApAQCAtMTU3LDcgKzE1Niw2IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgewogCXUz MgkJbW1pb19iYXNlOwogCXVuc2lnbmVkIGludCBpcnFfc2hpZnQ7CiAJc3RydWN0IGludGVsX3Jp bmcgKmJ1ZmZlcjsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGJ1ZmZlcnM7CiAKIAkvKiBSYXRoZXIgdGhh biBoYXZlIGV2ZXJ5IGNsaWVudCB3YWl0IHVwb24gYWxsIHVzZXIgaW50ZXJydXB0cywKIAkgKiB3 aXRoIHRoZSBoZXJkIHdha2luZyBhZnRlciBldmVyeSBpbnRlcnJ1cHQgYW5kIGVhY2ggZG9pbmcg dGhlCkBAIC0yMTEsNiArMjA5LDggQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJdm9pZAkJ KCppcnFfZGlzYWJsZSkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIAogCWludAkJ KCppbml0X2h3KShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOworCXZvaWQJCSgqcmVz ZXRfaHcpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgICAgc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwogCiAJaW50CQkoKmluaXRfY29udGV4dCkoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwogCkBAIC00NDQsNiArNDQ0LDggQEAgdm9pZCBp bnRlbF9yaW5nX2ZyZWUoc3RydWN0IGludGVsX3JpbmcgKnJpbmcpOwogdm9pZCBpbnRlbF9lbmdp bmVfc3RvcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogdm9pZCBpbnRlbF9lbmdp bmVfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogCit2b2lkIGludGVs X2xlZ2FjeV9zdWJtaXNzaW9uX3Jlc3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOworCiBpbnQgaW50ZWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpOwogCiBpbnQgX19tdXN0X2NoZWNrIGludGVsX3Jpbmdf YmVnaW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBuKTsKQEAgLTQ4Miw2 ICs0ODQsNyBAQCBpbnQgX19pbnRlbF9yaW5nX3NwYWNlKGludCBoZWFkLCBpbnQgdGFpbCwgaW50 IHNpemUpOwogdm9pZCBpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZyAq cmluZyk7CiAKIHZvaWQgaW50ZWxfZW5naW5lX2luaXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLCB1MzIgc2Vxbm8pOwordm9pZCBpbnRlbF9lbmdpbmVfcmVzZXRfaXJxKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiAKIHZvaWQgaW50ZWxfZW5naW5lX3NldHVw X2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogaW50IGludGVsX2VuZ2lu ZV9pbml0X2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwotLSAKMi45LjMK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=