From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH v10b 4/6] drm/i915: Interrupt driven fences Date: Fri, 17 Jun 2016 12:05:20 +0100 Message-ID: <1466161520-36366-1-git-send-email-John.C.Harrison@Intel.com> References: <1466081680-2344-5-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 207416EBA1 for ; Fri, 17 Jun 2016 11:05:26 +0000 (UTC) In-Reply-To: <1466081680-2344-5-git-send-email-John.C.Harrison@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 RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KClRoZSBpbnRl bmRlZCB1c2FnZSBtb2RlbCBmb3Igc3RydWN0IGZlbmNlIGlzIHRoYXQgdGhlIHNpZ25hbGxlZCBz dGF0dXMKc2hvdWxkIGJlIHNldCBvbiBkZW1hbmQgcmF0aGVyIHRoYW4gcG9sbGVkLiBUaGF0IGlz LCB0aGVyZSBzaG91bGQgbm90CmJlIGEgbmVlZCBmb3IgYSAnc2lnbmFsZWQnIGZ1bmN0aW9uIHRv IGJlIGNhbGxlZCBldmVyeXRpbWUgdGhlIHN0YXR1cwppcyBxdWVyaWVkLiBJbnN0ZWFkLCAnc29t ZXRoaW5nJyBzaG91bGQgYmUgZG9uZSB0byBlbmFibGUgYSBzaWduYWwKY2FsbGJhY2sgZnJvbSB0 aGUgaGFyZHdhcmUgd2hpY2ggd2lsbCB1cGRhdGUgdGhlIHN0YXRlIGRpcmVjdGx5LiBJbgp0aGUg Y2FzZSBvZiByZXF1ZXN0cywgdGhpcyBpcyB0aGUgc2Vxbm8gdXBkYXRlIGludGVycnVwdC4gVGhl IGlkZWEgaXMKdGhhdCB0aGlzIGNhbGxiYWNrIHdpbGwgb25seSBiZSBlbmFibGVkIG9uIGRlbWFu ZCB3aGVuIHNvbWV0aGluZwphY3R1YWxseSB0cmllcyB0byB3YWl0IG9uIHRoZSBmZW5jZS4KClRo aXMgY2hhbmdlIHJlbW92ZXMgdGhlIHBvbGxpbmcgdGVzdCBhbmQgcmVwbGFjZXMgaXQgd2l0aCB0 aGUgY2FsbGJhY2sKc2NoZW1lLiBFYWNoIGZlbmNlIGlzIGFkZGVkIHRvIGEgJ3BsZWFzZSBwb2tl IG1lJyBsaXN0IGF0IHRoZSBzdGFydCBvZgppOTE1X2FkZF9yZXF1ZXN0KCkuIFRoZSBpbnRlcnJ1 cHQgaGFuZGxlciAodmlhIGEgZGVmZXJyZWQgd29yayBxdWV1ZSkKdGhlbiBzY2FucyB0aHJvdWdo IHRoZSAncG9rZSBtZScgbGlzdCB3aGVuIGEgbmV3IHNlcW5vIHBvcHMgb3V0IGFuZApzaWduYWxz IGFueSBtYXRjaGluZyBmZW5jZS9yZXF1ZXN0LiBUaGUgZmVuY2UgaXMgdGhlbiByZW1vdmVkIGZy b20gdGhlCmxpc3Qgc28gdGhlIGVudGlyZSByZXF1ZXN0IHN0YWNrIGRvZXMgbm90IG5lZWQgdG8g YmUgc2Nhbm5lZCBldmVyeQp0aW1lLiBUaGUgZmVuY2UgaXMgYWRkZWQgdG8gdGhlIGxpc3QgYmVm b3JlIHRoZSBjb21tYW5kcyB0byBnZW5lcmF0ZQp0aGUgc2Vxbm8gaW50ZXJydXB0IGFyZSBhZGRl ZCB0byB0aGUgcmluZy4gVGh1cyB0aGUgc2VxdWVuY2UgaXMKZ3VhcmFudGVlZCB0byBiZSByYWNl IGZyZWUgaWYgdGhlIGludGVycnVwdCBpcyBhbHJlYWR5IGVuYWJsZWQuCgpOb3RlIHRoYXQgdGhl IGludGVycnVwdCBpcyBvbmx5IGVuYWJsZWQgb24gZGVtYW5kIChpLmUuIHdoZW4KX193YWl0X3Jl cXVlc3QoKSBpcyBjYWxsZWQpLiBUaHVzIHRoZXJlIGlzIHN0aWxsIGEgcG90ZW50aWFsIHJhY2Ug d2hlbgplbmFibGluZyB0aGUgaW50ZXJydXB0IGFzIHRoZSByZXF1ZXN0IG1heSBhbHJlYWR5IGhh dmUgY29tcGxldGVkLgpIb3dldmVyLCB0aGlzIGlzIHNpbXBseSBzb2x2ZWQgYnkgY2FsbGluZyB0 aGUgaW50ZXJydXB0IHByb2Nlc3NpbmcKY29kZSBpbW1lZGlhdGVseSBhZnRlciBlbmFibGluZyB0 aGUgaW50ZXJydXB0IGFuZCB0aGVyZWJ5IGNoZWNraW5nIGZvcgphbHJlYWR5IGNvbXBsZXRlZCBy ZXF1ZXN0cy4KCkxhc3RseSwgdGhlIHJpbmcgY2xlYW4gdXAgY29kZSBoYXMgdGhlIHBvc3NpYmls aXR5IHRvIGNhbmNlbApvdXRzdGFuZGluZyByZXF1ZXN0cyAoZS5nLiBiZWNhdXNlIFREUiBoYXMg cmVzZXQgdGhlIHJpbmcpLiBUaGVzZQpyZXF1ZXN0cyB3aWxsIG5ldmVyIGdldCBzaWduYWxsZWQg YW5kIHNvIG11c3QgYmUgcmVtb3ZlZCBmcm9tIHRoZQpzaWduYWwgbGlzdCBtYW51YWxseS4gVGhp cyBpcyBkb25lIGJ5IHNldHRpbmcgYSAnY2FuY2VsbGVkJyBmbGFnIGFuZAp0aGVuIGNhbGxpbmcg dGhlIHJlZ3VsYXIgbm90aWZ5L3JldGlyZSBjb2RlIHBhdGggcmF0aGVyIHRoYW4KYXR0ZW1wdGlu ZyB0byBkdXBsaWNhdGUgdGhlIGxpc3QgbWFuaXB1bGF0YXRpb24gYW5kIGNsZWFuIHVwIGNvZGUg aW4KbXVsdGlwbGUgcGxhY2VzLiBUaGlzIGFsc28gYXZvaWRzIGFueSByYWNlIGNvbmRpdGlvbiB3 aGVyZSB0aGUKY2FuY2VsbGF0aW9uIHJlcXVlc3QgbWlnaHQgb2NjdXIgYWZ0ZXIvZHVyaW5nIHRo ZSBjb21wbGV0aW9uIGludGVycnVwdAphY3R1YWxseSBhcnJpdmluZy4KCnYyOiBVcGRhdGVkIHRv IHRha2UgYWR2YW50YWdlIG9mIHRoZSByZXF1ZXN0IHVucmVmZXJlbmNlIG5vIGxvbmdlcgpyZXF1 aXJpbmcgdGhlIG11dGV4IGxvY2suCgp2MzogTW92ZSB0aGUgc2lnbmFsIGxpc3QgcHJvY2Vzc2lu ZyBhcm91bmQgdG8gcHJldmVudCB1bnN1Ym1pdHRlZApyZXF1ZXN0cyBiZWluZyBhZGRlZCB0byB0 aGUgbGlzdC4gVGhpcyB3YXMgb2NjdXJyaW5nIG9uIEFuZHJvaWQKYmVjYXVzZSB0aGUgbmF0aXZl IHN5bmMgaW1wbGVtZW50YXRpb24gY2FsbHMgdGhlCmZlbmNlLT5lbmFibGVfc2lnbmFsbGluZyBB UEkgaW1tZWRpYXRlbHkgb24gZmVuY2UgY3JlYXRpb24uCgpVcGRhdGVkIGFmdGVyIHJldmlldyBj b21tZW50cyBieSBUdnJ0a28gVXJzdWxpbi4gUmVuYW1lZCBsaXN0IG5vZGVzIHRvCidsaW5rJyBp bnN0ZWFkIG9mICdsaXN0Jy4gQWRkZWQgc3VwcG9ydCBmb3IgcmV0dXJuaW5nIGFuIGVycm9yIGNv ZGUgb24KYSBjYW5jZWxsZWQgZmVuY2UuIFVwZGF0ZSBsaXN0IHByb2Nlc3NpbmcgdG8gYmUgbW9y ZSBlZmZpY2llbnQvc2FmZXIKd2l0aCByZXNwZWN0IHRvIHNwaW5sb2Nrcy4KCnY1OiBNYWRlIGk5 MTVfZ2VtX3JlcXVlc3Rfc3VibWl0IGEgc3RhdGljIGFzIGl0IGlzIG9ubHkgZXZlciBjYWxsZWQK ZnJvbSBvbmUgcGxhY2UuCgpGaXhlZCB1cCB0aGUgbG93IGxhdGVuY3kgd2FpdCBvcHRpbWlzYXRp b24uIFRoZSB0aW1lIGRlbGF5IGJldHdlZW4gdGhlCnNlcW5vIHZhbHVlIGJlaW5nIHRvIG1lbW9y eSBhbmQgdGhlIGRyaXZlJ3MgSVNSIHJ1bm5pbmcgY2FuIGJlCnNpZ25pZmljYW50LCBhdCBsZWFz dCBmb3IgdGhlIHdhaXQgcmVxdWVzdCBtaWNyby1iZW5jaG1hcmsuIFRoaXMgY2FuCmJlIGdyZWF0 bHkgaW1wcm92ZWQgYnkgZXhwbGljaXRseSBjaGVja2luZyBmb3Igc2Vxbm8gdXBkYXRlcyBpbiB0 aGUKcHJlLXdhaXQgYnVzeSBwb2xsIGxvb3AuIEFsc28gYWRkZWQgc29tZSBkb2N1bWVudGF0aW9u IGNvbW1lbnRzIHRvIHRoZQpidXN5IHBvbGwgY29kZS4KCkZpeGVkIHVwIHN1cHBvcnQgZm9yIHRo ZSBmYWtpbmcgb2YgbG9zdCBpbnRlcnJ1cHRzCih0ZXN0X2lycV9yaW5ncy9taXNzZWRfaXJxX3Jp bmdzKS4gVGhhdCBpcywgdGhlcmUgaXMgYW4gSUdUIHRlc3QgdGhhdAp0ZWxscyB0aGUgZHJpdmVy IHRvIGxvb3NlIGludGVycnVwdHMgZGVsaWJlcmF0ZWx5IGFuZCB0aGVuIGNoZWNrIHRoYXQKZXZl cnl0aGluZyBzdGlsbCB3b3JrcyBhcyBleHBlY3RlZCAoYWxiZWl0IG11Y2ggc2xvd2VyKS4KClVw ZGF0ZXMgZnJvbSByZXZpZXcgY29tbWVudHM6IHVzZSBub24gSVJRLXNhdmUgc3BpbmxvY2tpbmcs IGVhcmx5IGV4aXQKb24gV0FSTiBhbmQgaW1wcm92ZWQgY29tbWVudHMgKFR2cnRrbyBVcnN1bGlu KS4KCnY2OiBVcGRhdGVkIHRvIG5ld2VyIG5pZ3RobHkgYW5kIHJlc29sdmVkIGNvbmZsaWN0cyBh cm91bmQgdGhlCndhaXRfcmVxdWVzdCBidXN5IHNwaW4gb3B0aW1pc2F0aW9uLiBBbHNvIGZpeGVk IGEgcmFjZSBjb25kaXRpb24KYmV0d2VlbiB0aGlzIGVhcmx5IGV4aXQgcGF0aCBhbmQgdGhlIHJl Z3VsYXIgY29tcGxldGlvbiBwYXRoLgoKdjc6IFVwZGF0ZWQgdG8gbmV3ZXIgbmlnaHRseSAtIGxv dHMgb2YgcmluZyAtPiBlbmdpbmUgcmVuYW1pbmcgcGx1cyBhbgppbnRlcmZhY2UgY2hhbmdlIG9u IGdldF9zZXFubygpLiBBbHNvIGFkZGVkIGEgbGlzdF9lbXB0eSgpIGNoZWNrCmJlZm9yZSBhY3F1 cmluZyBzcGlubG9ja3MgYW5kIGRvaW5nIGxpc3QgcHJvY2Vzc2luZy4KCnY4OiBVcGRhdGVkIHRv IG5ld2VyIG5pZ2h0bHkgLSBjaGFuZ2VzIHRvIHJlcXVlc3QgY2xlYW4gdXAgY29kZSBtZWFuCm5v biBvZiB0aGUgZGVmZXJyZWQgZnJlZSBtZXNzIGlzIG5lZWRlZCBhbnkgbW9yZS4KCnY5OiBNb3Zl ZCB0aGUgcmVxdWVzdCBjb21wbGV0aW9uIHByb2Nlc3Npbmcgb3V0IG9mIHRoZSBpbnRlcnJ1cHQK aGFuZGxlciBhbmQgaW50byBhIHdvcmtlciB0aHJlYWQgKENocmlzIFdpbHNvbikuCgp2MTA6IENo YW5nZWQgdG8gYW4gdW4tb3JkZXJlZCB3b3JrIHF1ZXVlIHRvIGFsbG93IHBhcmFsbGVsIHByb2Nl c3NpbmcKb2YgZGlmZmVyZW50IGVuZ2luZXMuIEFsc28gc2V0IHRoZSBoaWdoIHByaW9yaXR5IGZs YWcgZm9yIHJlZHVjZWQKbGF0ZW5jeS4gUmVtb3ZlZCBzb21lIHVubmVjZXNzYXJ5IGNoZWNrcyBm b3IgaW52YWxpZCBzZXFubyB2YWx1ZXMuCkltcHJvdmVkL2FkZGVkIHNvbWUgY29tbWVudHMgYW5k IFdBUk5zLiBNb3ZlZCBhIHNwaW5sb2NrIHJlbGVhc2UgYSBmZXcKbGluZXMgbGF0ZXIgdG8gbWFr ZSB0aGUgJ2xvY2tlZCcgcGFyYW1ldGVyIG9mCmk5MTVfZ2VtX3JlcXVlc3RfZW5hYmxlX2ludGVy cnVwdCByZWR1bmRhbnQgYW5kIHJlbW92ZWQgaXQuIEFsc28Kc2h1ZmZsZWQgdGhlIGZ1bmN0aW9u IGFyb3VuZCBpbiB0aGUgZmlsZSBzbyBhcyB0byBtYWtlIGl0IHN0YXRpYyBhbmQKcmVtb3ZlIGl0 IGZyb20gdGhlIGhlYWRlciBmaWxlLiBDb3JyZWN0ZWQgdGhlIHVzZSBvZgpmZW5jZV9zaWduYWxf bG9ja2VkKCkgdG8gZmVuY2Vfc2lnbmFsKCkgaW4gdGhlIHJldGlyZSBjb2RlLiBEcm9wcGVkCnRo ZSBpcnEgc2F2ZSBwYXJ0IG9mIHRoZSBzcGluIGxvY2sgY2FsbHMgaW4gdGhlIG5vdGlmeSBjb2Rl IGFzIHRoaXMgaXMKbm8gbG9uZ2VyIGNhbGxlZCBmcm9tIHRoZSBJU1IuIENoYW5nZWQgdGhlIGNh bGwgb2YKaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3RzX3JpbmcoKSBpbiB0aGUgcmVzZXQgY2xlYW51 cCBjb2RlIHRvCmk5MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5KCkgaW5zdGVhZCBhcyB0aGUgZm9ybWVy IGlzIGp1c3QgZHVwbGljYXRpbmcgYQpsb3Qgb2Ygb3BlcmF0aW9ucy4KW1JldmlldyBjb21tZW50 cyBmcm9tIE1hYXJ0ZW4gTGFua2hvcnN0ICYgVHZydGtvIFVyc3VsaW5dCgpNYWRlIHRoZSBjYWxs IHRvIF9ub3RpZnkoKSBmcm9tIF9yZXRpcmVfcmVxdWVzdHNfcmluZygpIGNvbmRpdGlvbmFsIG9u CmludGVycnVwdHMgbm90IGJlaW5nIGVuYWJsZWQgYXMgaXQgaXMgb25seSBhIHJhY2UgY29uZGl0 aW9uIHdvcmsKYXJvdW5kIGZvciB0aGF0IGNhc2UuIEFsc28gcmUtaW5zdGF0ZWQgdGhlIGxhenlf Y29oZXJlbmN5IGZsYWcgKGJ1dApub3cgb24gdGhlIF9ub3RpZnkoKSBmdW5jdGlvbikgdG8gcmVk dWNlIHRoZSBvdmVyaGVhZCBvZgpfcmV0aXJlX3JlcXVlc3RzX3JpbmcoKSBjYWxsaW5nIF9ub3Rp ZnkoKSBsb3RzIGFuZCBsb3RzIChldmVuIHdpdGggdGhlCmFudGktaW50ZXJydXB0IGNoZWNrKS4K ClVwZGF0ZWQgZm9yIHlldCBtb3JlIG5pZ2h0bHkgY2hhbmdlcyAodTY0IGZvciBmZW5jZSBjb250 ZXh0KS4KCnYxMGI6IFJlLW9yZGVyZWQgdGhlIGZlbmNlIHNpZ25hbCBhbmQgSVJRIHJlbGVhc2Ug aW4gX25vdGlmeSgpIHRvIGZpeCBhIHJhY2UKY29uZGl0aW9uIHdoZW4gZGlzYWJsaW5nIGludGVy cnVwdHMuIEFsc28sIG1vdmVkIHRoZSB3YWtlX3VwX2FsbCgpCmNhbGwgZnJvbSB0aGUgSVJRIGhh bmRsZXIgdG8gdGhlIHdvcmtlciB0aHJlYWQgdG8gcHJldmVudCB0aGUgd2FrZSB1cApvZiB3YWl0 aW5nIHRocmVhZHMgZnJvbSBvdmVydGFraW5nIHRoZSBzaWduYWxsaW5nIG9mIHRoZSByZXF1ZXN0 LgoKRm9yOiBWSVotNTE5MApTaWduZWQtb2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFy cmlzb25ASW50ZWwuY29tPgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVs LmNvbT4KQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRl bC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyAgICAgICAgIHwgIDE0 ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgMTAgKysKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICB8IDI1MCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAg ICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAg IDUgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwgICA1ICsKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8ICAxMCArLQogNyBmaWxlcyBj aGFuZ2VkLCAyNzIgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZG1hLmMKaW5kZXggMDdlZGFlZC4uMjk4ZDQ0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kbWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5j CkBAIC0xMDE5LDkgKzEwMTksMTggQEAgc3RhdGljIGludCBpOTE1X3dvcmtxdWV1ZXNfaW5pdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKGRldl9wcml2LT53cSA9PSBO VUxMKQogCQlnb3RvIG91dF9lcnI7CiAKKwkvKgorCSAqIE1ha2luZyB0aGlzIHdvcmsgcXVldWUg dW4tb3JkZXJlZCBtZWFucyB0aGF0IHJlcXVlc3Qgbm90aWZpY2F0aW9ucworCSAqIGZvciBkaWZm ZXJlbnQgZW5naW5lcyBjYW4gYmUgcHJvY2Vzc2VkIGluIHBhcmFsbGVsIGFjcm9zcyBtdWx0aXBs ZQorCSAqIENQVSBjb3JlcyAoaWYgYXZhaWxhYmxlKS4KKwkgKi8KKwlkZXZfcHJpdi0+cmVxX3dx ID0gYWxsb2Nfd29ya3F1ZXVlKCJpOTE1LXJxIiwgV1FfSElHSFBSSSwgSTkxNV9OVU1fRU5HSU5F Uyk7CisJaWYgKGRldl9wcml2LT5yZXFfd3EgPT0gTlVMTCkKKwkJZ290byBvdXRfZnJlZV93cTsK KwogCWRldl9wcml2LT5ob3RwbHVnLmRwX3dxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoImk5 MTUtZHAiLCAwKTsKIAlpZiAoZGV2X3ByaXYtPmhvdHBsdWcuZHBfd3EgPT0gTlVMTCkKLQkJZ290 byBvdXRfZnJlZV93cTsKKwkJZ290byBvdXRfZnJlZV9yZXFfd3E7CiAKIAlkZXZfcHJpdi0+Z3B1 X2Vycm9yLmhhbmdjaGVja193cSA9CiAJCWFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKCJpOTE1LWhh bmdjaGVjayIsIDApOwpAQCAtMTAzMiw2ICsxMDQxLDggQEAgc3RhdGljIGludCBpOTE1X3dvcmtx dWV1ZXNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIG91dF9mcmVl X2RwX3dxOgogCWRlc3Ryb3lfd29ya3F1ZXVlKGRldl9wcml2LT5ob3RwbHVnLmRwX3dxKTsKK291 dF9mcmVlX3JlcV93cToKKwlkZXN0cm95X3dvcmtxdWV1ZShkZXZfcHJpdi0+cmVxX3dxKTsKIG91 dF9mcmVlX3dxOgogCWRlc3Ryb3lfd29ya3F1ZXVlKGRldl9wcml2LT53cSk7CiBvdXRfZXJyOgpA QCAtMTA0NCw2ICsxMDU1LDcgQEAgc3RhdGljIHZvaWQgaTkxNV93b3JrcXVldWVzX2NsZWFudXAo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCWRlc3Ryb3lfd29ya3F1ZXVl KGRldl9wcml2LT5ncHVfZXJyb3IuaGFuZ2NoZWNrX3dxKTsKIAlkZXN0cm95X3dvcmtxdWV1ZShk ZXZfcHJpdi0+aG90cGx1Zy5kcF93cSk7CisJZGVzdHJveV93b3JrcXVldWUoZGV2X3ByaXYtPnJl cV93cSk7CiAJZGVzdHJveV93b3JrcXVldWUoZGV2X3ByaXYtPndxKTsKIH0KIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKaW5kZXggZDc1MzQ1Ny4uOGEyNmRiNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCkBAIC0xODQ5LDYgKzE4NDksOSBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJICov CiAJc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxOwogCisJLyogV29yayBxdWV1ZSBmb3IgcmVx dWVzdCBjb21wbGV0aW9uIHByb2Nlc3NpbmcgKi8KKwlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAq cmVxX3dxOworCiAJLyogRGlzcGxheSBmdW5jdGlvbnMgKi8KIAlzdHJ1Y3QgZHJtX2k5MTVfZGlz cGxheV9mdW5jcyBkaXNwbGF5OwogCkBAIC0yMzU2LDYgKzIzNTksMTAgQEAgc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0IHsKIAkgKiBVbmRlcmx5aW5nIG9iamVjdCBmb3IgaW1wbGVtZW50aW5n IHRoZSBzaWduYWwvd2FpdCBzdHVmZi4KIAkgKi8KIAlzdHJ1Y3QgZmVuY2UgZmVuY2U7CisJc3Ry dWN0IGxpc3RfaGVhZCBzaWduYWxfbGluazsKKwlib29sIGNhbmNlbGxlZDsKKwlib29sIGlycV9l bmFibGVkOworCWJvb2wgc2lnbmFsX3JlcXVlc3RlZDsKIAogCS8qKiBPbiBXaGljaCByaW5nIHRo aXMgcmVxdWVzdCB3YXMgZ2VuZXJhdGVkICovCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTU7CkBAIC0yNDU3LDYgKzI0NjQsOSBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qgewog c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICogX19tdXN0X2NoZWNrCiBpOTE1X2dlbV9yZXF1 ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJICAgICAgIHN0cnVj dCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpOwordm9pZCBpOTE1X2dlbV9yZXF1ZXN0X25vdGlmeShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBib29sIGZlbmNlX2xvY2tlZCwKKwkJCSAgICAg Ym9vbCBsYXp5X2NvaGVyZW5jeSk7Cit2b2lkIGk5MTVfZ2VtX3JlcXVlc3Rfd29ya2VyKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yayk7CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9yZXF1 ZXN0X2NvbXBsZXRlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCmluZGV4IDlhNTViODcuLjg2NmFmZWYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwpAQCAtMzksNiArMzksOCBAQAogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2luY2x1 ZGUgPGxpbnV4L2RtYS1idWYuaD4KIAorc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9zdWJt aXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOworCiBzdGF0aWMgdm9pZCBpOTE1 X2dlbV9vYmplY3RfZmx1c2hfZ3R0X3dyaXRlX2RvbWFpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqKTsKIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX29iamVjdF9mbHVzaF9jcHVfd3JpdGVf ZG9tYWluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwogc3RhdGljIHZvaWQKQEAg LTEyNTEsOSArMTI1Myw4IEBAIGludCBfX2k5MTVfd2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxLAogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9 IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2VuZ2luZShyZXEpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHJlcS0+aTkxNTsKLQljb25zdCBib29sIGlycV90ZXN0X2luX3Byb2dy ZXNzID0KLQkJQUNDRVNTX09OQ0UoZGV2X3ByaXYtPmdwdV9lcnJvci50ZXN0X2lycV9yaW5ncykg JiBpbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUpOwogCWludCBzdGF0ZSA9IGludGVycnVwdGlibGUg PyBUQVNLX0lOVEVSUlVQVElCTEUgOiBUQVNLX1VOSU5URVJSVVBUSUJMRTsKKwl1aW50MzJfdCBz ZXFubzsKIAlERUZJTkVfV0FJVCh3YWl0KTsKIAl1bnNpZ25lZCBsb25nIHRpbWVvdXRfZXhwaXJl OwogCXM2NCBiZWZvcmUgPSAwOyAvKiBPbmx5IHRvIHNpbGVuY2UgYSBjb21waWxlciB3YXJuaW5n LiAqLwpAQCAtMTI2MSw5ICsxMjYyLDYgQEAgaW50IF9faTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAKIAlXQVJOKCFpbnRlbF9pcnFzX2VuYWJsZWQo ZGV2X3ByaXYpLCAiSVJRcyBkaXNhYmxlZCIpOwogCi0JaWYgKGxpc3RfZW1wdHkoJnJlcS0+bGlz dCkpCi0JCXJldHVybiAwOwotCiAJaWYgKGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJlcSkp CiAJCXJldHVybiAwOwogCkBAIC0xMjkzLDEwICsxMjkxLDEwIEBAIGludCBfX2k5MTVfd2FpdF9y ZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCWlmIChyZXQgPT0gMCkK IAkJZ290byBvdXQ7CiAKLQlpZiAoIWlycV90ZXN0X2luX3Byb2dyZXNzICYmIFdBUk5fT04oIWVu Z2luZS0+aXJxX2dldChlbmdpbmUpKSkgewotCQlyZXQgPSAtRU5PREVWOwotCQlnb3RvIG91dDsK LQl9CisJLyoKKwkgKiBFbmFibGUgaW50ZXJydXB0IGNvbXBsZXRpb24gb2YgdGhlIHJlcXVlc3Qu CisJICovCisJZmVuY2VfZW5hYmxlX3N3X3NpZ25hbGluZygmcmVxLT5mZW5jZSk7CiAKIAlmb3Ig KDs7KSB7CiAJCXN0cnVjdCB0aW1lcl9saXN0IHRpbWVyOwpAQCAtMTMyMCw2ICsxMzE4LDE5IEBA IGludCBfX2k5MTVfd2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LAogCQkJYnJlYWs7CiAJCX0KIAorCQkvKgorCQkgKiBUaGVyZSBpcyBxdWl0ZSBhIGxvdCBvZiBs YXRlbmN5IGluIHRoZSB1c2VyIGludGVycnVwdAorCQkgKiBwYXRoLiBTbyBkbyBhbiBleHBsaWNp dCBzZXFubyBjaGVjayBhbmQgcG90ZW50aWFsbHkKKwkJICogcmVtb3ZlIGFsbCB0aGF0IGRlbGF5 LgorCQkgKi8KKwkJaWYgKHJlcS0+ZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcikKKwkJCXJlcS0+ ZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcihyZXEtPmVuZ2luZSk7CisJCXNlcW5vID0gZW5naW5l LT5nZXRfc2Vxbm8oZW5naW5lKTsKKwkJaWYgKGk5MTVfc2Vxbm9fcGFzc2VkKHNlcW5vLCByZXEt PnNlcW5vKSkgeworCQkJcmV0ID0gMDsKKwkJCWJyZWFrOworCQl9CisKIAkJaWYgKHNpZ25hbF9w ZW5kaW5nX3N0YXRlKHN0YXRlLCBjdXJyZW50KSkgewogCQkJcmV0ID0gLUVSRVNUQVJUU1lTOwog CQkJYnJlYWs7CkBAIC0xMzQ2LDE0ICsxMzU3LDM2IEBAIGludCBfX2k5MTVfd2FpdF9yZXF1ZXN0 KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJZGVzdHJveV90aW1lcl9vbl9z dGFjaygmdGltZXIpOwogCQl9CiAJfQotCWlmICghaXJxX3Rlc3RfaW5fcHJvZ3Jlc3MpCi0JCWVu Z2luZS0+aXJxX3B1dChlbmdpbmUpOwogCiAJZmluaXNoX3dhaXQoJmVuZ2luZS0+aXJxX3F1ZXVl LCAmd2FpdCk7CiAKIG91dDoKIAl0cmFjZV9pOTE1X2dlbV9yZXF1ZXN0X3dhaXRfZW5kKHJlcSk7 CiAKKwlpZiAocmV0ID09IDApIHsKKwkJaWYgKHJlcS0+ZW5naW5lLT5pcnFfc2Vxbm9fYmFycmll cikKKwkJCXJlcS0+ZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcihyZXEtPmVuZ2luZSk7CisJCXNl cW5vID0gZW5naW5lLT5nZXRfc2Vxbm8oZW5naW5lKTsKKwkJLyoKKwkJICogQ2hlY2sgZm9yIHRo ZSBmYXN0IHBhdGggY2FzZSBvZiB0aGUgc2Vxbm8gYmVpbmcgcGFzc2VkIGJ1dAorCQkgKiB0aGUg cmVxdWVzdCBub3QgYWN0dWFsbHkgYmVpbmcgc2lnbmFsbGVkIHlldC4KKwkJICovCisJCWlmIChp OTE1X3NlcW5vX3Bhc3NlZChzZXFubywgcmVxLT5zZXFubykgJiYKKwkJICAgICFpOTE1X2dlbV9y ZXF1ZXN0X2NvbXBsZXRlZChyZXEpKSB7CisJCQkvKgorCQkJICogTWFrZSBzdXJlIHRoZSByZXF1 ZXN0IGlzIG1hcmtlZCBhcyBjb21wbGV0ZWQgYmVmb3JlCisJCQkgKiByZXR1cm5pbmcuIE5COiBO ZWVkIHRvIGFjcXVpcmUgdGhlIHNwaW5sb2NrIGFyb3VuZAorCQkJICogdGhlIHdob2xlIGNhbGwg dG8gYXZvaWQgYSByYWNlIGNvbmRpdGlvbiB3aGVuIHRoZQorCQkJICogaW50ZXJydXB0IGhhbmRs ZXIgaXMgcnVubmluZyBjb25jdXJyZW50bHkgYW5kIGNvdWxkCisJCQkgKiBjYXVzZSB0aGlzIGlu dm9jYXRpb24gdG8gZWFybHkgZXhpdCBldmVuIHRob3VnaCB0aGUKKwkJCSAqIHJlcXVlc3QgaGFz IG5vdCBhY3R1YWxseSBiZWVuIGZ1bGx5IHByb2Nlc3NlZCB5ZXQuCisJCQkgKi8KKwkJCXNwaW5f bG9ja19pcnEoJnJlcS0+ZW5naW5lLT5mZW5jZV9sb2NrKTsKKwkJCWk5MTVfZ2VtX3JlcXVlc3Rf bm90aWZ5KHJlcS0+ZW5naW5lLCB0cnVlLCB0cnVlKTsKKwkJCXNwaW5fdW5sb2NrX2lycSgmcmVx LT5lbmdpbmUtPmZlbmNlX2xvY2spOworCQl9CisJfQorCiAJaWYgKHRpbWVvdXQpIHsKIAkJczY0 IHRyZXMgPSAqdGltZW91dCAtIChrdGltZV9nZXRfcmF3X25zKCkgLSBiZWZvcmUpOwogCkBAIC0x NDE5LDYgKzE0NTIsMTEgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogewogCXRyYWNlX2k5MTVfZ2VtX3Jl cXVlc3RfcmV0aXJlKHJlcXVlc3QpOwogCisJaWYgKHJlcXVlc3QtPmlycV9lbmFibGVkKSB7CisJ CXJlcXVlc3QtPmVuZ2luZS0+aXJxX3B1dChyZXF1ZXN0LT5lbmdpbmUpOworCQlyZXF1ZXN0LT5p cnFfZW5hYmxlZCA9IGZhbHNlOworCX0KKwogCS8qIFdlIGtub3cgdGhlIEdQVSBtdXN0IGhhdmUg cmVhZCB0aGUgcmVxdWVzdCB0byBoYXZlCiAJICogc2VudCB1cyB0aGUgc2Vxbm8gKyBpbnRlcnJ1 cHQsIHNvIHVzZSB0aGUgcG9zaXRpb24KIAkgKiBvZiB0YWlsIG9mIHRoZSByZXF1ZXN0IHRvIHVw ZGF0ZSB0aGUgbGFzdCBrbm93biBwb3NpdGlvbgpAQCAtMTQzMiw2ICsxNDcwLDIyIEBAIHN0YXRp YyB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxdWVzdCkKIAlsaXN0X2RlbF9pbml0KCZyZXF1ZXN0LT5saXN0KTsKIAlpOTE1X2dlbV9y ZXF1ZXN0X3JlbW92ZV9mcm9tX2NsaWVudChyZXF1ZXN0KTsKIAorCS8qCisJICogSW4gY2FzZSB0 aGUgcmVxdWVzdCBpcyBzdGlsbCBpbiB0aGUgc2lnbmFsIHBlbmRpbmcgbGlzdCwKKwkgKiBlLmcu IGR1ZSB0byBiZWluZyBjYW5jZWxsZWQgYnkgVERSLCBwcmVlbXB0aW9uLCBldGMuCisJICovCisJ aWYgKCFsaXN0X2VtcHR5KCZyZXF1ZXN0LT5zaWduYWxfbGluaykpIHsKKwkJLyoKKwkJICogVGhl IHJlcXVlc3QgbXVzdCBiZSBtYXJrZWQgYXMgY2FuY2VsbGVkIGFuZCB0aGUgdW5kZXJseWluZwor CQkgKiBmZW5jZSBhcyBmYWlsZWQuIE5COiBUaGVyZSBpcyBubyBleHBsaWNpdCBmZW5jZSBmYWls IEFQSSwKKwkJICogdGhlcmUgaXMgb25seSBhIG1hbnVhbCBwb2tlIGFuZCBzaWduYWwuCisJCSAq LworCQlyZXF1ZXN0LT5jYW5jZWxsZWQgPSB0cnVlOworCQkvKiBIb3cgdG8gcHJvcGFnYXRlIHRv IGFueSBhc3NvY2lhdGVkIHN5bmNfZmVuY2U/Pz8gKi8KKwkJcmVxdWVzdC0+ZmVuY2Uuc3RhdHVz ID0gLUVJTzsKKwkJZmVuY2Vfc2lnbmFsKCZyZXF1ZXN0LT5mZW5jZSk7CisJfQorCiAJaWYgKHJl cXVlc3QtPnByZXZpb3VzX2NvbnRleHQpIHsKIAkJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykK IAkJCWludGVsX2xyX2NvbnRleHRfdW5waW4ocmVxdWVzdC0+cHJldmlvdXNfY29udGV4dCwKQEAg LTI2OTksNiArMjc1MywxMiBAQCB2b2lkIF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCiAJICovCiAJcmVxdWVzdC0+cG9zdGZpeCA9IGludGVs X3JpbmdfZ2V0X3RhaWwocmluZ2J1Zik7CiAKKwkvKgorCSAqIEFkZCB0aGUgZmVuY2UgdG8gdGhl IHBlbmRpbmcgbGlzdCBiZWZvcmUgZW1pdHRpbmcgdGhlIGNvbW1hbmRzIHRvCisJICogZ2VuZXJh dGUgYSBzZXFubyBub3RpZmljYXRpb24gaW50ZXJydXB0LgorCSAqLworCWk5MTVfZ2VtX3JlcXVl c3Rfc3VibWl0KHJlcXVlc3QpOworCiAJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykKIAkJcmV0 ID0gZW5naW5lLT5lbWl0X3JlcXVlc3QocmVxdWVzdCk7CiAJZWxzZSB7CkBAIC0yNzg5LDIyICsy ODQ5LDE1OSBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUoc3RydWN0IGZlbmNl ICpyZXFfZmVuY2UpCiAJY2FsbF9yY3UoJnJlcS0+ZmVuY2UucmN1LCBpOTE1X2dlbV9yZXF1ZXN0 X2ZyZWVfcmN1KTsKIH0KIAotc3RhdGljIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfc2ln bmFsaW5nKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNlKQorLyoKKyAqIFRoZSByZXF1ZXN0IGlzIGJl aW5nIGFjdGl2ZWx5IHdhaXRlZCBvbiwgc28gZW5hYmxlIGludGVycnVwdCBiYXNlZAorICogY29t cGxldGlvbiBzaWduYWxsaW5nLgorICovCitzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2Vu YWJsZV9pbnRlcnJ1cHQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7Ci0JLyog SW50ZXJydXB0IGRyaXZlbiBmZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZCB5ZXQuKi8KLQlXQVJO KHRydWUsICJUaGlzIHNob3VsZCBub3QgYmUgY2FsbGVkISIpOwotCXJldHVybiB0cnVlOworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJlcS0+ZW5naW5lLT5pOTE1OworCWNv bnN0IGJvb2wgaXJxX3Rlc3RfaW5fcHJvZ3Jlc3MgPQorCQlBQ0NFU1NfT05DRShkZXZfcHJpdi0+ Z3B1X2Vycm9yLnRlc3RfaXJxX3JpbmdzKSAmCisJCQkJCQlpbnRlbF9lbmdpbmVfZmxhZyhyZXEt PmVuZ2luZSk7CisKKwlpZiAocmVxLT5pcnFfZW5hYmxlZCkKKwkJcmV0dXJuOworCisJaWYgKGly cV90ZXN0X2luX3Byb2dyZXNzKQorCQlyZXR1cm47CisKKwlpZiAocmVxLT5lbmdpbmUtPmlycV9n ZXQocmVxLT5lbmdpbmUpKQorCQlyZXEtPmlycV9lbmFibGVkID0gdHJ1ZTsKKwllbHNlCisJCVdB Uk4oMSwgIkZhaWxlZCB0byBnZXQgSVJRISIpOworCisJLyoKKwkgKiBCZWNhdXNlIHRoZSBpbnRl cnJ1cHQgaXMgb25seSBlbmFibGVkIG9uIGRlbWFuZCwgdGhlcmUgaXMgYSByYWNlCisJICogd2hl cmUgdGhlIGludGVycnVwdCBjYW4gZmlyZSBiZWZvcmUgYW55b25lIGlzIGxvb2tpbmcgZm9yIGl0 LiBTbworCSAqIGRvIGFuIGV4cGxpY2l0IGNoZWNrIGZvciBtaXNzZWQgaW50ZXJydXB0cy4KKwkg Ki8KKwlpOTE1X2dlbV9yZXF1ZXN0X25vdGlmeShyZXEtPmVuZ2luZSwgdHJ1ZSwgZmFsc2UpOwog fQogCi1zdGF0aWMgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2lzX2NvbXBsZXRlZChzdHJ1Y3QgZmVu Y2UgKnJlcV9mZW5jZSkKK3N0YXRpYyBib29sIGk5MTVfZ2VtX3JlcXVlc3RfZW5hYmxlX3NpZ25h bGluZyhzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSA9IGNvbnRhaW5lcl9vZihyZXFfZmVuY2UsCiAJCQkJCQkgdHlwZW9mKCpyZXEp LCBmZW5jZSk7CisKKwkvKgorCSAqIE5vIG5lZWQgdG8gYWN0dWFsbHkgZW5hYmxlIGludGVycnVw dCBiYXNlZCBwcm9jZXNzaW5nIHVudGlsIHRoZQorCSAqIHJlcXVlc3QgaGFzIGJlZW4gc3VibWl0 dGVkIHRvIHRoZSBoYXJkd2FyZS4gQXQgd2hpY2ggcG9pbnQKKwkgKiAnaTkxNV9nZW1fcmVxdWVz dF9zdWJtaXQoKScgaXMgY2FsbGVkLiBTbyBvbmx5IHJlYWxseSBlbmFibGUKKwkgKiBzaWduYWxs aW5nIGluIHRoZXJlLiBKdXN0IHNldCBhIGZsYWcgdG8gc2F5IHRoYXQgaW50ZXJydXB0cyBhcmUK KwkgKiB3YW50ZWQgd2hlbiB0aGUgcmVxdWVzdCBpcyBldmVudHVhbGx5IHN1Ym1pdHRlZC4gT24g dGhlIG90aGVyIGhhbmQKKwkgKiBpZiB0aGUgcmVxdWVzdCBoYXMgYWxyZWFkeSBiZWVuIHN1Ym1p dHRlZCB0aGVuIGludGVycnVwdHMgZG8gbmVlZAorCSAqIHRvIGJlIGVuYWJsZWQgbm93LgorCSAq LworCisJcmVxLT5zaWduYWxfcmVxdWVzdGVkID0gdHJ1ZTsKKworCWlmICghbGlzdF9lbXB0eSgm cmVxLT5zaWduYWxfbGluaykpCisJCWk5MTVfZ2VtX3JlcXVlc3RfZW5hYmxlX2ludGVycnVwdChy ZXEpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBUaGUgcmVxdWVzdCBpcyBhYm91dCB0 byBiZSBzdWJtaXR0ZWQgdG8gdGhlIGhhcmR3YXJlIHNvIGFkZCB0aGUgZmVuY2UgdG8KKyAqIHRo ZSBsaXN0IG9mIHNpZ25hbGFibGUgZmVuY2VzLgorICoKKyAqIE5COiBUaGlzIGRvZXMgbm90IG5l Y2Vzc2FyaWx5IGVuYWJsZSBpbnRlcnJ1cHRzIHlldC4gVGhhdCBvbmx5IG9jY3VycyBvbgorICog ZGVtYW5kIHdoZW4gdGhlIHJlcXVlc3QgaXMgYWN0dWFsbHkgd2FpdGVkIG9uLiBIb3dldmVyLCBh ZGRpbmcgaXQgdG8gdGhlCisgKiBsaXN0IGVhcmx5IGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBubyBy YWNlIGNvbmRpdGlvbiB3aGVyZSB0aGUgaW50ZXJydXB0CisgKiBjb3VsZCBwb3Agb3V0IHByZW1h dHVyZWx5IGFuZCB0aHVzIGJlIGNvbXBsZXRlbHkgbG9zdC4gVGhlIHJhY2UgaXMgbWVyZWx5Cisg KiB0aGF0IHRoZSBpbnRlcnJ1cHQgbXVzdCBiZSBtYW51YWxseSBjaGVja2VkIGZvciBhZnRlciBi ZWluZyBlbmFibGVkLgorICovCitzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X3N1Ym1pdChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKK3sKKwkvKgorCSAqIEFsd2F5cyBlbmFi bGUgc2lnbmFsIHByb2Nlc3NpbmcgZm9yIHRoZSByZXF1ZXN0J3MgZmVuY2Ugb2JqZWN0CisJICog YmVmb3JlIHRoYXQgcmVxdWVzdCBpcyBzdWJtaXR0ZWQgdG8gdGhlIGhhcmR3YXJlLiBUaHVzIHRo ZXJlIGlzIG5vCisJICogcmFjZSBjb25kaXRpb24gd2hlcmVieSB0aGUgaW50ZXJydXB0IGNvdWxk IHBvcCBvdXQgYmVmb3JlIHRoZQorCSAqIHJlcXVlc3QgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIHNp Z25hbCBsaXN0LiBIZW5jZSBubyBuZWVkIHRvIGNoZWNrCisJICogZm9yIGNvbXBsZXRpb24sIHVu ZG8gdGhlIGxpc3QgYWRkIGFuZCByZXR1cm4gZmFsc2UuCisJICovCisJaTkxNV9nZW1fcmVxdWVz dF9yZWZlcmVuY2UocmVxKTsKKworCXNwaW5fbG9ja19pcnEoJnJlcS0+ZW5naW5lLT5mZW5jZV9s b2NrKTsKKworCVdBUk5fT04oIWxpc3RfZW1wdHkoJnJlcS0+c2lnbmFsX2xpbmspKTsKKwlsaXN0 X2FkZF90YWlsKCZyZXEtPnNpZ25hbF9saW5rLCAmcmVxLT5lbmdpbmUtPmZlbmNlX3NpZ25hbF9s aXN0KTsKKworCS8qCisJICogTkI6IEludGVycnVwdHMgYXJlIG9ubHkgZW5hYmxlZCBvbiBkZW1h bmQuIFRodXMgdGhlcmUgaXMgc3RpbGwgYQorCSAqIHJhY2Ugd2hlcmUgdGhlIHJlcXVlc3QgY291 bGQgY29tcGxldGUgYmVmb3JlIHRoZSBpbnRlcnJ1cHQgaGFzCisJICogYmVlbiBlbmFibGVkLiBU aHVzIGNhcmUgbXVzdCBiZSB0YWtlbiBhdCB0aGF0IHBvaW50LgorCSAqLworCisJLyogSGF2ZSBp bnRlcnJ1cHRzIGFscmVhZHkgYmVlbiByZXF1ZXN0ZWQ/ICovCisJaWYgKHJlcS0+c2lnbmFsX3Jl cXVlc3RlZCkKKwkJaTkxNV9nZW1fcmVxdWVzdF9lbmFibGVfaW50ZXJydXB0KHJlcSk7CisKKwlz cGluX3VubG9ja19pcnEoJnJlcS0+ZW5naW5lLT5mZW5jZV9sb2NrKTsKK30KKworLyoqCisgKiBp OTE1X2dlbV9yZXF1ZXN0X3dvcmtlciAtIHJlcXVlc3Qgd29yayBoYW5kbGVyIGNhbGxiYWNrLgor ICogQHdvcms6IFdvcmsgc3RydWN0dXJlCisgKiBDYWxsZWQgaW4gcmVzcG9uc2UgdG8gYSBzZXFu byBpbnRlcnJ1cHQgdG8gcHJvY2VzcyB0aGUgY29tcGxldGVkIHJlcXVlc3RzLgorICovCit2b2lk IGk5MTVfZ2VtX3JlcXVlc3Rfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisKKwllbmdpbmUgPSBjb250YWluZXJfb2Yo d29yaywgc3RydWN0IGludGVsX2VuZ2luZV9jcywgcmVxdWVzdF93b3JrKTsKKwlpOTE1X2dlbV9y ZXF1ZXN0X25vdGlmeShlbmdpbmUsIGZhbHNlLCBmYWxzZSk7CisKKwl3YWtlX3VwX2FsbCgmZW5n aW5lLT5pcnFfcXVldWUpOworfQorCit2b2lkIGk5MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5KHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgYm9vbCBmZW5jZV9sb2NrZWQsCisJCQkgICAgIGJv b2wgbGF6eV9jb2hlcmVuY3kpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEs ICpyZXFfbmV4dDsKIAl1MzIgc2Vxbm87CiAKLQlzZXFubyA9IHJlcS0+ZW5naW5lLT5nZXRfc2Vx bm8ocmVxLT5lbmdpbmUpOworCS8qCisJICogTm90ZSB0aGF0IHRoaXMgaXMgc2FmZSB0byBkbyBi ZWZvcmUgYWNxdWlyaW5nIHRoZSBzcGlubG9jayBhcyBhbnkKKwkgKiBpdGVtcyBhcmUgb25seSBh ZGRlZCB0byB0aGUgbGlzdCBiZWZvcmUgZW5hYmxpbmcgaW50ZXJydXB0cy4gSGVuY2UKKwkgKiB0 aGlzIGNhbid0IGJlIHJ1biB3aGlsZSB0aGUgbGlzdCBpcyB0cmFuc2l0aW9uaW5nIGZyb20gZW1w dHkgdG8KKwkgKiBub3QtZW1wdHkuIEFuZCBhIGZhbHNlIG5vdC1lbXB0eSBpcyBub3QgYW4gaXNz dWUgLSBpdCB3b3VsZCBqdXN0IGJlCisJICogdGhlIHNhbWUgYXMgbm90IGRvaW5nIHRoZSBlYXJs eSBleGl0IHRlc3QgYXQgYWxsLgorCSAqLworCWlmIChsaXN0X2VtcHR5KCZlbmdpbmUtPmZlbmNl X3NpZ25hbF9saXN0KSkKKwkJcmV0dXJuOworCisJaWYgKCFmZW5jZV9sb2NrZWQpCisJCXNwaW5f bG9ja19pcnEoJmVuZ2luZS0+ZmVuY2VfbG9jayk7CisKKwlpZiAoIWxhenlfY29oZXJlbmN5ICYm IGVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIpCisJCWVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIo ZW5naW5lKTsKKwlzZXFubyA9IGVuZ2luZS0+Z2V0X3NlcW5vKGVuZ2luZSk7CisKKwlsaXN0X2Zv cl9lYWNoX2VudHJ5X3NhZmUocmVxLCByZXFfbmV4dCwgJmVuZ2luZS0+ZmVuY2Vfc2lnbmFsX2xp c3QsIHNpZ25hbF9saW5rKSB7CisJCWlmICghcmVxLT5jYW5jZWxsZWQgJiYgIWk5MTVfc2Vxbm9f cGFzc2VkKHNlcW5vLCByZXEtPnNlcW5vKSkKKwkJCWJyZWFrOworCisJCS8qCisJCSAqIFN0YXJ0 IGJ5IHJlbW92aW5nIHRoZSBmZW5jZSBmcm9tIHRoZSBzaWduYWwgbGlzdCBvdGhlcndpc2UKKwkJ ICogdGhlIHJldGlyZSBjb2RlIGNhbiBydW4gY29uY3VycmVudGx5IGFuZCBnZXQgY29uZnVzZWQu CisJCSAqLworCQlsaXN0X2RlbF9pbml0KCZyZXEtPnNpZ25hbF9saW5rKTsKKworCQlpZiAocmVx LT5pcnFfZW5hYmxlZCkgeworCQkJcmVxLT5lbmdpbmUtPmlycV9wdXQocmVxLT5lbmdpbmUpOwor CQkJcmVxLT5pcnFfZW5hYmxlZCA9IGZhbHNlOworCQl9CisKKwkJaWYgKCFyZXEtPmNhbmNlbGxl ZCkKKwkJCWZlbmNlX3NpZ25hbF9sb2NrZWQoJnJlcS0+ZmVuY2UpOworCisJCWk5MTVfZ2VtX3Jl cXVlc3RfdW5yZWZlcmVuY2UocmVxKTsKKwl9CiAKLQlyZXR1cm4gaTkxNV9zZXFub19wYXNzZWQo c2Vxbm8sIHJlcS0+c2Vxbm8pOworCWlmICghZmVuY2VfbG9ja2VkKQorCQlzcGluX3VubG9ja19p cnEoJmVuZ2luZS0+ZmVuY2VfbG9jayk7CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyICppOTE1X2dl bV9yZXF1ZXN0X2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKQEAgLTI4 NTEsNyArMzA0OCw2IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfZmVuY2VfdmFsdWVf c3RyKHN0cnVjdCBmZW5jZSAqcmVxX2ZlbmNlLAogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNl X29wcyBpOTE1X2dlbV9yZXF1ZXN0X2ZvcHMgPSB7CiAJLmVuYWJsZV9zaWduYWxpbmcJPSBpOTE1 X2dlbV9yZXF1ZXN0X2VuYWJsZV9zaWduYWxpbmcsCi0JLnNpZ25hbGVkCQk9IGk5MTVfZ2VtX3Jl cXVlc3RfaXNfY29tcGxldGVkLAogCS53YWl0CQkJPSBmZW5jZV9kZWZhdWx0X3dhaXQsCiAJLnJl bGVhc2UJCT0gaTkxNV9nZW1fcmVxdWVzdF9mcmVlLAogCS5nZXRfZHJpdmVyX25hbWUJPSBpOTE1 X2dlbV9yZXF1ZXN0X2dldF9kcml2ZXJfbmFtZSwKQEAgLTI5MzMsNiArMzEyOSw3IEBAIF9faTkx NV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJcmVx LT5jdHggID0gY3R4OwogCWk5MTVfZ2VtX2NvbnRleHRfcmVmZXJlbmNlKHJlcS0+Y3R4KTsKIAor CUlOSVRfTElTVF9IRUFEKCZyZXEtPnNpZ25hbF9saW5rKTsKIAlmZW5jZV9pbml0KCZyZXEtPmZl bmNlLCAmaTkxNV9nZW1fcmVxdWVzdF9mb3BzLCAmZW5naW5lLT5mZW5jZV9sb2NrLAogCQkgICBj dHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5mZW5jZV90aW1lbGluZS5mZW5jZV9jb250ZXh0LAogCQkg ICBpOTE1X2ZlbmNlX3RpbWVsaW5lX2dldF9uZXh0X3NlcW5vKCZjdHgtPmVuZ2luZVtlbmdpbmUt PmlkXS5mZW5jZV90aW1lbGluZSkpOwpAQCAtMzA2Nyw2ICszMjY0LDEyIEBAIHN0YXRpYyB2b2lk IGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZV9jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAkJaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUocmVxdWVzdCk7CiAJfQogCisJLyoK KwkgKiBNYWtlIHN1cmUgdGhhdCBhbnkgcmVxdWVzdHMgdGhhdCB3ZXJlIG9uIHRoZSBzaWduYWwg cGVuZGluZyBsaXN0IGFsc28KKwkgKiBnZXQgY2xlYW5lZCB1cC4KKwkgKi8KKwlpOTE1X2dlbV9y ZXF1ZXN0X25vdGlmeShlbmdpbmUsIGZhbHNlLCBmYWxzZSk7CisKIAkvKiBIYXZpbmcgZmx1c2hl ZCBhbGwgcmVxdWVzdHMgZnJvbSBhbGwgcXVldWVzLCB3ZSBrbm93IHRoYXQgYWxsCiAJICogcmlu Z2J1ZmZlcnMgbXVzdCBub3cgYmUgZW1wdHkuIEhvd2V2ZXIsIHNpbmNlIHdlIGRvIG5vdCByZWNs YWltCiAJICogYWxsIHNwYWNlIHdoZW4gcmV0aXJpbmcgdGhlIHJlcXVlc3QgKHRvIHByZXZlbnQg SEVBRHMgY29sbGlkaW5nCkBAIC0zMTE0LDYgKzMzMTcsMTQgQEAgaTkxNV9nZW1fcmV0aXJlX3Jl cXVlc3RzX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCVdBUk5fT04o aTkxNV92ZXJpZnlfbGlzdHMoZW5naW5lLT5kZXYpKTsKIAorCS8qCisJICogSWYgbm8tb25lIGhh cyB3YWl0ZWQgb24gYSByZXF1ZXN0IHJlY2VudGx5IHRoZW4gaW50ZXJydXB0cyB3aWxsCisJICog bm90IGhhdmUgYmVlbiBlbmFibGVkIGFuZCB0aHVzIG5vIHJlcXVlc3RzIHdpbGwgZXZlciBiZSBt YXJrZWQgYXMKKwkgKiBjb21wbGV0ZWQuIFNvIGRvIGFuIGludGVycnVwdCBjaGVjayBub3cuCisJ ICovCisJaWYoZW5naW5lLT5pcnFfcmVmY291bnQgPT0gMCkKKwkJaTkxNV9nZW1fcmVxdWVzdF9u b3RpZnkoZW5naW5lLCBmYWxzZSwgdHJ1ZSk7CisKIAkvKiBSZXRpcmUgcmVxdWVzdHMgZmlyc3Qg YXMgd2UgdXNlIGl0IGFib3ZlIGZvciB0aGUgZWFybHkgcmV0dXJuLgogCSAqIElmIHdlIHJldGly ZSByZXF1ZXN0cyBsYXN0LCB3ZSBtYXkgdXNlIGEgbGF0ZXIgc2Vxbm8gYW5kIHNvIGNsZWFyCiAJ ICogdGhlIHJlcXVlc3RzIGxpc3RzIHdpdGhvdXQgY2xlYXJpbmcgdGhlIGFjdGl2ZSBsaXN0LCBs ZWFkaW5nIHRvCkBAIC01MTQ2LDYgKzUzNTcsNyBAQCBpbml0X2VuZ2luZV9saXN0cyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJSU5JVF9MSVNUX0hFQUQoJmVuZ2luZS0+YWN0 aXZlX2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPnJlcXVlc3RfbGlzdCk7CisJSU5J VF9MSVNUX0hFQUQoJmVuZ2luZS0+ZmVuY2Vfc2lnbmFsX2xpc3QpOwogfQogCiB2b2lkCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9pcnEuYwppbmRleCA3MmMwNGQ2Li44ZDFhMjhlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMKQEAgLTk4Miw3ICs5ODIsNyBAQCBzdGF0aWMgdm9pZCBub3RpZnlfcmluZyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJdHJhY2VfaTkxNV9nZW1fcmVxdWVzdF9ub3Rp ZnkoZW5naW5lKTsKIAllbmdpbmUtPnVzZXJfaW50ZXJydXB0cysrOwogCi0Jd2FrZV91cF9hbGwo JmVuZ2luZS0+aXJxX3F1ZXVlKTsKKwlxdWV1ZV93b3JrKGVuZ2luZS0+aTkxNS0+cmVxX3dxLCAm ZW5naW5lLT5yZXF1ZXN0X3dvcmspOwogfQogCiBzdGF0aWMgdm9pZCB2bHZfYzBfcmVhZChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmlu ZGV4IGI1OWVmMWUuLjZmYmIwNWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0xOTIy LDYgKzE5MjIsOCBAQCB2b2lkIGludGVsX2xvZ2ljYWxfcmluZ19jbGVhbnVwKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCWRldl9wcml2ID0gZW5naW5lLT5pOTE1OwogCisJY2Fu Y2VsX3dvcmtfc3luYygmZW5naW5lLT5yZXF1ZXN0X3dvcmspOworCiAJaWYgKGVuZ2luZS0+YnVm ZmVyKSB7CiAJCWludGVsX2xvZ2ljYWxfcmluZ19zdG9wKGVuZ2luZSk7CiAJCVdBUk5fT04oKEk5 MTVfUkVBRF9NT0RFKGVuZ2luZSkgJiBNT0RFX0lETEUpID09IDApOwpAQCAtMjA3MCw2ICsyMDcy LDcgQEAgbG9naWNhbF9yaW5nX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gaW50 ZWxfZW5naW5lX2lkIGlkKQogCiAJSU5JVF9MSVNUX0hFQUQoJmVuZ2luZS0+YWN0aXZlX2xpc3Qp OwogCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPnJlcXVlc3RfbGlzdCk7CisJSU5JVF9MSVNUX0hF QUQoJmVuZ2luZS0+ZmVuY2Vfc2lnbmFsX2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUt PmJ1ZmZlcnMpOwogCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlKTsKIAlz cGluX2xvY2tfaW5pdCgmZW5naW5lLT5leGVjbGlzdF9sb2NrKTsKQEAgLTIwNzgsNiArMjA4MSw4 IEBAIGxvZ2ljYWxfcmluZ19zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIGludGVs X2VuZ2luZV9pZCBpZCkKIAl0YXNrbGV0X2luaXQoJmVuZ2luZS0+aXJxX3Rhc2tsZXQsCiAJCSAg ICAgaW50ZWxfbHJjX2lycV9oYW5kbGVyLCAodW5zaWduZWQgbG9uZyllbmdpbmUpOwogCisJSU5J VF9XT1JLKCZlbmdpbmUtPnJlcXVlc3Rfd29yaywgaTkxNV9nZW1fcmVxdWVzdF93b3JrZXIpOwor CiAJbG9naWNhbF9yaW5nX2luaXRfcGxhdGZvcm1faW52YXJpYW50cyhlbmdpbmUpOwogCWxvZ2lj YWxfcmluZ19kZWZhdWx0X3ZmdW5jcyhlbmdpbmUpOwogCWxvZ2ljYWxfcmluZ19kZWZhdWx0X2ly cXMoZW5naW5lLCBpbmZvLT5pcnFfc2hpZnQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5jCmluZGV4IGRmMzZkYTcuLmIyYWVhMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMKQEAgLTIzMjYsNiArMjMyNiw3IEBAIHN0YXRpYyBpbnQgaW50ZWxf aW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCUlOSVRfTElTVF9IRUFE KCZlbmdpbmUtPnJlcXVlc3RfbGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJmVuZ2luZS0+ZXhlY2xp c3RfcXVldWUpOwogCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPmJ1ZmZlcnMpOworCUlOSVRfTElT VF9IRUFEKCZlbmdpbmUtPmZlbmNlX3NpZ25hbF9saXN0KTsKIAlzcGluX2xvY2tfaW5pdCgmZW5n aW5lLT5mZW5jZV9sb2NrKTsKIAlpOTE1X2dlbV9iYXRjaF9wb29sX2luaXQoZGV2LCAmZW5naW5l LT5iYXRjaF9wb29sKTsKIAltZW1zZXQoZW5naW5lLT5zZW1hcGhvcmUuc3luY19zZXFubywgMCwK QEAgLTIzMzMsNiArMjMzNCw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJaW5pdF93YWl0cXVldWVfaGVhZCgmZW5naW5lLT5p cnFfcXVldWUpOwogCisJSU5JVF9XT1JLKCZlbmdpbmUtPnJlcXVlc3Rfd29yaywgaTkxNV9nZW1f cmVxdWVzdF93b3JrZXIpOworCiAJcmluZ2J1ZiA9IGludGVsX2VuZ2luZV9jcmVhdGVfcmluZ2J1 ZmZlcihlbmdpbmUsIDMyICogUEFHRV9TSVpFKTsKIAlpZiAoSVNfRVJSKHJpbmdidWYpKSB7CiAJ CXJldCA9IFBUUl9FUlIocmluZ2J1Zik7CkBAIC0yMzc5LDYgKzIzODIsOCBAQCB2b2lkIGludGVs X2NsZWFudXBfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCWRldl9w cml2ID0gZW5naW5lLT5pOTE1OwogCisJY2FuY2VsX3dvcmtfc3luYygmZW5naW5lLT5yZXF1ZXN0 X3dvcmspOworCiAJaWYgKGVuZ2luZS0+YnVmZmVyKSB7CiAJCWludGVsX3N0b3BfZW5naW5lKGVu Z2luZSk7CiAJCVdBUk5fT04oIUlTX0dFTjIoZGV2X3ByaXYpICYmIChJOTE1X1JFQURfTU9ERShl bmdpbmUpICYgTU9ERV9JRExFKSA9PSAwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaAppbmRleCAwMWYzZGY2Li45ZTc5ZmJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5oCkBAIC0zNDcsMTEgKzM0NywxNSBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzIHsKIAl1MzIgKCpnZXRfY21kX2xlbmd0aF9tYXNrKSh1MzIgY21kX2hlYWRlcik7CiAKIAkv KgotCSAqIFRoaXMgc3BpbmxvY2sgaXMgdXNlZCBieSB0aGUgZmVuY2UgaW1wbGVtZW50YXRpb24g aW50ZXJuYWxseS4gTm90ZSwKLQkgKiBpdCBjYW4gYmUgYWNxdWlyZSBmcm9tIGludGVycnVwdCBj b250ZXh0IHNvIGFsbCB1c2FnZSBtdXN0IGJlIElSUQotCSAqIHNhZmUuCisJICogVGhpcyBzcGlu bG9jayBpcyB1c2VkIGJ5IHRoZSBmZW5jZSBpbXBsZW1lbnRhdGlvbiBpbnRlcm5hbGx5IGFuZCBi eQorCSAqIHRoZSBpOTE1IGRyaXZlciBmb3Igb3BlcmF0aW9ucyBvbiB0aGUgZmVuY2Vfc2lnbmFs X2xpc3QgYW5kIG9uIGZlbmNlcworCSAqIGluIGdlbmVyYWwuIE5vdGUsIGl0IGNhbiBiZSBhY3F1 aXJlIGZyb20gaW50ZXJydXB0IGNvbnRleHQgc28gYWxsCisJICogdXNhZ2UgbXVzdCBiZSBJUlEg c2FmZS4KIAkgKi8KIAlzcGlubG9ja190IGZlbmNlX2xvY2s7CisJc3RydWN0IGxpc3RfaGVhZCBm ZW5jZV9zaWduYWxfbGlzdDsKKworCXN0cnVjdCB3b3JrX3N0cnVjdCByZXF1ZXN0X3dvcms7CiB9 OwogCiBzdGF0aWMgaW5saW5lIGJvb2wKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK