From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [CI 13/21] drm/i915: Update reset path to fix incomplete requests Date: Fri, 9 Sep 2016 12:00:53 +0100 Message-ID: <20160909110101.31967-13-chris@chris-wilson.co.uk> References: <20160909110101.31967-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-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3BAB16E78D for ; Fri, 9 Sep 2016 11:01:21 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id w12so2213946wmf.1 for ; Fri, 09 Sep 2016 04:01:21 -0700 (PDT) Received: from haswell.alporthouse.com ([78.156.65.138]) by smtp.gmail.com with ESMTPSA id kq2sm2786494wjc.41.2016.09.09.04.01.18 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Sep 2016 04:01:18 -0700 (PDT) In-Reply-To: <20160909110101.31967-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 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+ClJldmlld2VkLWJ5OiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgICAg fCAgIDkgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgfCAg IDUgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8IDEyNSAr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fY29udGV4dC5jICAgIHwgIDE2IC0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3Vj X3N1Ym1pc3Npb24uYyB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5l X2NzLmMgICAgIHwgIDE1ICsrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAg ICAgICAgICB8ICA0OSArKysrKysrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmggICAgICAgICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMgICAgfCAgNDcgKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCAgICB8ICAgNyArLQogMTAgZmlsZXMgY2hhbmdlZCwgMTg1IGluc2VydGlvbnMo KyksIDk5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IGYyNjE0YjJm NTlmNy4uN2Y0ZThhZGVjOGE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTU1OSw3ICs1 NTksNiBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJfQogCiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCWk5MTVfZ2VtX3Jlc2V0 KGRldik7CiAJaTkxNV9nZW1fY2xlYW51cF9lbmdpbmVzKGRldik7CiAJaTkxNV9nZW1fY29udGV4 dF9maW5pKGRldik7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CkBAIC0xNTc5 LDcgKzE1NzgsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3Jlc3VtZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAlpZiAoaTkxNV9nZW1f aW5pdF9odyhkZXYpKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIHJlLWluaXRpYWxpemUgR1BV LCBkZWNsYXJpbmcgd2VkZ2VkIVxuIik7Ci0JCXNldF9iaXQoSTkxNV9XRURHRUQsICZkZXZfcHJp di0+Z3B1X2Vycm9yLmZsYWdzKTsKKwkJaTkxNV9nZW1fc2V0X3dlZGdlZChkZXZfcHJpdik7CiAJ fQogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCkBAIC0xNzU1LDkgKzE3NTQs NiBAQCB2b2lkIGk5MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CWVycm9yLT5yZXNldF9jb3VudCsrOwogCiAJcHJfbm90aWNlKCJkcm0vaTkxNTogUmVzZXR0aW5n IGNoaXAgYWZ0ZXIgZ3B1IGhhbmdcbiIpOwotCi0JaTkxNV9nZW1fcmVzZXQoZGV2KTsKLQogCXJl dCA9IGludGVsX2dwdV9yZXNldChkZXZfcHJpdiwgQUxMX0VOR0lORVMpOwogCWlmIChyZXQpIHsK IAkJaWYgKHJldCAhPSAtRU5PREVWKQpAQCAtMTc2Nyw2ICsxNzYzLDcgQEAgdm9pZCBpOTE1X3Jl c2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJZ290byBlcnJvcjsKIAl9 CiAKKwlpOTE1X2dlbV9yZXNldChkZXZfcHJpdik7CiAJaW50ZWxfb3ZlcmxheV9yZXNldChkZXZf cHJpdik7CiAKIAkvKiBPaywgbm93IGdldCB0aGluZ3MgZ29pbmcgYWdhaW4uLi4gKi8KQEAgLTE4 MDMsNyArMTgwMCw3IEBAIHdha2V1cDoKIAlyZXR1cm47CiAKIGVycm9yOgotCXNldF9iaXQoSTkx NV9XRURHRUQsICZlcnJvci0+ZmxhZ3MpOworCWk5MTVfZ2VtX3NldF93ZWRnZWQoZGV2X3ByaXYp OwogCWdvdG8gd2FrZXVwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA5YTlmMDdm MzU3NGMuLjM3OTc4ZDNmNjJjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yMDQyLDYg KzIwNDIsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAKIAkvKiBBYnN0cmFjdCB0aGUg c3VibWlzc2lvbiBtZWNoYW5pc20gKGxlZ2FjeSByaW5nYnVmZmVyIG9yIGV4ZWNsaXN0cykgYXdh eSAqLwogCXN0cnVjdCB7CisJCXZvaWQgKCpyZXN1bWUpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICopOwogCQl2b2lkICgqY2xlYW51cF9lbmdpbmUpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSk7CiAKIAkJLyoqCkBAIC0zMjYzLDcgKzMyNjQsOCBAQCBzdGF0aWMgaW5saW5lIHUzMiBp OTE1X3Jlc2V0X2NvdW50KHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IpCiAJcmV0dXJuIFJF QURfT05DRShlcnJvci0+cmVzZXRfY291bnQpOwogfQogCi12b2lkIGk5MTVfZ2VtX3Jlc2V0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOwordm9pZCBpOTE1X2dlbV9yZXNldChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBpOTE1X2dlbV9zZXRfd2VkZ2VkKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBib29sIGk5MTVfZ2VtX2NsZmx1c2hfb2JqZWN0 KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIGJvb2wgZm9yY2UpOwogaW50IF9fbXVz dF9jaGVjayBpOTE1X2dlbV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogaW50IF9fbXVz dF9jaGVjayBpOTE1X2dlbV9pbml0X2h3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwpAQCAtMzM5 Miw3ICszMzk0LDYgQEAgdm9pZCBpOTE1X2dlbV9vYmplY3Rfc2F2ZV9iaXRfMTdfc3dpenpsZShz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKIGludCBfX211c3RfY2hlY2sgaTkxNV9n ZW1fY29udGV4dF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBpOTE1X2dlbV9j b250ZXh0X2xvc3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaTkx NV9nZW1fY29udGV4dF9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotdm9pZCBpOTE1X2dl bV9jb250ZXh0X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogaW50IGk5MTVfZ2VtX2Nv bnRleHRfb3BlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUp Owogdm9pZCBpOTE1X2dlbV9jb250ZXh0X2Nsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZSk7CiBpbnQgaTkxNV9zd2l0Y2hfY29udGV4dChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCAyMzA2 OWEyZDI4NTAuLjY3NGUwZWFmMzllYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0yNTU1 LDI5ICsyNTU1LDg1IEBAIGk5MTVfZ2VtX2ZpbmRfYWN0aXZlX3JlcXVlc3Qoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogCXJldHVybiBOVUxMOwogfQogCi1zdGF0aWMgdm9pZCBpOTE1 X2dlbV9yZXNldF9lbmdpbmVfc3RhdHVzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK K3N0YXRpYyB2b2lkIHJlc2V0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXF1ZXN0KQoreworCXZvaWQgKnZhZGRyID0gcmVxdWVzdC0+cmluZy0+dmFkZHI7CisJdTMyIGhl YWQ7CisKKwkvKiBBcyB0aGlzIHJlcXVlc3QgbGlrZWx5IGRlcGVuZHMgb24gc3RhdGUgZnJvbSB0 aGUgbG9zdAorCSAqIGNvbnRleHQsIGNsZWFyIG91dCBhbGwgdGhlIHVzZXIgb3BlcmF0aW9ucyBs ZWF2aW5nIHRoZQorCSAqIGJyZWFkY3J1bWIgYXQgdGhlIGVuZCAoc28gd2UgZ2V0IHRoZSBmZW5j ZSBub3RpZmljYXRpb25zKS4KKwkgKi8KKwloZWFkID0gcmVxdWVzdC0+aGVhZDsKKwlpZiAocmVx dWVzdC0+cG9zdGZpeCA8IGhlYWQpIHsKKwkJbWVtc2V0KHZhZGRyICsgaGVhZCwgMCwgcmVxdWVz dC0+cmluZy0+c2l6ZSAtIGhlYWQpOworCQloZWFkID0gMDsKKwl9CisJbWVtc2V0KHZhZGRyICsg aGVhZCwgMCwgcmVxdWVzdC0+cG9zdGZpeCAtIGhlYWQpOworfQorCitzdGF0aWMgdm9pZCBpOTE1 X2dlbV9yZXNldF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdDsKKwlzdHJ1Y3QgaTkxNV9nZW1fY29u dGV4dCAqaW5jb21wbGV0ZV9jdHg7CiAJYm9vbCByaW5nX2h1bmc7CiAKKwkvKiBFbnN1cmUgaXJx IGhhbmRsZXIgZmluaXNoZXMsIGFuZCBub3QgcnVuIGFnYWluLiAqLworCXRhc2tsZXRfa2lsbCgm ZW5naW5lLT5pcnFfdGFza2xldCk7CisJaWYgKGVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIpCisJ CWVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIoZW5naW5lKTsKKwogCXJlcXVlc3QgPSBpOTE1X2dl bV9maW5kX2FjdGl2ZV9yZXF1ZXN0KGVuZ2luZSk7Ci0JaWYgKHJlcXVlc3QgPT0gTlVMTCkKKwlp ZiAoIXJlcXVlc3QpCiAJCXJldHVybjsKIAogCXJpbmdfaHVuZyA9IGVuZ2luZS0+aGFuZ2NoZWNr LnNjb3JlID49IEhBTkdDSEVDS19TQ09SRV9SSU5HX0hVTkc7Ci0KIAlpOTE1X3NldF9yZXNldF9z dGF0dXMocmVxdWVzdC0+Y3R4LCByaW5nX2h1bmcpOworCWlmICghcmluZ19odW5nKQorCQlyZXR1 cm47CisKKwlEUk1fREVCVUdfRFJJVkVSKCJyZXNldHRpbmcgJXMgdG8gcmVzdGFydCBmcm9tIHRh aWwgb2YgcmVxdWVzdCAweCV4XG4iLAorCQkJIGVuZ2luZS0+bmFtZSwgcmVxdWVzdC0+ZmVuY2Uu c2Vxbm8pOworCisJLyogU2V0dXAgdGhlIENTIHRvIHJlc3VtZSBmcm9tIHRoZSBicmVhZGNydW1i IG9mIHRoZSBodW5nIHJlcXVlc3QgKi8KKwllbmdpbmUtPnJlc2V0X2h3KGVuZ2luZSwgcmVxdWVz dCk7CisKKwkvKiBVc2VycyBvZiB0aGUgZGVmYXVsdCBjb250ZXh0IGRvIG5vdCByZWx5IG9uIGxv Z2ljYWwgc3RhdGUKKwkgKiBwcmVzZXJ2ZWQgYmV0d2VlbiBiYXRjaGVzLiBUaGV5IGhhdmUgdG8g ZW1pdCBmdWxsIHN0YXRlIG9uCisJICogZXZlcnkgYmF0Y2ggYW5kIHNvIGl0IGlzIHNhZmUgdG8g ZXhlY3V0ZSBxdWV1ZWQgcmVxdWVzdHMgZm9sbG93aW5nCisJICogdGhlIGhhbmcuCisJICoKKwkg KiBPdGhlciBjb250ZXh0cyBwcmVzZXJ2ZSBzdGF0ZSwgbm93IGNvcnJ1cHQuIFdlIHdhbnQgdG8g c2tpcCBhbGwKKwkgKiBxdWV1ZWQgcmVxdWVzdHMgdGhhdCByZWZlcmVuY2UgdGhlIGNvcnJ1cHQg Y29udGV4dC4KKwkgKi8KKwlpbmNvbXBsZXRlX2N0eCA9IHJlcXVlc3QtPmN0eDsKKwlpZiAoaTkx NV9nZW1fY29udGV4dF9pc19kZWZhdWx0KGluY29tcGxldGVfY3R4KSkKKwkJcmV0dXJuOworCiAJ bGlzdF9mb3JfZWFjaF9lbnRyeV9jb250aW51ZShyZXF1ZXN0LCAmZW5naW5lLT5yZXF1ZXN0X2xp c3QsIGxpbmspCi0JCWk5MTVfc2V0X3Jlc2V0X3N0YXR1cyhyZXF1ZXN0LT5jdHgsIGZhbHNlKTsK KwkJaWYgKHJlcXVlc3QtPmN0eCA9PSBpbmNvbXBsZXRlX2N0eCkKKwkJCXJlc2V0X3JlcXVlc3Qo cmVxdWVzdCk7CiB9CiAKLXN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZV9jbGVhbnVw KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3ZvaWQgaTkxNV9nZW1fcmVzZXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxdWVzdDsKLQlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZzsKKwlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmU7CiAKLQkvKiBFbnN1cmUgaXJxIGhhbmRsZXIgZmluaXNoZXMs IGFuZCBub3QgcnVuIGFnYWluLiAqLwotCXRhc2tsZXRfa2lsbCgmZW5naW5lLT5pcnFfdGFza2xl dCk7CisJaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3RzKGRldl9wcml2KTsKKworCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGRldl9wcml2KQorCQlpOTE1X2dlbV9yZXNldF9lbmdpbmUoZW5naW5lKTsK KworCWk5MTVfZ2VtX3Jlc3RvcmVfZmVuY2VzKCZkZXZfcHJpdi0+ZHJtKTsKK30KKworc3RhdGlj IHZvaWQgbm9wX3N1Ym1pdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx dWVzdCkKK3sKK30KKworc3RhdGljIHZvaWQgaTkxNV9nZW1fY2xlYW51cF9lbmdpbmUoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCWVuZ2luZS0+c3VibWl0X3JlcXVlc3QgPSBu b3Bfc3VibWl0X3JlcXVlc3Q7CiAKIAkvKiBNYXJrIGFsbCBwZW5kaW5nIHJlcXVlc3RzIGFzIGNv bXBsZXRlIHNvIHRoYXQgYW55IGNvbmN1cnJlbnQKIAkgKiAobG9ja2xlc3MpIGxvb2t1cCBkb2Vz bid0IHRyeSBhbmQgd2FpdCB1cG9uIHRoZSByZXF1ZXN0IGFzIHdlCkBAIC0yNjAwLDU0ICsyNjU2 LDIyIEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZV9jbGVhbnVwKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJc3Bpbl91bmxvY2soJmVuZ2luZS0+ZXhlY2xpc3Rf bG9jayk7CiAJfQogCi0JLyoKLQkgKiBXZSBtdXN0IGZyZWUgdGhlIHJlcXVlc3RzIGFmdGVyIGFs bCB0aGUgY29ycmVzcG9uZGluZyBvYmplY3RzIGhhdmUKLQkgKiBiZWVuIG1vdmVkIG9mZiBhY3Rp dmUgbGlzdHMuIFdoaWNoIGlzIHRoZSBzYW1lIG9yZGVyIGFzIHRoZSBub3JtYWwKLQkgKiByZXRp cmVfcmVxdWVzdHMgZnVuY3Rpb24gZG9lcy4gVGhpcyBpcyBpbXBvcnRhbnQgaWYgb2JqZWN0IGhv bGQKLQkgKiBpbXBsaWNpdCByZWZlcmVuY2VzIG9uIHRoaW5ncyBsaWtlIGUuZy4gcHBndHQgYWRk cmVzcyBzcGFjZXMgdGhyb3VnaAotCSAqIHRoZSByZXF1ZXN0LgotCSAqLwotCXJlcXVlc3QgPSBp OTE1X2dlbV9hY3RpdmVfcmF3KCZlbmdpbmUtPmxhc3RfcmVxdWVzdCwKLQkJCQkgICAgICAmZW5n aW5lLT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQlpZiAocmVxdWVzdCkKLQkJaTkxNV9nZW1f cmVxdWVzdF9yZXRpcmVfdXB0byhyZXF1ZXN0KTsKLQlHRU1fQlVHX09OKGludGVsX2VuZ2luZV9p c19hY3RpdmUoZW5naW5lKSk7Ci0KLQkvKiBIYXZpbmcgZmx1c2hlZCBhbGwgcmVxdWVzdHMgZnJv bSBhbGwgcXVldWVzLCB3ZSBrbm93IHRoYXQgYWxsCi0JICogcmluZ2J1ZmZlcnMgbXVzdCBub3cg YmUgZW1wdHkuIEhvd2V2ZXIsIHNpbmNlIHdlIGRvIG5vdCByZWNsYWltCi0JICogYWxsIHNwYWNl IHdoZW4gcmV0aXJpbmcgdGhlIHJlcXVlc3QgKHRvIHByZXZlbnQgSEVBRHMgY29sbGlkaW5nCi0J ICogd2l0aCByYXBpZCByaW5nYnVmZmVyIHdyYXBhcm91bmQpIHRoZSBhbW91bnQgb2YgYXZhaWxh YmxlIHNwYWNlCi0JICogdXBvbiByZXNldCBpcyBsZXNzIHRoYW4gd2hlbiB3ZSBzdGFydC4gRG8g b25lIG1vcmUgcGFzcyBvdmVyCi0JICogYWxsIHRoZSByaW5nYnVmZmVycyB0byByZXNldCBsYXN0 X3JldGlyZWRfaGVhZC4KLQkgKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJpbmcsICZlbmdpbmUt PmJ1ZmZlcnMsIGxpbmspIHsKLQkJcmluZy0+bGFzdF9yZXRpcmVkX2hlYWQgPSByaW5nLT50YWls OwotCQlpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5nKTsKLQl9Ci0KIAllbmdpbmUtPmk5MTUt Pmd0LmFjdGl2ZV9lbmdpbmVzICY9IH5pbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUpOwogfQogCi12 b2lkIGk5MTVfZ2VtX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit2b2lkIGk5MTVfZ2Vt X3NldF93ZWRnZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmU7CiAKLQkvKgotCSAqIEJlZm9yZSB3ZSBmcmVlIHRoZSBvYmpl Y3RzIGZyb20gdGhlIHJlcXVlc3RzLCB3ZSBuZWVkIHRvIGluc3BlY3QKLQkgKiB0aGVtIGZvciBm aW5kaW5nIHRoZSBndWlsdHkgcGFydHkuIEFzIHRoZSByZXF1ZXN0cyBvbmx5IGJvcnJvdwotCSAq IHRoZWlyIHJlZmVyZW5jZSB0byB0aGUgb2JqZWN0cywgdGhlIGluc3BlY3Rpb24gbXVzdCBiZSBk b25lIGZpcnN0LgotCSAqLwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KQotCQlp OTE1X2dlbV9yZXNldF9lbmdpbmVfc3RhdHVzKGVuZ2luZSk7CisJbG9ja2RlcF9hc3NlcnRfaGVs ZCgmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCXNldF9iaXQoSTkxNV9XRURHRUQsICZk ZXZfcHJpdi0+Z3B1X2Vycm9yLmZsYWdzKTsKIAorCWk5MTVfZ2VtX2NvbnRleHRfbG9zdChkZXZf cHJpdik7CiAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpCi0JCWk5MTVfZ2VtX3Jl c2V0X2VuZ2luZV9jbGVhbnVwKGVuZ2luZSk7CisJCWk5MTVfZ2VtX2NsZWFudXBfZW5naW5lKGVu Z2luZSk7CiAJbW9kX2RlbGF5ZWRfd29yayhkZXZfcHJpdi0+d3EsICZkZXZfcHJpdi0+Z3QuaWRs ZV93b3JrLCAwKTsKIAotCWk5MTVfZ2VtX2NvbnRleHRfcmVzZXQoZGV2KTsKLQotCWk5MTVfZ2Vt X3Jlc3RvcmVfZmVuY2VzKGRldik7CisJaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3RzKGRldl9wcml2 KTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTQzNDMsOCArNDM2Nyw3IEBAIHZvaWQgaTkxNV9nZW1f cmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJICogZ3VhcmFudGVlIHRoYXQgdGhlIGNv bnRleHQgaW1hZ2UgaXMgY29tcGxldGUuIFNvIGxldCdzIGp1c3QgcmVzZXQKIAkgKiBpdCBhbmQg c3RhcnQgYWdhaW4uCiAJICovCi0JaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykKLQkJaW50ZWxf bHJfY29udGV4dF9yZXNldChkZXZfcHJpdiwgZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0KTsKKwlk ZXZfcHJpdi0+Z3QucmVzdW1lKGRldl9wcml2KTsKIAogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1 Y3RfbXV0ZXgpOwogfQpAQCAtNDQ5Niw4ICs0NTE5LDEwIEBAIGludCBpOTE1X2dlbV9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwog CiAJaWYgKCFpOTE1LmVuYWJsZV9leGVjbGlzdHMpIHsKKwkJZGV2X3ByaXYtPmd0LnJlc3VtZSA9 IGludGVsX2xlZ2FjeV9zdWJtaXNzaW9uX3Jlc3VtZTsKIAkJZGV2X3ByaXYtPmd0LmNsZWFudXBf ZW5naW5lID0gaW50ZWxfZW5naW5lX2NsZWFudXA7CiAJfSBlbHNlIHsKKwkJZGV2X3ByaXYtPmd0 LnJlc3VtZSA9IGludGVsX2xyX2NvbnRleHRfcmVzdW1lOwogCQlkZXZfcHJpdi0+Z3QuY2xlYW51 cF9lbmdpbmUgPSBpbnRlbF9sb2dpY2FsX3JpbmdfY2xlYW51cDsKIAl9CiAKQEAgLTQ1MzAsNyAr NDU1NSw3IEBAIGludCBpOTE1X2dlbV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCSAq IGZvciBhbGwgb3RoZXIgZmFpbHVyZSwgc3VjaCBhcyBhbiBhbGxvY2F0aW9uIGZhaWx1cmUsIGJh aWwuCiAJCSAqLwogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBpbml0aWFsaXplIEdQVSwgZGVjbGFy aW5nIGl0IHdlZGdlZFxuIik7Ci0JCXNldF9iaXQoSTkxNV9XRURHRUQsICZkZXZfcHJpdi0+Z3B1 X2Vycm9yLmZsYWdzKTsKKwkJaTkxNV9nZW1fc2V0X3dlZGdlZChkZXZfcHJpdik7CiAJCXJldCA9 IDA7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKaW5kZXggMzU5 NTBlZTQ2YTFkLi5kZjEwZjRlOTU3MzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmMKQEAgLTQyMCwyMiArNDIwLDYgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fY29udGV4 dF91bnBpbihzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCX0KIH0KIAotdm9pZCBpOTE1 X2dlbV9jb250ZXh0X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCi0JbG9ja2RlcF9hc3Nl cnRfaGVsZCgmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0JaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0 cykgewotCQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OwotCi0JCWxpc3RfZm9yX2VhY2hf ZW50cnkoY3R4LCAmZGV2X3ByaXYtPmNvbnRleHRfbGlzdCwgbGluaykKLQkJCWludGVsX2xyX2Nv bnRleHRfcmVzZXQoZGV2X3ByaXYsIGN0eCk7Ci0JfQotCi0JaTkxNV9nZW1fY29udGV4dF9sb3N0 KGRldl9wcml2KTsKLX0KLQogaW50IGk5MTVfZ2VtX2NvbnRleHRfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1p c3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwppbmRl eCA3NzUyNmQ3ZjQxZjguLmQ1YTRlOWVkY2NjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3VjX3N1Ym1pc3Npb24uYwpAQCAtOTk0LDYgKzk5NCw3IEBAIGludCBpOTE1X2d1Y19zdWJt aXNzaW9uX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc3RydWN0 IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndWM7CiAJc3RydWN0IGk5MTVfZ3VjX2NsaWVu dCAqY2xpZW50OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7CiAKIAkvKiBjbGllbnQgZm9yIGV4ZWNidWYgc3Vi bWlzc2lvbiAqLwogCWNsaWVudCA9IGd1Y19jbGllbnRfYWxsb2MoZGV2X3ByaXYsCkBAIC0xMDEw LDkgKzEwMTEsMTQgQEAgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlndWNfaW5pdF9kb29yYmVsbF9odyhndWMpOwogCiAJ LyogVGFrZSBvdmVyIGZyb20gbWFudWFsIGNvbnRyb2wgb2YgRUxTUCAoZXhlY2xpc3RzKSAqLwot CWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KQorCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGRldl9wcml2KSB7CiAJCWVuZ2luZS0+c3VibWl0X3JlcXVlc3QgPSBpOTE1X2d1Y19zdWJt aXQ7CiAKKwkJLyogUmVwbGF5IHRoZSBjdXJyZW50IHNldCBvZiBwcmV2aW91c2x5IHN1Ym1pdHRl ZCByZXF1ZXN0cyAqLworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcXVlc3QsICZlbmdpbmUtPnJl cXVlc3RfbGlzdCwgbGluaykKKwkJCWk5MTVfZ3VjX3N1Ym1pdChyZXF1ZXN0KTsKKwl9CisKIAly ZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5n aW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwppbmRleCAy ZTk2YTg2MTA1YzIuLmU0MDVmMTA4MDI5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZW5naW5lX2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5n aW5lX2NzLmMKQEAgLTIxMSw2ICsyMTEsOCBAQCB2b2lkIGludGVsX2VuZ2luZV9pbml0X2hhbmdj aGVjayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJbWVtc2V0KCZlbmdpbmUt PmhhbmdjaGVjaywgMCwgc2l6ZW9mKGVuZ2luZS0+aGFuZ2NoZWNrKSk7CiAJY2xlYXJfYml0KGVu Z2luZS0+aWQsICZlbmdpbmUtPmk5MTUtPmdwdV9lcnJvci5taXNzZWRfaXJxX3JpbmdzKTsKKwlp ZiAoaW50ZWxfZW5naW5lX2hhc193YWl0ZXIoZW5naW5lKSkKKwkJaTkxNV9xdWV1ZV9oYW5nY2hl Y2soZW5naW5lLT5pOTE1KTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfZW5naW5lX2luaXRfcmVx dWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQpAQCAtMjMwLDcgKzIzMiw2IEBA IHN0YXRpYyB2b2lkIGludGVsX2VuZ2luZV9pbml0X3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKICAqLwogdm9pZCBpbnRlbF9lbmdpbmVfc2V0dXBfY29tbW9uKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKLQlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5i dWZmZXJzKTsKIAlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5leGVjbGlzdF9xdWV1ZSk7CiAJc3Bp bl9sb2NrX2luaXQoJmVuZ2luZS0+ZXhlY2xpc3RfbG9jayk7CiAKQEAgLTMwNiw2ICszMDcsMTgg QEAgaW50IGludGVsX2VuZ2luZV9pbml0X2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCiAJcmV0dXJuIDA7CiB9CiAKK3ZvaWQgaW50ZWxfZW5naW5lX3Jlc2V0X2lycShzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZW5naW5lLT5pOTE1OworCisJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmly cV9sb2NrKTsKKwlpZiAoaW50ZWxfZW5naW5lX2hhc193YWl0ZXIoZW5naW5lKSkKKwkJZW5naW5l LT5pcnFfZW5hYmxlKGVuZ2luZSk7CisJZWxzZQorCQllbmdpbmUtPmlycV9kaXNhYmxlKGVuZ2lu ZSk7CisJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworfQorCiAvKioKICAq IGludGVsX2VuZ2luZXNfY2xlYW51cF9jb21tb24gLSBjbGVhbnMgdXAgdGhlIGVuZ2luZSBzdGF0 ZSBjcmVhdGVkIGJ5CiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGNvbW1v biBpbml0aWFpbGl6ZXJzLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCBhMzM2ODdkMjk0 YjUuLjYxNTQ5YTYyM2UyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTEyMjIsMTEg KzEyMjIsMTYgQEAgc3RhdGljIHZvaWQgbHJjX2luaXRfaHdzKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKIHN0YXRpYyBpbnQgZ2VuOF9pbml0X2NvbW1vbl9yaW5nKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBlbmdpbmUtPmk5MTU7CisJaW50IHJldDsKKworCXJldCA9IGludGVsX21vY3NfaW5pdF9l bmdpbmUoZW5naW5lKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCiAJbHJjX2luaXRfaHdz KGVuZ2luZSk7CiAKLQlJOTE1X1dSSVRFX0lNUihlbmdpbmUsCi0JCSAgICAgICB+KGVuZ2luZS0+ aXJxX2VuYWJsZV9tYXNrIHwgZW5naW5lLT5pcnFfa2VlcF9tYXNrKSk7CisJaW50ZWxfZW5naW5l X3Jlc2V0X2lycShlbmdpbmUpOworCiAJSTkxNV9XUklURShSSU5HX0hXU1RBTShlbmdpbmUtPm1t aW9fYmFzZSksIDB4ZmZmZmZmZmYpOwogCiAJSTkxNV9XUklURShSSU5HX01PREVfR0VONyhlbmdp bmUpLApAQCAtMTIzNyw3ICsxMjQyLDEwIEBAIHN0YXRpYyBpbnQgZ2VuOF9pbml0X2NvbW1vbl9y aW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCWludGVsX2VuZ2luZV9pbml0 X2hhbmdjaGVjayhlbmdpbmUpOwogCi0JcmV0dXJuIGludGVsX21vY3NfaW5pdF9lbmdpbmUoZW5n aW5lKTsKKwlpZiAoIWV4ZWNsaXN0c19lbHNwX2lkbGUoZW5naW5lKSkKKwkJZXhlY2xpc3RzX3N1 Ym1pdF9wb3J0cyhlbmdpbmUpOworCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgZ2VuOF9p bml0X3JlbmRlcl9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKQEAgLTEyNzMs NiArMTI4MSwzNiBAQCBzdGF0aWMgaW50IGdlbjlfaW5pdF9yZW5kZXJfcmluZyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJcmV0dXJuIGluaXRfd29ya2Fyb3VuZHNfcmluZyhlbmdp bmUpOwogfQogCitzdGF0aWMgdm9pZCByZXNldF9jb21tb25fcmluZyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUsCisJCQkgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cXVlc3QpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5p OTE1OworCXN0cnVjdCBleGVjbGlzdF9wb3J0ICpwb3J0ID0gZW5naW5lLT5leGVjbGlzdF9wb3J0 OworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9ICZyZXF1ZXN0LT5jdHgtPmVuZ2luZVtlbmdp bmUtPmlkXTsKKworCS8qIE1vdmUgdGhlIFJJTkdfSEVBRCBvbnRvIHRoZSBicmVhZGNydW1iLCBw YXN0IHRoZSBoYW5naW5nIGJhdGNoICovCisJY2UtPmxyY19yZWdfc3RhdGVbQ1RYX1JJTkdfSEVB RCsxXSA9IHJlcXVlc3QtPnBvc3RmaXg7CisJcmVxdWVzdC0+cmluZy0+aGVhZCA9IHJlcXVlc3Qt PnBvc3RmaXg7CisJcmVxdWVzdC0+cmluZy0+bGFzdF9yZXRpcmVkX2hlYWQgPSAtMTsKKwlpbnRl bF9yaW5nX3VwZGF0ZV9zcGFjZShyZXF1ZXN0LT5yaW5nKTsKKworCWlmIChpOTE1LmVuYWJsZV9n dWNfc3VibWlzc2lvbikKKwkJcmV0dXJuOworCisJLyogQ2F0Y2ggdXAgd2l0aCBhbnkgbWlzc2Vk IGNvbnRleHQtc3dpdGNoIGludGVycnVwdHMgKi8KKwlJOTE1X1dSSVRFKFJJTkdfQ09OVEVYVF9T VEFUVVNfUFRSKGVuZ2luZSksIF9NQVNLRURfRklFTEQoMHhmZmZmLCAwKSk7CisJaWYgKHJlcXVl c3QtPmN0eCAhPSBwb3J0WzBdLnJlcXVlc3QtPmN0eCkgeworCQlpOTE1X2dlbV9yZXF1ZXN0X3B1 dChwb3J0WzBdLnJlcXVlc3QpOworCQlwb3J0WzBdID0gcG9ydFsxXTsKKwkJbWVtc2V0KCZwb3J0 WzFdLCAwLCBzaXplb2YocG9ydFsxXSkpOworCX0KKworCS8qIENTIGlzIHN0b3BwZWQsIGFuZCB3 ZSB3aWxsIHJlc3VibWl0IGJvdGggcG9ydHMgb24gcmVzdW1lICovCisJR0VNX0JVR19PTihyZXF1 ZXN0LT5jdHggIT0gcG9ydFswXS5yZXF1ZXN0LT5jdHgpOworCXBvcnRbMF0uY291bnQgPSAwOwor CXBvcnRbMV0uY291bnQgPSAwOworfQorCiBzdGF0aWMgaW50IGludGVsX2xvZ2ljYWxfcmluZ19l bWl0X3BkcHMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CiAJc3RydWN0IGk5 MTVfaHdfcHBndHQgKnBwZ3R0ID0gcmVxLT5jdHgtPnBwZ3R0OwpAQCAtMTYzNSw2ICsxNjczLDcg QEAgbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKIHsKIAkvKiBEZWZhdWx0IHZmdW5jcyB3aGljaCBjYW4gYmUgb3ZlcnJpZGVuIGJ5IGVh Y2ggZW5naW5lLiAqLwogCWVuZ2luZS0+aW5pdF9odyA9IGdlbjhfaW5pdF9jb21tb25fcmluZzsK KwllbmdpbmUtPnJlc2V0X2h3ID0gcmVzZXRfY29tbW9uX3Jpbmc7CiAJZW5naW5lLT5lbWl0X2Zs dXNoID0gZ2VuOF9lbWl0X2ZsdXNoOwogCWVuZ2luZS0+ZW1pdF9yZXF1ZXN0ID0gZ2VuOF9lbWl0 X3JlcXVlc3Q7CiAJZW5naW5lLT5zdWJtaXRfcmVxdWVzdCA9IGV4ZWNsaXN0c19zdWJtaXRfcmVx dWVzdDsKQEAgLTIwODcsOSArMjEyNiw5IEBAIGVycm9yX2RlcmVmX29iajoKIAlyZXR1cm4gcmV0 OwogfQogCi12b2lkIGludGVsX2xyX2NvbnRleHRfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAotCQkJICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCit2b2lk IGludGVsX2xyX2NvbnRleHRfcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIHsKKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4ID0gZGV2X3ByaXYtPmtlcm5lbF9j b250ZXh0OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAogCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGRldl9wcml2KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCmluZGV4IDRk NzAzNDY1MDBjMi4uNGZlZDgxNjVmOThhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaApAQCAt ODcsOCArODcsNyBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfdW5waW4oc3RydWN0IGk5MTVfZ2Vt X2NvbnRleHQgKmN0eCwKIAogc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CiAKLXZvaWQgaW50ZWxf bHJfY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkg ICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCk7Cit2b2lkIGludGVsX2xyX2NvbnRleHRf cmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB1aW50NjRfdCBpbnRl bF9scl9jb250ZXh0X2Rlc2NyaXB0b3Ioc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJ CQkgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCBkMmQ4NWZjODY5ZTEuLjdhNzQ3NTAwNzZjNSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAtNTY0LDYgKzU2NCw4 IEBAIHN0YXRpYyBpbnQgaW5pdF9yaW5nX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCiAJZWxzZQogCQlpbnRlbF9yaW5nX3NldHVwX3N0YXR1c19wYWdlKGVuZ2luZSk7CiAK KwlpbnRlbF9lbmdpbmVfcmVzZXRfaXJxKGVuZ2luZSk7CisKIAkvKiBFbmZvcmNlIG9yZGVyaW5n IGJ5IHJlYWRpbmcgSEVBRCByZWdpc3RlciBiYWNrICovCiAJSTkxNV9SRUFEX0hFQUQoZW5naW5l KTsKIApAQCAtNTc3LDM0ICs1NzksMzMgQEAgc3RhdGljIGludCBpbml0X3JpbmdfY29tbW9uKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlpZiAoSTkxNV9SRUFEX0hFQUQoZW5naW5l KSkKIAkJRFJNX0RFQlVHKCIlcyBpbml0aWFsaXphdGlvbiBmYWlsZWQgW2hlYWQ9JTA4eF0sIGZ1 ZGdpbmdcbiIsCiAJCQkgIGVuZ2luZS0+bmFtZSwgSTkxNV9SRUFEX0hFQUQoZW5naW5lKSk7Ci0J STkxNV9XUklURV9IRUFEKGVuZ2luZSwgMCk7Ci0JKHZvaWQpSTkxNV9SRUFEX0hFQUQoZW5naW5l KTsKKworCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmcpOworCUk5MTVfV1JJVEVfSEVBRChl bmdpbmUsIHJpbmctPmhlYWQpOworCUk5MTVfV1JJVEVfVEFJTChlbmdpbmUsIHJpbmctPnRhaWwp OworCSh2b2lkKUk5MTVfUkVBRF9UQUlMKGVuZ2luZSk7CiAKIAlJOTE1X1dSSVRFX0NUTChlbmdp bmUsCiAJCQkoKHJpbmctPnNpemUgLSBQQUdFX1NJWkUpICYgUklOR19OUl9QQUdFUykKIAkJCXwg UklOR19WQUxJRCk7CiAKIAkvKiBJZiB0aGUgaGVhZCBpcyBzdGlsbCBub3QgemVybywgdGhlIHJp bmcgaXMgZGVhZCAqLwotCWlmICh3YWl0X2ZvcigoSTkxNV9SRUFEX0NUTChlbmdpbmUpICYgUklO R19WQUxJRCkgIT0gMCAmJgotCQkgICAgIEk5MTVfUkVBRF9TVEFSVChlbmdpbmUpID09IGk5MTVf Z2d0dF9vZmZzZXQocmluZy0+dm1hKSAmJgotCQkgICAgIChJOTE1X1JFQURfSEVBRChlbmdpbmUp ICYgSEVBRF9BRERSKSA9PSAwLCA1MCkpIHsKKwlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXJf ZncoZGV2X3ByaXYsIFJJTkdfQ1RMKGVuZ2luZS0+bW1pb19iYXNlKSwKKwkJCQkgICAgICAgUklO R19WQUxJRCwgUklOR19WQUxJRCwKKwkJCQkgICAgICAgNTApKSB7CiAJCURSTV9FUlJPUigiJXMg aW5pdGlhbGl6YXRpb24gZmFpbGVkICIKLQkJCSAgImN0bCAlMDh4ICh2YWxpZD8gJWQpIGhlYWQg JTA4eCB0YWlsICUwOHggc3RhcnQgJTA4eCBbZXhwZWN0ZWQgJTA4eF1cbiIsCisJCQkgICJjdGwg JTA4eCAodmFsaWQ/ICVkKSBoZWFkICUwOHggWyUwOHhdIHRhaWwgJTA4eCBbJTA4eF0gc3RhcnQg JTA4eCBbZXhwZWN0ZWQgJTA4eF1cbiIsCiAJCQkgIGVuZ2luZS0+bmFtZSwKIAkJCSAgSTkxNV9S RUFEX0NUTChlbmdpbmUpLAogCQkJICBJOTE1X1JFQURfQ1RMKGVuZ2luZSkgJiBSSU5HX1ZBTElE LAotCQkJICBJOTE1X1JFQURfSEVBRChlbmdpbmUpLCBJOTE1X1JFQURfVEFJTChlbmdpbmUpLAor CQkJICBJOTE1X1JFQURfSEVBRChlbmdpbmUpLCByaW5nLT5oZWFkLAorCQkJICBJOTE1X1JFQURf VEFJTChlbmdpbmUpLCByaW5nLT50YWlsLAogCQkJICBJOTE1X1JFQURfU1RBUlQoZW5naW5lKSwK IAkJCSAgaTkxNV9nZ3R0X29mZnNldChyaW5nLT52bWEpKTsKIAkJcmV0ID0gLUVJTzsKIAkJZ290 byBvdXQ7CiAJfQogCi0JcmluZy0+bGFzdF9yZXRpcmVkX2hlYWQgPSAtMTsKLQlyaW5nLT5oZWFk ID0gSTkxNV9SRUFEX0hFQUQoZW5naW5lKTsKLQlyaW5nLT50YWlsID0gSTkxNV9SRUFEX1RBSUwo ZW5naW5lKSAmIFRBSUxfQUREUjsKLQlpbnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShyaW5nKTsKLQog CWludGVsX2VuZ2luZV9pbml0X2hhbmdjaGVjayhlbmdpbmUpOwogCiBvdXQ6CkBAIC02MTMsNiAr NjE0LDE1IEBAIG91dDoKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgdm9pZCByZXNldF9yaW5n X2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkgICAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCit7CisJc3RydWN0IGludGVsX3JpbmcgKnJp bmcgPSByZXF1ZXN0LT5yaW5nOworCisJcmluZy0+aGVhZCA9IHJlcXVlc3QtPnBvc3RmaXg7CisJ cmluZy0+bGFzdF9yZXRpcmVkX2hlYWQgPSAtMTsKK30KKwogc3RhdGljIGludCBpbnRlbF9yaW5n X3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CiAJ c3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7CkBAIC0yMDA3LDcgKzIwMTcsNiBA QCBpbnRlbF9lbmdpbmVfY3JlYXRlX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l LCBpbnQgc2l6ZSkKIAl9CiAJcmluZy0+dm1hID0gdm1hOwogCi0JbGlzdF9hZGQoJnJpbmctPmxp bmssICZlbmdpbmUtPmJ1ZmZlcnMpOwogCXJldHVybiByaW5nOwogfQogCkBAIC0yMDE1LDcgKzIw MjQsNiBAQCB2b2lkCiBpbnRlbF9yaW5nX2ZyZWUoc3RydWN0IGludGVsX3JpbmcgKnJpbmcpCiB7 CiAJaTkxNV92bWFfcHV0KHJpbmctPnZtYSk7Ci0JbGlzdF9kZWwoJnJpbmctPmxpbmspOwogCWtm cmVlKHJpbmcpOwogfQogCkBAIC0yMTY5LDYgKzIxNzcsMTYgQEAgdm9pZCBpbnRlbF9lbmdpbmVf Y2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJZW5naW5lLT5pOTE1ID0g TlVMTDsKIH0KIAordm9pZCBpbnRlbF9sZWdhY3lfc3VibWlzc2lvbl9yZXN1bWUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZTsKKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7CisJCWVuZ2luZS0+ YnVmZmVyLT5oZWFkID0gZW5naW5lLT5idWZmZXItPnRhaWw7CisJCWVuZ2luZS0+YnVmZmVyLT5s YXN0X3JldGlyZWRfaGVhZCA9IC0xOworCX0KK30KKwogaW50IGludGVsX3JpbmdfYWxsb2NfcmVx dWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogewogCWlu dCByZXQ7CkBAIC0yNjU0LDYgKzI2NzIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9yaW5nX2RlZmF1 bHRfdmZ1bmNzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlpbnRlbF9yaW5n X2luaXRfc2VtYXBob3JlcyhkZXZfcHJpdiwgZW5naW5lKTsKIAogCWVuZ2luZS0+aW5pdF9odyA9 IGluaXRfcmluZ19jb21tb247CisJZW5naW5lLT5yZXNldF9odyA9IHJlc2V0X3JpbmdfY29tbW9u OwogCiAJZW5naW5lLT5lbWl0X3JlcXVlc3QgPSBpOXh4X2VtaXRfcmVxdWVzdDsKIAlpZiAoaTkx NS5zZW1hcGhvcmVzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4 IDE4ODQ4YWNmNWU3NC4uMzJmNTI3NDQ3MzEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5oCkBAIC04Nyw3ICs4Nyw2IEBAIHN0cnVjdCBpbnRlbF9yaW5nIHsKIAl2b2lk ICp2YWRkcjsKIAogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQlzdHJ1Y3QgbGlz dF9oZWFkIGxpbms7CiAKIAlzdHJ1Y3QgbGlzdF9oZWFkIHJlcXVlc3RfbGlzdDsKIApAQCAtMTU3 LDcgKzE1Niw2IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgewogCXUzMgkJbW1pb19iYXNlOwog CXVuc2lnbmVkIGludCBpcnFfc2hpZnQ7CiAJc3RydWN0IGludGVsX3JpbmcgKmJ1ZmZlcjsKLQlz dHJ1Y3QgbGlzdF9oZWFkIGJ1ZmZlcnM7CiAKIAkvKiBSYXRoZXIgdGhhbiBoYXZlIGV2ZXJ5IGNs aWVudCB3YWl0IHVwb24gYWxsIHVzZXIgaW50ZXJydXB0cywKIAkgKiB3aXRoIHRoZSBoZXJkIHdh a2luZyBhZnRlciBldmVyeSBpbnRlcnJ1cHQgYW5kIGVhY2ggZG9pbmcgdGhlCkBAIC0yMTEsNiAr MjA5LDggQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJdm9pZAkJKCppcnFfZGlzYWJsZSko c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIAogCWludAkJKCppbml0X2h3KShzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOworCXZvaWQJCSgqcmVzZXRfaHcpKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEpOwogCiAJaW50CQkoKmluaXRfY29udGV4dCkoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEpOwogCkBAIC00NDQsNiArNDQ0LDggQEAgdm9pZCBpbnRlbF9yaW5nX2ZyZWUo c3RydWN0IGludGVsX3JpbmcgKnJpbmcpOwogdm9pZCBpbnRlbF9lbmdpbmVfc3RvcChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogdm9pZCBpbnRlbF9lbmdpbmVfY2xlYW51cChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogCit2b2lkIGludGVsX2xlZ2FjeV9zdWJtaXNz aW9uX3Jlc3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworCiBpbnQgaW50 ZWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcXVlc3QpOwogCiBpbnQgX19tdXN0X2NoZWNrIGludGVsX3JpbmdfYmVnaW4oc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBuKTsKQEAgLTQ4Miw2ICs0ODQsNyBAQCBpbnQg X19pbnRlbF9yaW5nX3NwYWNlKGludCBoZWFkLCBpbnQgdGFpbCwgaW50IHNpemUpOwogdm9pZCBp bnRlbF9yaW5nX3VwZGF0ZV9zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyk7CiAKIHZvaWQg aW50ZWxfZW5naW5lX2luaXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1 MzIgc2Vxbm8pOwordm9pZCBpbnRlbF9lbmdpbmVfcmVzZXRfaXJxKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSk7CiAKIHZvaWQgaW50ZWxfZW5naW5lX3NldHVwX2NvbW1vbihzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogaW50IGludGVsX2VuZ2luZV9pbml0X2NvbW1vbihz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwotLSAKMi45LjMKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=