From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: [RFCv2 07/12] drm/i915: Fake lost context interrupts through forced CSB check. Date: Tue, 21 Jul 2015 14:58:50 +0100 Message-ID: <1437487135-32520-8-git-send-email-tomas.elf@intel.com> References: <1437487135-32520-1-git-send-email-tomas.elf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 7E4B16E937 for ; Tue, 21 Jul 2015 07:00:30 -0700 (PDT) In-Reply-To: <1437487135-32520-1-git-send-email-tomas.elf@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 QSByZWN1cnJpbmcgaXNzdWUgZHVyaW5nIGxvbmctZHVyYXRpb24gb3BlcmF0aW9ucyB0ZXN0aW5n IG9mIGNvbmN1cnJlbnQKcmVuZGVyaW5nIHRhc2tzIHdpdGggaW50ZXJtaXR0ZW50IGhhbmdzIGlz IHRoYXQgY29udGV4dCBjb21wbGV0aW9uIGludGVycnVwdHMKZm9sbG93aW5nIGVuZ2luZSByZXNl dHMgYXJlIHNvbWV0aW1lcyBsb3N0LiBUaGlzIGJlY29tZXMgYSByZWFsIHByb2JsZW0gc2luY2UK dGhlIGhhcmR3YXJlIG1pZ2h0IGhhdmUgY29tcGxldGVkIGEgcHJldmlvdXNseSBodW5nIGNvbnRl eHQgZm9sbG93aW5nIGEKcGVyLWVuZ2luZSBoYW5nIHJlY292ZXJ5IGFuZCB0aGVuIGdvbmUgaWRs ZSBzb21laG93IHdpdGhvdXQgc2VuZGluZyBhbgppbnRlcnJ1cHQgdGVsbGluZyB0aGUgZHJpdmVy IGFib3V0IHRoaXMuIEF0IHRoaXMgcG9pbnQgdGhlIGRyaXZlciB3b3VsZCBiZQpzdHVjayB3YWl0 aW5nIGZvciBjb250ZXh0IGNvbXBsZXRpb24sIHRoaW5raW5nIHRoYXQgdGhlIGNvbnRleHQgaXMg c3RpbGwgYWN0aXZlLApldmVuIHRob3VnaCB0aGUgaGFyZHdhcmUgd291bGQgYmUgaWRsZSBhbmQg d2FpdGluZyBmb3IgbW9yZSB3b3JrLgoKVGhlIHdheSB0aGlzIGlzIHNvbHZlZCBpcyBieSBwZXJp b2RpY2FsbHkgY2hlY2tpbmcgZm9yIGNvbnRleHQgc3VibWlzc2lvbgpzdGF0dXMgaW5jb25zaXN0 ZW5jaWVzLiBXaGF0IHRoaXMgbWVhbnMgaXMgdGhhdCB0aGUgSUQgb2YgdGhlIGN1cnJlbnRseSBy dW5uaW5nCmNvbnRleHQgb24gYSBnaXZlbiBlbmdpbmUgaXMgY29tcGFyZWQgYWdhaW5zdCB0aGUg Y29udGV4dCBJRCBpbiB0aGUKRVhFQ0xJU1RfU1RBVFVTIHJlZ2lzdGVyIG9mIHRoZSByZXNwZWN0 aXZlIGVuZ2luZS4gSWYgdGhlIHR3byBkbyBub3QgbWF0Y2ggYW5kCmlmIHRoZSBzdGF0ZSBkb2Vz IG5vdCBjaGFuZ2Ugb3ZlciB0aW1lIGl0IGlzIGFzc3VtZWQgdGhhdCBhbiBpbnRlcnJ1cHQgd2Fz Cm1pc3NlZCBhbmQgdGhhdCB0aGUgZHJpdmVyIGlzIG5vdyBzdHVjayBpbiBhbiBpbmNvbnNpc3Rl bnQgc3RhdGUuCgpGb2xsb3dpbmcgdGhlIGRlY2lzaW9uIHRoYXQgdGhlIGRyaXZlciBhbmQgdGhl IGhhcmR3YXJlIGFyZSBpcnJldmVyc2libHkgc3R1Y2sKaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRl IG9uIGEgY2VydGFpbiBlbmdpbmUsIHRoZSBwcmVzdW1hYmx5IGxvc3QgaW50ZXJydXB0IGlzCmZh a2VkIGJ5IHNpbXBseSBjYWxsaW5nIHRoZSBleGVjbGlzdCBpbnRlcnJ1cHQgaGFuZGxlciBmcm9t IGEgbm9uLWludGVycnVwdApjb250ZXh0LiBFdmVuIHRob3VnaCBpbnRlcnJ1cHRzIG1pZ2h0IGJl IGxvc3QgdGhhdCBkb2VzIG5vdCBtZWFuIHRoYXQgdGhlCmhhcmR3YXJlIGRvZXMgbm90IGFsd2F5 cyB1cGRhdGUgdGhlIGNvbnRleHQgc3RhdHVzIGJ1ZmZlciAoQ1NCKSB3aGVuCmFwcHJvcHJpYXRl LCB3aGljaCBtZWFucyB0aGF0IGFueSBjb250ZXh0IHN0YXRlIHRyYW5zaXRpb25zIHdvdWxkIGJl IGNhcHR1cmVkCnRoZXJlIHJlZ2FyZGxlc3Mgb2YgdGhlIGludGVycnVwdCBiZWluZyBzZW50IG9y IG5vdC4gQnkgZmFraW5nIHRoZSBsb3N0CmludGVycnVwdCB0aGUgaW50ZXJydXB0IGhhbmRsZXIg Y291bGQgYWN0IG9uIHRoZSBvdXRzdGFuZGluZyBjb250ZXh0IHN0YXR1cwp0cmFuc2l0aW9uIGV2 ZW50cyBpbiB0aGUgQ1NCLCBlLmcuIGEgY29udGV4dCBjb21wbGV0aW9uIGV2ZW50LiBJbiB0aGUg Y2FzZQp3aGVyZSB0aGUgaGFyZHdhcmUgd291bGQgYmUgaWRsZSBidXQgdGhlIGRyaXZlciB3b3Vs ZCBiZSB3YWl0aW5nIGZvcgpjb21wbGV0aW9uLCBmYWtpbmcgYW4gaW50ZXJydXB0IGFuZCBmaW5k aW5nIGEgY29udGV4dCBjb21wbGV0aW9uIHN0YXR1cyBldmVudAp3b3VsZCBjYXVzZSB0aGUgZHJp dmVyIHRvIHJlbW92ZSB0aGUgY3VycmVudGx5IGFjdGl2ZSByZXF1ZXN0IGZyb20gdGhlIGV4ZWNs aXN0CnF1ZXVlIGFuZCBnbyBpZGxlIC0gdGhlcmVieSByZWVzdGFibGlzaGluZyBhIGNvbnNpc3Rl bnQgY29udGV4dCBzdWJtaXNzaW9uCnN0YXR1cyBiZXR3ZWVuIHRoZSBoYXJkd2FyZSBhbmQgdGhl IGRyaXZlci4KClRoZSB3YXkgdGhpcyBpcyBpbXBsZW1lbnRlZCBpcyB0aGF0IHRoZSBoYW5nIGNo ZWNrZXIgd2lsbCBhbHdheXMga2VlcCBhbGl2ZSBhcwpsb25nIGFzIHRoZXJlIGlzIG91dHN0YW5k aW5nIHdvcmsuIEV2ZW4gaWYgdGhlIGVuYWJsZV9oYW5nY2hlY2sgZmxhZyBpcwpkaXNhYmxlZCBv bmUgcGFydCBvZiB0aGUgaGFuZyBjaGVja2VyIHdpbGwgYWx3YXlzIGtlZXAgYWxpdmUgYW5kIHJl c2NoZWR1bGUKaXRzZWxmLCBvbmx5IHRvIHNjYW4gZm9yIGluY29uc2lzdGVudCBjb250ZXh0IHN1 Ym1pc3Npb24gc3RhdGVzIG9uIGFsbCBlbmdpbmVzLgpBcyBsb25nIGFzIHRoZSBjb250ZXh0IHN1 Ym1pc3Npb24gc3RhdHVzIG9mIHRoZSBjdXJyZW50bHkgcnVubmluZyBjb250ZXh0IG9uIGEKZ2l2 ZW4gZW5naW5lIGlzIGNvbnNpc3RlbnQgdGhlIGhhbmcgY2hlY2tlciB3b3JrcyBhcyBub3JtYWwg YW5kIHNjaGVkdWxlcyBoYW5nCnJlY292ZXJpZXMgYXMgZXhwZWN0ZWQuIElmIHRoZSBzdGF0dXMg aXMgbm90IGNvbnNpc3RlbnQgbm8gaGFuZyByZWNvdmVyaWVzIHdpbGwKYmUgc2NoZWR1bGVkIHNp bmNlIG5vIGNvbnRleHQgcmVzdWJtaXNzaW9uIHdpbGwgYmUgcG9zc2libGUgYW55d2F5LCBzbyB0 aGVyZSBpcwpubyBwb2ludCBpbiB0cnlpbmcgdW50aWwgdGhlIHN0YXR1cyBiZWNvbWVzIGNvbnNp c3RlbnQgYWdhaW4uIE9mIGNvdXJzZSwgaWYKZW5vdWdoIGhhbmdzIG9uIHRoZSBzYW1lIGVuZ2lu ZSBhcmUgZGV0ZWN0ZWQgd2l0aG91dCBhbnkgY2hhbmdlIGluIGNvbnNpc3RlbmN5CnRoZSBoYW5n IGNoZWNrZXIgd2lsbCBnbyBzdHJhaWdodCBmb3IgdGhlIGZ1bGwgR1BVIHJlc2V0IHNvIHRoZXJl IGlzIG5vIGNoYW5jZQpvZiBnZXR0aW5nIHN0dWNrIGluIHRoaXMgc3RhdGUuCgpJdCdzIHdvcnRo IGtlZXBpbmcgaW4gbWluZCB0aGF0IHRoZSB3YXRjaGRvZyB0aW1lb3V0IGhhbmcgZGV0ZWN0aW9u IG1lY2hhbmlzbQpyZWxpZXMgZW50aXJlbHkgb24gdGhlIHBlci1lbmdpbmUgaGFuZyByZWNvdmVy eSBwYXRoLiBTbyBpZiB3ZSBoYXZlIGFuCmluY29uc2lzdGVudCBjb250ZXh0IHN1Ym1pc3Npb24g c3RhdHVzIG9uIHRoZSBlbmdpbmUgdGhhdCB0aGUgd2F0Y2hkb2cgdGltZW91dApoYXMgZGV0ZWN0 ZWQgYSBoYW5nIHRoZXJlIGlzIG5vIHdheSB0byByZWNvdmVyIGZyb20gdGhhdCBoYW5nIGlmIHRo ZSBwZXJpb2QKaGFuZ2NoZWNrZXIgaXMgdHVybmVkIG9mZiBzaW5jZSB0aGUgcGVyLWVuZ2luZSBo YW5nIHJlY292ZXJ5IGNhbm5vdCBkbyBpdHMKZmluYWwgY29udGV4dCByZXN1Ym1pc3Npb24gaWYg dGhlIGNvbnRleHQgc3VibWlzc2lvbiBzdGF0dXMgaXMgaW5jb25zaXN0ZW50LgpUaGF0J3Mgd2h5 IHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgdGhyZWFkIGFsaXZl IHRoYXQga2VlcHMKYW4gZXllIG91dCBmb3IgaW5jb25zaXN0ZW50IGNvbnRleHQgc3VibWlzc2lv biBzdGF0ZXMsIG5vdCBvbmx5IGZvciB0aGUKcGVyaW9kaWMgaGFuZyBjaGVja2VyIGJ1dCBhbHNv IGZvciB3YXRjaGRvZyB0aW1lb3V0LgoKRmluYWxseSwgc2luY2UgYSBub24taW50ZXJydXB0IGNv bnRleHQgdGhyZWFkIGNvdWxkIGVuZCB1cCBpbiB0aGUgaW50ZXJydXB0CmhhbmRsZXIgYXMgcGFy dCBvZiB0aGUgZm9yY2VkIENTQiBjaGVja2luZyB0aGVyZSdzIHRoZSBjaGFuY2Ugb2YgYSByYWNl CmNvbmRpdGlvbiBiZXR3ZWVuIHRoZSBpbnRlcnJ1cHQgaGFuZGxlciBhbmQgdGhlIHJpbmcgaW5p dCBjb2RlIHNpbmNlIGJvdGgKdXBkYXRlIHJpbmctPm5leHRfY29udGV4dF9zdGF0dXNfYnVmZmVy LiBUaGVyZWZvcmUgd2UndmUgaGFkIHRvIHVwZGF0ZSB0aGUKaW50ZXJydXB0IGhhbmRsZXIgc28g dGhhdCBpdCBncmFicyB0aGUgZXhlY2xpc3Qgc3BpbmxvY2sgYmVmb3JlIHVwZGF0aW5nCnRoZSB2 YXJpYWJsZS4gV2UndmUgYWxzbyBoYWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHJpbmcgaW5pdCBj b2RlCmdyYWJzIHRoZSBleGVjbGlzdCBzcGlubG9jayBiZWZvcmUgaW5pdGluZyB0aGlzIHZhcmlh YmxlLgoKKiB2MjogKENocmlzIFdpbHNvbikKUmVtb3ZlIGNvbnRleHQgc3VibWlzc2lvbiBzdGF0 dXMgY29uc2lzdGVuY3kgcHJlLWNoZWNrIGZyb20KaTkxNV9oYW5nY2hlY2tfZWxhcHNlZCgpIGFu ZCB0dXJuIGl0IGludG8gYSBwcmUtY2hlY2sgdG8gcGVyLWVuZ2luZSByZXNldC4KClRoZSBmb2xs b3dpbmcgZGVzY3JpYmVzIHRoZSBjaGFuZ2UgaW4gcGhpbG9zcGh5IGluIGhvdyBjb250ZXh0IHN1 Ym1pc3Npb24gc3RhdGUKaW5jb25zaXN0ZW5jaWVzIGFyZSBkZXRlY3RlZDoKClByZXZpb3VzbHkg d2Ugd291bGQgbGV0IHRoZSBwZXJpb2RpYyBoYW5nIGNoZWNrZXIgZW5zdXJlIHRoYXQgdGhlcmUg d2VyZSBubwpjb250ZXh0IHN1Ym1pc3Npb24gc3RhdHVzIGluY29uc2lzdGVuY2llcyBvbiBhbnkg ZW5naW5lLCBhdCBhbnkgcG9pbnQuIElmIGFuCmluY29uc2lzdGVuY3kgd2FzIGRldGVjdGVkIGlu IHRoZSBwZXItZW5naW5lIGhhbmcgcmVjb3ZlcnkgcGF0aCB3ZSB3b3VsZCBiYWNrCm9mZiBhbmQg ZGVmZXIgdG8gdGhlIG5leHQgaGFuZyBjaGVjayBzaW5jZSBwZXItZW5naW5lIGhhbmcgcmVjb3Zl cnkgaXMgbm90CmVmZmVjdGl2ZSBkdXJpbmcgaW5jb25zaXN0ZW50IGNvbnRleHQgc3VibWlzc2lv biBzdGF0ZXMuCgpXaGF0IHdlIGRvIGluIHRoaXMgbmV3IHZlcnNpb24gaXMgdG8gbW92ZSB0aGUg Y29uc2lzdGVuY3kgcHJlLWNoZWNrIGZyb20gdGhlCmhhbmcgY2hlY2tlciB0byB0aGUgZWFybGll c3QgcG9pbnQgaW4gdGhlIHBlci1lbmdpbmUgaGFuZyByZWNvdmVyeSBwYXRoLiBJZiB3ZQpkZXRl Y3QgYW4gaW5jb25zaXN0ZW5jeSBhdCB0aGF0IHBvaW50IHdlIGZha2UgYSBwb3RlbnRpYWxseSBs b3N0IGNvbnRleHQgZXZlbnQKaW50ZXJydXB0IGJ5IGZvcmNpbmcgYSBDU0IgY2hlY2suIElmIHRo ZXJlIGFyZSBvdXRzdGFuZGluZyBldmVudHMgaW4gdGhlIENTQgp0aGVzZSB3aWxsIGJlIGFjdGVk IHVwb24gYW5kIGhvcGVmdWxseSB0aGF0IHdpbGwgYnJpbmcgdGhlIGRyaXZlciB1cCB0byBzcGVl ZAp3aXRoIHRoZSBoYXJkd2FyZS4gSWYgdGhlIENTQiBjaGVjayBkaWQgbm90IGFtb3VudCB0byBh bnl0aGluZyBpdCBpcyBjb25jbHVkZWQKdGhhdCB0aGUgaW5jb25zaXN0ZW5jeSBpcyB1bnJlc29s dmFibGUgYW5kIHRoZSBwZXItZW5naW5lIGhhbmcgcmVjb3ZlcnkgZmFpbHMKYW5kIHByb21vdGVz IHRvIGZ1bGwgR1BVIHJlc2V0IGluc3RlYWQuCgpJbiB0aGUgaGFuZyBjaGVja2VyLWJhc2VkIGNv bnNpc3RlbmN5IGNoZWNraW5nIHdlIHdvdWxkIGNoZWNrIHRoZSBpbmNvbnNpc3RlbmN5CmZvciBh IG51bWJlciBvZiB0aW1lcyB0byBtYWtlIHN1cmUgdGhlIGRldGVjdGVkIHN0YXRlIHdhcyBzdGFi bGUgYmVmb3JlCmF0dGVtcHRpbmcgdG8gcmVjdGlmeSB0aGUgc2l0dWF0aW9uLiBUaGlzIGlzIHBv c3NpYmxlIHNpbmNlIGhhbmcgY2hlY2tpbmcKaXMgYSByZWN1cnJpbmcgZXZlbnQuIEhhdmluZyBt b3ZlZCB0aGUgY29uc2lzdGVuY3kgY2hlY2tpbmcgdG8gdGhlIHJlY292ZXJ5CnBhdGggaW5zdGVh ZCAoaS5lLiBhIG9uZS10aW1lLCBmaXJlICYgZm9yZ2V0LXN0eWxlIGV2ZW50KSBpdCBpcyBhc3N1 bWVkCnRoYXQgdGhlIGhhbmcgZGV0ZWN0aW9uIHRoYXQgYnJvdWdodCBvbiB0aGUgaGFuZyByZWNv dmVyeSBoYXMgZGV0ZWN0ZWQgYQpzdGFibGUgaGFuZyBhbmQgdGhlcmVmb3JlLCBpZiBhbiBpbmNv bnNpc3RlbmN5IGlzIGRldGVjdGVkIGF0IHRoYXQgcG9pbnQsCnRoZSBpbmNvbnNpc3RlbmN5IG11 c3QgYmUgc3RhYmxlIGFuZCBub3QgdGhlIHJlc3VsdCBvZiBhIG1vbWVudGFyeSBjb250ZXh0CnN0 YXRlIHRyYW5zaXRpb24uIFRoZXJlZm9yZSwgdW5saWtlIGluIHRoZSBoYW5nIGNoZWNrZXIgY2Fz ZSwgYXQgdGhlIHZlcnkKZmlyc3QgaW5kaWNhdGlvbiBvZiBhbiBpbmNvbnNpc3RlbnQgY29udGV4 dCBzdWJtaXNzaW9uIHN0YXR1cyB0aGUgaW50ZXJydXB0CmlzIGZha2VkIHNwZWN1bGF0aXZlbHku IElmIG91dHN0YW5kaW5nIENTQiBldmVudHMgYXJlIGZvdW5kIGl0IGlzCmRldGVybWluZWQgdGhh dCB0aGUgaGFuZyB3YXMgaW4gZmFjdCBqdXN0IGEgY29udGV4dCBzdWJtaXNzaW9uIHN0YXR1cwpp bmNvbnNpc3RlbmN5IGFuZCBubyBoYW5nIHJlY292ZXJ5IGlzIGRvbmUuIElmIHRoZSBpbmNvbnNp c3RlbmN5IGNhbm5vdCBiZQpyZXNvbHZlZCB0aGUgcGVyLWVuZ2luZSBoYW5nIHJlY292ZXJ5IGlz IGZhaWxlZCBhbmQgdGhlIGhhbmcgaXMgcHJvbW90ZWQgdG8KZnVsbCBHUFUgcmVzZXQgaW5zdGVh ZC4KClNpZ25lZC1vZmYtYnk6IFRvbWFzIEVsZiA8dG9tYXMuZWxmQGludGVsLmNvbT4KQ2M6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogTWlrYSBLdW9wcGFsYSA8 bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYyAgICAgIHwgMTE4ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgfCAgMzIgKystLS0tLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgIHwgIDY3ICsrKysrKysrKysrKysr KysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCAgICAgfCAgIDIgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyY190ZHIuaCB8ICAgMyArCiA1IGZpbGVzIGNoYW5n ZWQsIDE1OSBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuYwppbmRleCBjN2JhNjRlLi4yY2NiMmU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAg LTkxNyw2ICs5MTcsNzEgQEAgaW50IGk5MTVfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGJvb2wgaTkxNV9nZW1fcmVzZXRfZW5naW5lX0NTU0Nf cHJlY2hlY2soCisJCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KipyZXEsCisJCWludCAqcmV0KQoreworCWJvb2wgcHJlY2hlY2tfb2sgPSB0cnVlOworCWVudW0g Y29udGV4dF9zdWJtaXNzaW9uX3N0YXR1cyBzdGF0dXM7CisKKwlXQVJOX09OKCFyZXQpOworCisJ KnJldCA9IDA7CisKKwlzdGF0dXMgPSBpbnRlbF9leGVjbGlzdHNfVERSX2dldF9jdXJyZW50X3Jl cXVlc3QoZW5naW5lLCByZXEpOworCisJLyoKKwkgKiBJZiB0aGUgaGFyZHdhcmUgYW5kIGRyaXZl ciBzdGF0ZXMgZG8gbm90IGNvaW5jaWRlCisJICogb3IgaWYgdGhlcmUgZm9yIHNvbWUgcmVhc29u IGlzIG5vIGN1cnJlbnQgY29udGV4dAorCSAqIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIHN1Ym1p dHRlZCB0aGVuIGJhaWwgb3V0IGFuZAorCSAqIHRyeSBhZ2Fpbi4gRG8gbm90IHByb2NlZWQgdW5s ZXNzIHdlIGhhdmUgcmVsaWFibGUKKwkgKiBjdXJyZW50IGNvbnRleHQgc3RhdGUgaW5mb3JtYXRp b24uCisJICovCisJaWYgKHN0YXR1cyA9PSBDT05URVhUX1NVQk1JU1NJT05fU1RBVFVTX05PTkVf U1VCTUlUVEVEKSB7CisJCS8qCisJCSAqIE5vIHdvcmsgaW4gZmxpZ2h0LiBUaGlzIHN0YXRlIGlz IHBvc3NpYmxlIHRvIGdldAorCQkgKiBpbnRvIGlmIGNhbGxpbmcgdGhlIGVycm9yIGhhbmRsZXIg ZGlyZWN0bHkgZnJvbQorCQkgKiBkZWJ1Z2ZzLiAgSnVzdCBkbyBlYXJseSBleGl0IGFuZCBmb3Jn ZXQgaXQgaGFwcGVuZWQuCisJCSAqLworCQlXQVJOKDEsICJObyB3b3JrIGluIGZsaWdodCEgQWJv cnRpbmcgcmVjb3Zlcnkgb24gJXNcbiIsCisJCQllbmdpbmUtPm5hbWUpOworCisJCSBwcmVjaGVj a19vayA9IGZhbHNlOworCQkgKnJldCA9IDA7CisKKwl9IGVsc2UgaWYgKHN0YXR1cyA9PSBDT05U RVhUX1NVQk1JU1NJT05fU1RBVFVTX0lOQ09OU0lTVEVOVCkgeworCQlpZiAoIWludGVsX2V4ZWNs aXN0c19URFJfZm9yY2VfQ1NCX2NoZWNrKGRldl9wcml2LCBlbmdpbmUpKSB7CisJCQkvKgorCQkJ ICogQ29udGV4dCBzdWJtaXNzaW9uIHN0YXRlIGlzIGluY29uc2lzdGVudCBhbmQKKwkJCSAqIGZh a2luZyBhIGNvbnRleHQgZXZlbnQgSVJRIGRpZCBub3QgaGVscC4KKwkJCSAqIEZhaWwgYW5kIHBy b21vdGUgdG8gaGlnaGVyIGxldmVsIG9mCisJCQkgKiByZWNvdmVyeSEKKwkJCSAqLworCQkJcHJl Y2hlY2tfb2sgPSBmYWxzZTsKKwkJCSpyZXQgPSAtRUlOVkFMOworCQl9IGVsc2UgeworCQkJLyoK KwkJCSAqIFJlY3RpZnlpbmcgdGhlIGluY29uc2lzdGVudCBjb250ZXh0CisJCQkgKiBzdWJtaXNz aW9uIHN0YXR1cyBoZWxwZWQhIE5vIHJlc2V0IHJlcXVpcmVkLAorCQkJICoganVzdCBleGl0IGFu ZCBtb3ZlIG9uIQorCQkJICovCisJCQkgcHJlY2hlY2tfb2sgPSBmYWxzZTsKKwkJCSAqcmV0ID0g MDsKKwkJfQorCisJfSBlbHNlIGlmIChzdGF0dXMgIT0gQ09OVEVYVF9TVUJNSVNTSU9OX1NUQVRV U19PSykgeworCQlXQVJOKDEsICJVbmV4cGVjdGVkIGNvbnRleHQgc3VibWlzc2lvbiBzdGF0dXMg KCV1KSBvbiAlc1xuIiwKKwkJCXN0YXR1cywgZW5naW5lLT5uYW1lKTsKKworCQlwcmVjaGVja19v ayA9IGZhbHNlOworCQkqcmV0ID0gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gcHJlY2hlY2tfb2s7 Cit9CisKIC8qKgogICogaTkxNV9yZXNldF9lbmdpbmUgLSByZXNldCBHUFUgZW5naW5lIGFmdGVy IGEgaGFuZwogICogQGVuZ2luZTogZW5naW5lIHRvIHJlc2V0CkBAIC05NTgsMjAgKzEwMjMsMTcg QEAgaW50IGk5MTVfcmVzZXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK IAlpOTE1X2dlbV9yZXNldF9yaW5nX3N0YXR1cyhkZXZfcHJpdiwgZW5naW5lKTsKIAogCWlmIChp OTE1LmVuYWJsZV9leGVjbGlzdHMpIHsKLQkJZW51bSBjb250ZXh0X3N1Ym1pc3Npb25fc3RhdHVz IHN0YXR1cyA9Ci0JCQlpbnRlbF9leGVjbGlzdHNfVERSX2dldF9jdXJyZW50X3JlcXVlc3QoZW5n aW5lLCBOVUxMKTsKLQogCQkvKgotCQkgKiBJZiB0aGUgaGFyZHdhcmUgYW5kIGRyaXZlciBzdGF0 ZXMgZG8gbm90IGNvaW5jaWRlCi0JCSAqIG9yIGlmIHRoZXJlIGZvciBzb21lIHJlYXNvbiBpcyBu byBjdXJyZW50IGNvbnRleHQKLQkJICogaW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcgc3VibWl0dGVk IHRoZW4gYmFpbCBvdXQgYW5kCi0JCSAqIHRyeSBhZ2Fpbi4gRG8gbm90IHByb2NlZWQgdW5sZXNz IHdlIGhhdmUgcmVsaWFibGUKLQkJICogY3VycmVudCBjb250ZXh0IHN0YXRlIGluZm9ybWF0aW9u LgorCQkgKiBDaGVjayBjb250ZXh0IHN1Ym1pc3Npb24gc3RhdHVzIGNvbnNpc3RlbmN5IChDU1ND KSBiZWZvcmUKKwkJICogbW92aW5nIG9uLiBJZiB0aGUgZHJpdmVyIGFuZCBoYXJkd2FyZSBoYXZl IGRpZmZlcmVudAorCQkgKiBvcGluaW9ucyBhYm91dCB3aGF0IGlzIGdvaW5nIG9uIGp1c3QgZmFp bCBhbmQgZXNjYWxhdGUgdG8gYQorCQkgKiBoaWdoZXIgZm9ybSBvZiBoYW5nIHJlY292ZXJ5Lgog CQkgKi8KLQkJaWYgKHN0YXR1cyAhPSBDT05URVhUX1NVQk1JU1NJT05fU1RBVFVTX09LKSB7Ci0J CQlyZXQgPSAtRUFHQUlOOworCQkgaWYgKCFpOTE1X2dlbV9yZXNldF9lbmdpbmVfQ1NTQ19wcmVj aGVjayhkZXZfcHJpdiwKKwkJCQkJCQkgIGVuZ2luZSwKKwkJCQkJCQkgIE5VTEwsCisJCQkJCQkJ ICAmcmV0KSkKIAkJCWdvdG8gcmVzZXRfZW5naW5lX2Vycm9yOwotCQl9CiAJfQogCiAJcmV0ID0g aW50ZWxfcmluZ19kaXNhYmxlKGVuZ2luZSk7CkBAIC05ODEsMjcgKzEwNDMsMjEgQEAgaW50IGk5 MTVfcmVzZXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAl9CiAKIAlp ZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7Ci0JCWVudW0gY29udGV4dF9zdWJtaXNzaW9uX3N0 YXR1cyBzdGF0dXM7Ci0JCWJvb2wgaW5jb25zaXN0ZW50OwotCi0JCXN0YXR1cyA9IGludGVsX2V4 ZWNsaXN0c19URFJfZ2V0X2N1cnJlbnRfcmVxdWVzdChlbmdpbmUsCi0JCQkJJmN1cnJlbnRfcmVx dWVzdCk7Ci0KLQkJaW5jb25zaXN0ZW50ID0gKHN0YXR1cyAhPSBDT05URVhUX1NVQk1JU1NJT05f U1RBVFVTX09LKTsKLQkJaWYgKGluY29uc2lzdGVudCkgewotCQkJLyoKLQkJCSAqIElmIHdlIHNv bWVob3cgaGF2ZSByZWFjaGVkIHRoaXMgcG9pbnQgd2l0aAotCQkJICogYW4gaW5jb25zaXN0ZW50 IGNvbnRleHQgc3VibWlzc2lvbiBzdGF0dXMgdGhlbgotCQkJICogYmFjayBvdXQgb2YgdGhlIHBy ZXZpb3VzbHkgcmVxdWVzdGVkIHJlc2V0IGFuZAotCQkJICogcmV0cnkgbGF0ZXIuCi0JCQkgKi8K LQkJCVdBUk4oaW5jb25zaXN0ZW50LAotCQkJICAgICAiSW5jb25zaXN0ZW50IGNvbnRleHQgc3Rh dHVzIG9uICVzOiAldVxuIiwKLQkJCSAgICAgZW5naW5lLT5uYW1lLCBzdGF0dXMpOwotCi0JCQly ZXQgPSAtRUFHQUlOOworCQkvKgorCQkgKiBHZXQgYSBob2xkIG9mIHRoZSBjdXJyZW50bHkgZXhl Y3V0aW5nIGNvbnRleHQuCisJCSAqCisJCSAqIENvbnRleHQgc3VibWlzc2lvbiBzdGF0dXMgY29u c2lzdGVuY3kgaXMgZG9uZSBpbXBsaWNpdGx5IHNvCisJCSAqIHdlIG1pZ2h0IGFzIHdlbGwgY2hl Y2sgaXQgcG9zdC1lbmdpbmUgZGlzYWJsZW1lbnQgc2luY2Ugd2UKKwkJICogZ2V0IHRoYXQgb3B0 aW9uIGZvciBmcmVlLiBBbHNvLCBpdCdzIGNvbmNlaXZhYmxlIHRoYXQgdGhlCisJCSAqIGNvbnRl eHQgc3VibWlzc2lvbiBzdGF0ZSBtaWdodCBoYXZlIGNoYW5nZWQgYXMgcGFydCBvZiB0aGUKKwkJ ICogcmVzZXQgcmVxdWVzdCBvbiBnZW44KyBzbyBpdCdzIG5vdCBjb21wbGV0ZWx5IGRldm9pZCBv ZgorCQkgKiB2YWx1ZSB0byBkbyB0aGlzLgorCQkgKi8KKwkJIGlmICghaTkxNV9nZW1fcmVzZXRf ZW5naW5lX0NTU0NfcHJlY2hlY2soZGV2X3ByaXYsCisJCQkJCQkJICBlbmdpbmUsCisJCQkJCQkJ ICAmY3VycmVudF9yZXF1ZXN0LAorCQkJCQkJCSAgJnJldCkpCiAJCQlnb3RvIHJlZW5hYmxlX3Jl c2V0X2VuZ2luZV9lcnJvcjsKLQkJfQogCX0KIAogCS8qIFNhbXBsZSB0aGUgY3VycmVudCByaW5n IGhlYWQgcG9zaXRpb24gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCmluZGV4IDU2NzJhMmMuLjIy ZGQ5NmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1 ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgogI2luY2x1ZGUgImludGVs X2Rydi5oIgorI2luY2x1ZGUgImludGVsX2xyY190ZHIuaCIKIAogLyoqCiAgKiBET0M6IGludGVy cnVwdCBoYW5kbGluZwpAQCAtMTI4Niw3ICsxMjg3LDcgQEAgc3RhdGljIGlycXJldHVybl90IGdl bjhfZ3RfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJ cmV0ID0gSVJRX0hBTkRMRUQ7CiAKIAkJCWlmICh0bXAgJiAoR1RfQ09OVEVYVF9TV0lUQ0hfSU5U RVJSVVBUIDw8IEdFTjhfUkNTX0lSUV9TSElGVCkpCi0JCQkJaW50ZWxfbHJjX2lycV9oYW5kbGVy KCZkZXZfcHJpdi0+cmluZ1tSQ1NdKTsKKwkJCQlpbnRlbF9scmNfaXJxX2hhbmRsZXIoJmRldl9w cml2LT5yaW5nW1JDU10sIHRydWUpOwogCQkJaWYgKHRtcCAmIChHVF9SRU5ERVJfVVNFUl9JTlRF UlJVUFQgPDwgR0VOOF9SQ1NfSVJRX1NISUZUKSkKIAkJCQlub3RpZnlfcmluZygmZGV2X3ByaXYt PnJpbmdbUkNTXSk7CiAJCQlpZiAodG1wICYgKEdUX0dFTjhfUkNTX1dBVENIRE9HX0lOVEVSUlVQ VCA8PCBHRU44X1JDU19JUlFfU0hJRlQpKSB7CkBAIC0xMzAzLDcgKzEzMDQsNyBAQCBzdGF0aWMg aXJxcmV0dXJuX3QgZ2VuOF9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJCQl9CiAKIAkJCWlmICh0bXAgJiAoR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJS VVBUIDw8IEdFTjhfQkNTX0lSUV9TSElGVCkpCi0JCQkJaW50ZWxfbHJjX2lycV9oYW5kbGVyKCZk ZXZfcHJpdi0+cmluZ1tCQ1NdKTsKKwkJCQlpbnRlbF9scmNfaXJxX2hhbmRsZXIoJmRldl9wcml2 LT5yaW5nW0JDU10sIHRydWUpOwogCQkJaWYgKHRtcCAmIChHVF9SRU5ERVJfVVNFUl9JTlRFUlJV UFQgPDwgR0VOOF9CQ1NfSVJRX1NISUZUKSkKIAkJCQlub3RpZnlfcmluZygmZGV2X3ByaXYtPnJp bmdbQkNTXSk7CiAJCX0gZWxzZQpAQCAtMTMxNyw3ICsxMzE4LDcgQEAgc3RhdGljIGlycXJldHVy bl90IGdlbjhfZ3RfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCQkJcmV0ID0gSVJRX0hBTkRMRUQ7CiAKIAkJCWlmICh0bXAgJiAoR1RfQ09OVEVYVF9TV0lU Q0hfSU5URVJSVVBUIDw8IEdFTjhfVkNTMV9JUlFfU0hJRlQpKQotCQkJCWludGVsX2xyY19pcnFf aGFuZGxlcigmZGV2X3ByaXYtPnJpbmdbVkNTXSk7CisJCQkJaW50ZWxfbHJjX2lycV9oYW5kbGVy KCZkZXZfcHJpdi0+cmluZ1tWQ1NdLCB0cnVlKTsKIAkJCWlmICh0bXAgJiAoR1RfUkVOREVSX1VT RVJfSU5URVJSVVBUIDw8IEdFTjhfVkNTMV9JUlFfU0hJRlQpKQogCQkJCW5vdGlmeV9yaW5nKCZk ZXZfcHJpdi0+cmluZ1tWQ1NdKTsKIAkJCWlmICh0bXAgJiAoR1RfR0VOOF9WQ1NfV0FUQ0hET0df SU5URVJSVVBUIDw8IEdFTjhfVkNTMV9JUlFfU0hJRlQpKSB7CkBAIC0xMzM0LDcgKzEzMzUsNyBA QCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2VuOF9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQl9CiAKIAkJCWlmICh0bXAgJiAoR1RfQ09OVEVYVF9TV0lU Q0hfSU5URVJSVVBUIDw8IEdFTjhfVkNTMl9JUlFfU0hJRlQpKQotCQkJCWludGVsX2xyY19pcnFf aGFuZGxlcigmZGV2X3ByaXYtPnJpbmdbVkNTMl0pOworCQkJCWludGVsX2xyY19pcnFfaGFuZGxl cigmZGV2X3ByaXYtPnJpbmdbVkNTMl0sIHRydWUpOwogCQkJaWYgKHRtcCAmIChHVF9SRU5ERVJf VVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MyX0lSUV9TSElGVCkpCiAJCQkJbm90aWZ5X3Jpbmco JmRldl9wcml2LT5yaW5nW1ZDUzJdKTsKIAkJCWlmICh0bXAgJiAoR1RfR0VOOF9WQ1NfV0FUQ0hE T0dfSU5URVJSVVBUIDw8IEdFTjhfVkNTMl9JUlFfU0hJRlQpKSB7CkBAIC0xMzYwLDcgKzEzNjEs NyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2VuOF9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQlyZXQgPSBJUlFfSEFORExFRDsKIAogCQkJaWYgKHRt cCAmIChHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WRUNTX0lSUV9TSElGVCkp Ci0JCQkJaW50ZWxfbHJjX2lycV9oYW5kbGVyKCZkZXZfcHJpdi0+cmluZ1tWRUNTXSk7CisJCQkJ aW50ZWxfbHJjX2lycV9oYW5kbGVyKCZkZXZfcHJpdi0+cmluZ1tWRUNTXSwgdHJ1ZSk7CiAJCQlp ZiAodG1wICYgKEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44X1ZFQ1NfSVJRX1NISUZU KSkKIAkJCQlub3RpZnlfcmluZygmZGV2X3ByaXYtPnJpbmdbVkVDU10pOwogCQl9IGVsc2UKQEAg LTIzODEsMjcgKzIzODIsNiBAQCBzdGF0aWMgdm9pZCBpOTE1X2Vycm9yX3dvcmtfZnVuYyhzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAKIAkJCXJldCA9IGk5MTVfcmVzZXRfZW5naW5lKHJpbmcp OwogCi0JCQkvKgotCQkJICogRXhlY2xpc3QgbW9kZSBvbmx5OgotCQkJICoKLQkJCSAqIC1FQUdB SU4gbWVhbnMgdGhhdCBiZXR3ZWVuIGRldGVjdGluZyBhIGhhbmcgKGFuZAotCQkJICogYWxzbyBk ZXRlcm1pbmluZyB0aGF0IHRoZSBjdXJyZW50bHkgc3VibWl0dGVkCi0JCQkgKiBjb250ZXh0IGlz IHN0YWJsZSBhbmQgdmFsaWQpIGFuZCB0cnlpbmcgdG8gcmVjb3ZlcgotCQkJICogZnJvbSB0aGUg aGFuZyB0aGUgY3VycmVudCBjb250ZXh0IGNoYW5nZWQgc3RhdGUuCi0JCQkgKiBUaGlzIG1lYW5z IHRoYXQgd2UgYXJlIHByb2JhYmx5IG5vdCBjb21wbGV0ZWx5IGh1bmcKLQkJCSAqIGFmdGVyIGFs bC4gSnVzdCBmYWlsIGFuZCByZXRyeSBieSBleGl0aW5nIGFsbCB0aGUKLQkJCSAqIHdheSBiYWNr IGFuZCB3YWl0IGZvciB0aGUgbmV4dCBoYW5nIGRldGVjdGlvbi4gSWYgd2UKLQkJCSAqIGhhdmUg YSB0cnVlIGhhbmcgb24gb3VyIGhhbmRzIHRoZW4gd2Ugd2lsbCBkZXRlY3QgaXQKLQkJCSAqIGFn YWluLCBvdGhlcndpc2Ugd2Ugd2lsbCBjb250aW51ZSBsaWtlIG5vdGhpbmcKLQkJCSAqIGhhcHBl bmVkLgotCQkJICovCi0JCQlpZiAocmV0ID09IC1FQUdBSU4pIHsKLQkJCQlEUk1fRVJST1IoIlJl c2V0IG9mICVzIGFib3J0ZWQgZHVlIHRvICIgXAotCQkJCQkgICJjaGFuZ2UgaW4gY29udGV4dCBz dWJtaXNzaW9uICIgXAotCQkJCQkgICJzdGF0ZSAtIHJldHJ5aW5nISIsIHJpbmctPm5hbWUpOwot CQkJCXJldCA9IDA7Ci0JCQl9Ci0KIAkJCWlmIChyZXQpIHsKIAkJCQlEUk1fRVJST1IoIlJlc2V0 IG9mICVzIGZhaWxlZCEgKCVkKSIsIHJpbmctPm5hbWUsIHJldCk7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKaW5kZXggZmY5ZDI3Y2IuLjQ3NmVmZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jCkBAIC02NzIsNyArNjcyLDcgQEAgc3RhdGljIGJvb2wgZXhlY2xpc3RzX2NoZWNrX3JlbW92 ZV9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAgKiBDaGVjayB0aGUgdW5y ZWFkIENvbnRleHQgU3RhdHVzIEJ1ZmZlcnMgYW5kIG1hbmFnZSB0aGUgc3VibWlzc2lvbiBvZiBu ZXcKICAqIGNvbnRleHRzIHRvIHRoZSBFTFNQIGFjY29yZGluZ2x5LgogICovCi12b2lkIGludGVs X2xyY19pcnFfaGFuZGxlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQoraW50IGludGVs X2xyY19pcnFfaGFuZGxlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBib29sIGRvX2xv Y2spCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcmluZy0+ZGV2LT5k ZXZfcHJpdmF0ZTsKIAl1MzIgc3RhdHVzX3BvaW50ZXI7CkBAIC02ODQsMTMgKzY4NCwxNCBAQCB2 b2lkIGludGVsX2xyY19pcnFfaGFuZGxlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQog CiAJc3RhdHVzX3BvaW50ZXIgPSBJOTE1X1JFQUQoUklOR19DT05URVhUX1NUQVRVU19QVFIocmlu ZykpOwogCisJaWYgKGRvX2xvY2spCisJCXNwaW5fbG9jaygmcmluZy0+ZXhlY2xpc3RfbG9jayk7 CisKIAlyZWFkX3BvaW50ZXIgPSByaW5nLT5uZXh0X2NvbnRleHRfc3RhdHVzX2J1ZmZlcjsKIAl3 cml0ZV9wb2ludGVyID0gc3RhdHVzX3BvaW50ZXIgJiAweDA3OwogCWlmIChyZWFkX3BvaW50ZXIg PiB3cml0ZV9wb2ludGVyKQogCQl3cml0ZV9wb2ludGVyICs9IDY7CiAKLQlzcGluX2xvY2soJnJp bmctPmV4ZWNsaXN0X2xvY2spOwotCiAJd2hpbGUgKHJlYWRfcG9pbnRlciA8IHdyaXRlX3BvaW50 ZXIpIHsKIAkJcmVhZF9wb2ludGVyKys7CiAJCXN0YXR1cyA9IEk5MTVfUkVBRChSSU5HX0NPTlRF WFRfU1RBVFVTX0JVRihyaW5nKSArCkBAIC03MTYsMTMgKzcxNywxNiBAQCB2b2lkIGludGVsX2xy Y19pcnFfaGFuZGxlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCWlmIChzdWJtaXRf Y29udGV4dHMgIT0gMCkKIAkJZXhlY2xpc3RzX2NvbnRleHRfdW5xdWV1ZShyaW5nLCBmYWxzZSk7 CiAKLQlzcGluX3VubG9jaygmcmluZy0+ZXhlY2xpc3RfbG9jayk7Ci0KIAlXQVJOKHN1Ym1pdF9j b250ZXh0cyA+IDIsICJNb3JlIHRoYW4gdHdvIGNvbnRleHQgY29tcGxldGUgZXZlbnRzP1xuIik7 CiAJcmluZy0+bmV4dF9jb250ZXh0X3N0YXR1c19idWZmZXIgPSB3cml0ZV9wb2ludGVyICUgNjsK IAorCWlmIChkb19sb2NrKQorCQlzcGluX3VubG9jaygmcmluZy0+ZXhlY2xpc3RfbG9jayk7CisK IAlJOTE1X1dSSVRFKFJJTkdfQ09OVEVYVF9TVEFUVVNfUFRSKHJpbmcpLAogCQkgICAoKHUzMily aW5nLT5uZXh0X2NvbnRleHRfc3RhdHVzX2J1ZmZlciAmIDB4MDcpIDw8IDgpOworCisJcmV0dXJu IHN1Ym1pdF9jb250ZXh0czsKIH0KIAogc3RhdGljIGludCBleGVjbGlzdHNfY29udGV4dF9xdWV1 ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLApAQCAtMTM1Niw2ICsxMzYwLDcgQEAgc3Rh dGljIGludCBnZW44X2luaXRfY29tbW9uX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcmluZy0+ZGV2OwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJdW5zaWduZWQgbG9u ZyBmbGFnczsKIAogCUk5MTVfV1JJVEVfSU1SKHJpbmcsIH4ocmluZy0+aXJxX2VuYWJsZV9tYXNr IHwgcmluZy0+aXJxX2tlZXBfbWFzaykpOwogCUk5MTVfV1JJVEUoUklOR19IV1NUQU0ocmluZy0+ bW1pb19iYXNlKSwgMHhmZmZmZmZmZik7CkBAIC0xMzY0LDcgKzEzNjksMTEgQEAgc3RhdGljIGlu dCBnZW44X2luaXRfY29tbW9uX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIAkJ ICAgX01BU0tFRF9CSVRfRElTQUJMRShHRlhfUkVQTEFZX01PREUpIHwKIAkJICAgX01BU0tFRF9C SVRfRU5BQkxFKEdGWF9SVU5fTElTVF9FTkFCTEUpKTsKIAlQT1NUSU5HX1JFQUQoUklOR19NT0RF X0dFTjcocmluZykpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnJpbmctPmV4ZWNsaXN0X2xvY2ss IGZsYWdzKTsKIAlyaW5nLT5uZXh0X2NvbnRleHRfc3RhdHVzX2J1ZmZlciA9IDA7CisJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmcmluZy0+ZXhlY2xpc3RfbG9jaywgZmxhZ3MpOworCiAJRFJNX0RF QlVHX0RSSVZFUigiRXhlY2xpc3RzIGVuYWJsZWQgZm9yICVzXG4iLCByaW5nLT5uYW1lKTsKIAog CWk5MTVfaGFuZ2NoZWNrX3JlaW5pdChyaW5nKTsKQEAgLTI1ODYsMyArMjU5NSw1MSBAQCBpbnRl bF9leGVjbGlzdHNfVERSX2dldF9jdXJyZW50X3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZywKIAogCXJldHVybiBzdGF0dXM7CiB9CisKKy8qKgorICogZXhlY2xpc3RzX1REUl9m b3JjZV9DU0JfY2hlY2soKSAtIGNoZWNrIENTQiBtYW51YWxseSB0byBhY3Qgb24gcGVuZGluZwor ICogY29udGV4dCBzdGF0dXMgZXZlbnRzLgorICoKKyAqIEBkZXZfcHJpdjogLi4uCisgKiBAZW5n aW5lOiBlbmdpbmUgd2hvc2UgQ1NCIGlzIHRvIGJlIGNoZWNrZWQuCisgKgorICogUmV0dXJuOgor ICogCVRydWU6IENvbnNpc3RlbmN5IHJlc3RvcmVkLgorICogCUZhbHNlOiBGYWlsZWQgdHJ5aW5n IHRvIHJlc3RvcmUgY29uc2lzdGVuY3kuCisgKgorICogSW4gY2FzZSB3ZSBtaXNzZWQgYSBjb250 ZXh0IGV2ZW50IGludGVycnVwdCB3ZSBjYW4gZmFrZSB0aGlzIGludGVycnVwdCBieQorICogYWN0 aW5nIG9uIHBlbmRpbmcgQ1NCIGV2ZW50cyBtYW51YWxseSBieSBjYWxsaW5nIHRoaXMgZnVuY3Rp b24uIFRoaXMgaXMKKyAqIG5vcm1hbGx5IHdoYXQgd291bGQgaGFwcGVuIGluIGludGVycnVwdCBj b250ZXh0IGJ1dCB0aGF0IGRvZXMgbm90IHByZXZlbnQgdXMKKyAqIGZyb20gY2FsbGluZyBpdCBm cm9tIGEgdXNlciB0aHJlYWQuCisgKi8KK2Jvb2wgaW50ZWxfZXhlY2xpc3RzX1REUl9mb3JjZV9D U0JfY2hlY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCQkgc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJYm9v bCBod19hY3RpdmU7CisJaW50IHdhc19lZmZlY3RpdmU7CisKKwlod19hY3RpdmUgPQorCQkoSTkx NV9SRUFEKFJJTkdfRVhFQ0xJU1RfU1RBVFVTKGVuZ2luZSkpICYKKwkJCUVYRUNMSVNUX1NUQVRV U19DVVJSRU5UX0FDVElWRV9FTEVNRU5UX1NUQVRVUykgPworCQkJCXRydWUgOiBmYWxzZTsKKwlp ZiAoaHdfYWN0aXZlKSB7CisJCXUzMiBod19jb250ZXh0OworCisJCWh3X2NvbnRleHQgPSBJOTE1 X1JFQUQoUklOR19FWEVDTElTVF9TVEFUVVNfQ1RYX0lEKGVuZ2luZSkpOworCQlXQVJOKGh3X2Fj dGl2ZSwgIkNvbnRleHQgKCV4KSBleGVjdXRpbmcgb24gJXMgLSAiIFwKKwkJCQkiTm8gbmVlZCBm b3IgZmFrZWQgSVJRIVxuIiwKKwkJCQlod19jb250ZXh0LCBlbmdpbmUtPm5hbWUpOworCQlyZXR1 cm4gZmFsc2U7CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+ZXhlY2xpc3RfbG9j aywgZmxhZ3MpOworCWlmICghKHdhc19lZmZlY3RpdmUgPSBpbnRlbF9scmNfaXJxX2hhbmRsZXIo ZW5naW5lLCBmYWxzZSkpKQorCQlEUk1fRVJST1IoIkZvcmNlZCBDU0IgY2hlY2sgb2YgJXMgaW5l ZmZlY3RpdmUhXG4iLCBlbmdpbmUtPm5hbWUpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVu Z2luZS0+ZXhlY2xpc3RfbG9jaywgZmxhZ3MpOworCisJd2FrZV91cF9hbGwoJmVuZ2luZS0+aXJx X3F1ZXVlKTsKKworCXJldHVybiAhIXdhc19lZmZlY3RpdmU7Cit9CisKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmgKaW5kZXggZDJmNDk3Yy4uNmZhZTNjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmgKQEAgLTg4LDcgKzg4LDcgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAkJCSAgICAgICB1NjQg ZXhlY19zdGFydCwgdTMyIGRpc3BhdGNoX2ZsYWdzKTsKIHUzMiBpbnRlbF9leGVjbGlzdHNfY3R4 X2lkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqKTsKIAotdm9pZCBpbnRlbF9s cmNfaXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7CitpbnQgaW50ZWxf bHJjX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGJvb2wgZG9fbG9j ayk7CiB2b2lkIGludGVsX2V4ZWNsaXN0c19yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZyk7CiAKIGludCBpbnRlbF9leGVjbGlzdHNfcmVhZF90YWlsKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmNfdGRyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmNfdGRyLmgKaW5k ZXggNDUyMDc1My4uMDQxYzgwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjX3Rkci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyY190ZHIuaApA QCAtMzIsNSArMzIsOCBAQCBlbnVtIGNvbnRleHRfc3VibWlzc2lvbl9zdGF0dXMKIGludGVsX2V4 ZWNsaXN0c19URFJfZ2V0X2N1cnJlbnRfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nLAogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKipyZXEpOwogCitib29sIGludGVs X2V4ZWNsaXN0c19URFJfZm9yY2VfQ1NCX2NoZWNrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKKwkJCQkJIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CisKICNlbmRp ZiAvKiBfSU5URUxfTFJDX1REUl9IXyAqLwogCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK