From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: [RFC 09/11] drm/i915: Fake lost context interrupts through forced CSB check. Date: Mon, 8 Jun 2015 18:03:27 +0100 Message-ID: <1433783009-17251-10-git-send-email-tomas.elf@intel.com> References: <1433783009-17251-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 38A996E683 for ; Mon, 8 Jun 2015 10:06:54 -0700 (PDT) In-Reply-To: <1433783009-17251-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 YmxlLgoKU2lnbmVkLW9mZi1ieTogVG9tYXMgRWxmIDx0b21hcy5lbGZAaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgICAgICAgICB8ICAgIDYgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICB8ICAgNzcgKysrKysrKysrKysrKysr KysrKysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8ICAg OTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmggICAgICAgIHwgICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjX3Rkci5oICAgIHwgICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmggfCAgIDE0ICsrKysrCiA2IGZpbGVzIGNoYW5nZWQsIDE3OSBpbnNlcnRpb25zKCspLCAx NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rt YS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwppbmRleCAyZWMzMTYzLi5hZDRj OWVmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCkBAIC03ODQsMTAgKzc4NCwxMiBAQCBpOTE1 X2hhbmdjaGVja19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlmb3IgKGkgPSAwOyBp IDwgSTkxNV9OVU1fUklOR1M7IGkrKykgewogCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUgPSAmZGV2X3ByaXYtPnJpbmdbaV07CisJCXN0cnVjdCBpbnRlbF9yaW5nX2hhbmdjaGVjayAq aGMgPSAmZW5naW5lLT5oYW5nY2hlY2s7CiAKIAkJaTkxNV9oYW5nY2hlY2tfcmVpbml0KGVuZ2lu ZSk7Ci0JCWVuZ2luZS0+aGFuZ2NoZWNrLnJlc2V0X2NvdW50ID0gMDsKLQkJZW5naW5lLT5oYW5n Y2hlY2sudGRyX2NvdW50ID0gMDsKKwkJaGMtPnJlc2V0X2NvdW50ID0gMDsKKwkJaGMtPnRkcl9j b3VudCA9IDA7CisJCWhjLT5pbmNvbnNpc3RlbnRfY3R4X3N0YXR1c19jbnQgPSAwOwogCX0KIH0K IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggNTdjODU2OC4uNTZiZDk2NyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2lycS5jCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIK ICNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVk ZSAiaW50ZWxfbHJjX3Rkci5oIgogCiAvKioKICAqIERPQzogaW50ZXJydXB0IGhhbmRsaW5nCkBA IC0xMjg2LDcgKzEyODcsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2VuOF9ndF9pcnFfaGFuZGxl cihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQlyZXQgPSBJUlFfSEFORExF RDsKIAogCQkJaWYgKHRtcCAmIChHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9S Q1NfSVJRX1NISUZUKSkKLQkJCQlpbnRlbF9scmNfaXJxX2hhbmRsZXIoJmRldl9wcml2LT5yaW5n W1JDU10pOworCQkJCWludGVsX2xyY19pcnFfaGFuZGxlcigmZGV2X3ByaXYtPnJpbmdbUkNTXSwg dHJ1ZSk7CiAJCQlpZiAodG1wICYgKEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44X1JD U19JUlFfU0hJRlQpKQogCQkJCW5vdGlmeV9yaW5nKCZkZXZfcHJpdi0+cmluZ1tSQ1NdKTsKIAkJ CWlmICh0bXAgJiAoR1RfR0VOOF9SQ1NfV0FUQ0hET0dfSU5URVJSVVBUIDw8IEdFTjhfUkNTX0lS UV9TSElGVCkpIHsKQEAgLTEzMDMsNyArMTMwNCw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBnZW44 X2d0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCX0K IAogCQkJaWYgKHRtcCAmIChHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9CQ1Nf SVJRX1NISUZUKSkKLQkJCQlpbnRlbF9scmNfaXJxX2hhbmRsZXIoJmRldl9wcml2LT5yaW5nW0JD U10pOworCQkJCWludGVsX2xyY19pcnFfaGFuZGxlcigmZGV2X3ByaXYtPnJpbmdbQkNTXSwgdHJ1 ZSk7CiAJCQlpZiAodG1wICYgKEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44X0JDU19J UlFfU0hJRlQpKQogCQkJCW5vdGlmeV9yaW5nKCZkZXZfcHJpdi0+cmluZ1tCQ1NdKTsKIAkJfSBl bHNlCkBAIC0xMzE3LDcgKzEzMTgsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2VuOF9ndF9pcnFf aGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQlyZXQgPSBJUlFf SEFORExFRDsKIAogCQkJaWYgKHRtcCAmIChHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwg R0VOOF9WQ1MxX0lSUV9TSElGVCkpCi0JCQkJaW50ZWxfbHJjX2lycV9oYW5kbGVyKCZkZXZfcHJp di0+cmluZ1tWQ1NdKTsKKwkJCQlpbnRlbF9scmNfaXJxX2hhbmRsZXIoJmRldl9wcml2LT5yaW5n W1ZDU10sIHRydWUpOwogCQkJaWYgKHRtcCAmIChHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwg R0VOOF9WQ1MxX0lSUV9TSElGVCkpCiAJCQkJbm90aWZ5X3JpbmcoJmRldl9wcml2LT5yaW5nW1ZD U10pOwogCQkJaWYgKHRtcCAmIChHVF9HRU44X1ZDU19XQVRDSERPR19JTlRFUlJVUFQgPDwgR0VO OF9WQ1MxX0lSUV9TSElGVCkpIHsKQEAgLTEzMzQsNyArMTMzNSw3IEBAIHN0YXRpYyBpcnFyZXR1 cm5fdCBnZW44X2d0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAkJCX0KIAogCQkJaWYgKHRtcCAmIChHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwg R0VOOF9WQ1MyX0lSUV9TSElGVCkpCi0JCQkJaW50ZWxfbHJjX2lycV9oYW5kbGVyKCZkZXZfcHJp di0+cmluZ1tWQ1MyXSk7CisJCQkJaW50ZWxfbHJjX2lycV9oYW5kbGVyKCZkZXZfcHJpdi0+cmlu Z1tWQ1MyXSwgdHJ1ZSk7CiAJCQlpZiAodG1wICYgKEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8 PCBHRU44X1ZDUzJfSVJRX1NISUZUKSkKIAkJCQlub3RpZnlfcmluZygmZGV2X3ByaXYtPnJpbmdb VkNTMl0pOwogCQkJaWYgKHRtcCAmIChHVF9HRU44X1ZDU19XQVRDSERPR19JTlRFUlJVUFQgPDwg R0VOOF9WQ1MyX0lSUV9TSElGVCkpIHsKQEAgLTEzNjAsNyArMTM2MSw3IEBAIHN0YXRpYyBpcnFy ZXR1cm5fdCBnZW44X2d0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAkJCXJldCA9IElSUV9IQU5ETEVEOwogCiAJCQlpZiAodG1wICYgKEdUX0NPTlRFWFRf U1dJVENIX0lOVEVSUlVQVCA8PCBHRU44X1ZFQ1NfSVJRX1NISUZUKSkKLQkJCQlpbnRlbF9scmNf aXJxX2hhbmRsZXIoJmRldl9wcml2LT5yaW5nW1ZFQ1NdKTsKKwkJCQlpbnRlbF9scmNfaXJxX2hh bmRsZXIoJmRldl9wcml2LT5yaW5nW1ZFQ1NdLCB0cnVlKTsKIAkJCWlmICh0bXAgJiAoR1RfUkVO REVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfVkVDU19JUlFfU0hJRlQpKQogCQkJCW5vdGlmeV9y aW5nKCZkZXZfcHJpdi0+cmluZ1tWRUNTXSk7CiAJCX0gZWxzZQpAQCAtMzA1MCw2ICszMDUxLDI3 IEBAIHJpbmdfc3R1Y2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgdTY0IGFjdGhkKQog CXJldHVybiBIQU5HQ0hFQ0tfSFVORzsKIH0KIAorc3RhdGljIHZvaWQgY2hlY2tfY3R4X3N1Ym1p c3Npb25fY29uc2lzdGVuY3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJ CSAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgICBlbnVtIGNvbnRleHRf c3VibWlzc2lvbl9zdGF0dXMgc3RhdHVzKQoreworCXN0cnVjdCBpbnRlbF9yaW5nX2hhbmdjaGVj ayAqaGMgPSAmZW5naW5lLT5oYW5nY2hlY2s7CisKKwlpZiAoc3RhdHVzID09IENPTlRFWFRfU1VC TUlTU0lPTl9TVEFUVVNfSU5DT05TSVNURU5UKSB7CisJCWlmIChoYy0+aW5jb25zaXN0ZW50X2N0 eF9zdGF0dXNfY250KysgPgorCQkJSTkxNV9GQUtFRF9DT05URVhUX0lSUV9USFJFU0hPTEQpIHsK KworCQkJRFJNX0VSUk9SKCJJbmNvbnNpc3RlbnQgY29udGV4dCBzdWJtaXNzaW9uIHN0YXRlLiAi IFwKKwkJCQkgICJGYWtpbmcgaW50ZXJydXB0IG9uICVzIVxuIiwgZW5naW5lLT5uYW1lKTsKKwor CQkJaW50ZWxfZXhlY2xpc3RzX1REUl9mb3JjZV9DU0JfY2hlY2soZGV2X3ByaXYsIGVuZ2luZSk7 CisJCQloYy0+aW5jb25zaXN0ZW50X2N0eF9zdGF0dXNfY250ID0gMDsKKwkJfQorCX0KKwllbHNl CisJCWhjLT5pbmNvbnNpc3RlbnRfY3R4X3N0YXR1c19jbnQgPSAwOworfQorCiAvKgogICogVGhp cyBpcyBjYWxsZWQgd2hlbiB0aGUgY2hpcCBoYXNuJ3QgcmVwb3J0ZWQgYmFjayB3aXRoIGNvbXBs ZXRlZAogICogYmF0Y2hidWZmZXJzIGluIGEgbG9uZyB0aW1lLiBXZSBrZWVwIHRyYWNrIHBlciBy aW5nIHNlcW5vIHByb2dyZXNzIGFuZApAQCAtMzA3MCwxMCArMzA5Miw0MyBAQCBzdGF0aWMgdm9p ZCBpOTE1X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlpbnQg YnVzeV9jb3VudCA9IDA7CiAJYm9vbCBzdHVja1tJOTE1X05VTV9SSU5HU10gPSB7IDAgfTsKIAli b29sIGZvcmNlX2Z1bGxfZ3B1X3Jlc2V0ID0gZmFsc2U7CisJZW51bSBjb250ZXh0X3N1Ym1pc3Np b25fc3RhdHVzIHN0YXR1c1tJOTE1X05VTV9SSU5HU10gPQorCQl7IENPTlRFWFRfU1VCTUlTU0lP Tl9TVEFUVVNfT0sgfTsKICNkZWZpbmUgQlVTWSAxCiAjZGVmaW5lIEtJQ0sgNQogI2RlZmluZSBI VU5HIDIwCiAKKwkvKgorCSAqIEluIGV4ZWNsaXN0IG1vZGUgd2UgbmVlZCB0byBjaGVjayBmb3Ig aW5jb25zaXN0ZW50IGNvbnRleHQKKwkgKiBzdWJtaXNzaW9uIHN0YXRlcyByZWdhcmRsZXNzIGlm IHdlIHdhbnQgdG8gYWN0dWFsbHkgY2hlY2sgZm9yIGhhbmdzCisJICogb3Igbm90IHNpbmNlIHdh dGNoZG9nIHRpbWVvdXQgaXMgZGVwZW5kZW50IG9uIHBlci1lbmdpbmUgcmVjb3ZlcnkKKwkgKiB3 b3JraW5nIHByb3Blcmx5LCB3aGljaCB3aWxsIG5vdCBiZSB0aGUgY2FzZSBpZiB0aGVyZSBpcyBh bgorCSAqIGluY29uc2lzdGVudCBzdWJtaXNzaW9uIHN0YXRlIGJldHdlZW4gaGFyZHdhcmUgYW5k IGRyaXZlci4KKwkgKi8KKwlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQorCQlmb3JfZWFjaF9y aW5nKHJpbmcsIGRldl9wcml2LCBpKSB7CisJCQlzdGF0dXNbaV0gPSBpbnRlbF9leGVjbGlzdHNf VERSX2dldF9jdXJyZW50X3JlcXVlc3QocmluZywgTlVMTCk7CisJCQljaGVja19jdHhfc3VibWlz c2lvbl9jb25zaXN0ZW5jeShkZXZfcHJpdiwKKwkJCQkJCQkgcmluZywKKwkJCQkJCQkgc3RhdHVz W2ldKTsKKworCQkJLyoKKwkJCSAqIFdvcmsgaXMgc3RpbGwgcGVuZGluZyEgSWYgaGFuZyBjaGVj a2luZyBpcyB0dXJuZWQgb24KKwkJCSAqIHRoZW4gZ28gdGhyb3VnaCB0aGUgbm9ybWFsIGhhbmcg Y2hlY2sgcHJvY2VkdXJlLgorCQkJICogT3RoZXJ3aXNlIHdlIG9idmlvdXNseSBkb24ndCBkbyB0 aGUgbm9ybWFsIGJ1c3luZXNzCisJCQkgKiBjaGVjayBidXQgaW5zdGVhZCBnbyBmb3IgYSBzaW1w bGUgY2hlY2sgb2YgdGhlCisJCQkgKiBleGVjbGlzdCBxdWV1ZXMgdG8gc2VlIGlmIHRoZXJlJ3Mg d29yayBwZW5kaW5nLiBJZgorCQkJICogc28sIHRoZXJlJ3MgdGhlIHBvdGVudGlhbCBmb3IgYW4g aW5jb25zaXN0ZW50CisJCQkgKiBjb250ZXh0IHN1Ym1pc3Npb24gc3RhdGUgc28gd2UgbXVzdCBr ZWVwIGhhbmcKKwkJCSAqIGNoZWNraW5nLgorCQkJICovCisJCQlpZiAoIWk5MTUuZW5hYmxlX2hh bmdjaGVjayAmJgorCQkJICAgKHN0YXR1c1tpXSAhPSBDT05URVhUX1NVQk1JU1NJT05fU1RBVFVT X05PTkVfU1VCTUlUVEVEKSkgeworCQkJCSBpOTE1X3F1ZXVlX2hhbmdjaGVjayhkZXYpOworCQkJ CSByZXR1cm47CisJCQl9CisJCX0KKwogCWlmICghaTkxNS5lbmFibGVfaGFuZ2NoZWNrKQogCQly ZXR1cm47CiAKQEAgLTMxNjAsNyArMzIxNSwxNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2hhbmdjaGVj a19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAl9CiAKIAlmb3JfZWFjaF9yaW5n KHJpbmcsIGRldl9wcml2LCBpKSB7Ci0JCWlmIChyaW5nLT5oYW5nY2hlY2suc2NvcmUgPj0gSEFO R0NIRUNLX1NDT1JFX1JJTkdfSFVORykgeworCQkvKgorCQkgKiBJZiB0aGUgZW5naW5lIGlzIGh1 bmcgYnV0IHRoZSBjb250ZXh0IHN1Ym1pc3Npb24gc3RhdGUgaXMKKwkJICogaW5jb25zaXN0ZW50 IHdlIGNhbm5vdCBhdHRlbXB0IHJlY292ZXJ5IHNpbmNlIHdlIGhhdmUgbm8gd2F5CisJCSAqIG9m IHJlc3VibWl0dGluZyB0aGUgY29udGV4dC4gVHJ5aW5nIHRvIGRvIHNvIHdvdWxkIGp1c3QKKwkJ ICogY2F1c2UgdW5mb3JzZWVuIHByZWVtcHRpb25zLiBBdCB0aGUgdG9wIG9mIHRoaXMgZnVuY3Rp b24gd2UKKwkJICogY2hlY2sgZm9yIC0gYW5kIGF0dGVtcHQgdG8gcmVjdGlmeSAtIGFueSBpbmNv bnNpc3RlbmNpZXMgc28KKwkJICogdGhhdCBmdXR1cmUgaGFuZyBjaGVja3MgY2FuIHNhZmVseSBw cm9jZWVkIHRvIHJlY292ZXIgZnJvbQorCQkgKiB0aGUgaGFuZy4KKwkJICovCisJCWlmICgocmlu Zy0+aGFuZ2NoZWNrLnNjb3JlID49IEhBTkdDSEVDS19TQ09SRV9SSU5HX0hVTkcpICYmCisJCSAg ICAoc3RhdHVzW2ldID09IENPTlRFWFRfU1VCTUlTU0lPTl9TVEFUVVNfT0spKSB7CiAJCQlEUk1f SU5GTygiJXMgb24gJXNcbiIsCiAJCQkJIHN0dWNrW2ldID8gInN0dWNrIiA6ICJubyBwcm9ncmVz cyIsCiAJCQkJIHJpbmctPm5hbWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCAwNTFk YTA5Li4wZDE5N2ZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtNjQxLDcgKzY0MSw3 IEBAIHN0YXRpYyBib29sIGV4ZWNsaXN0c19jaGVja19yZW1vdmVfcmVxdWVzdChzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nLAogICogQ2hlY2sgdGhlIHVucmVhZCBDb250ZXh0IFN0YXR1cyBC dWZmZXJzIGFuZCBtYW5hZ2UgdGhlIHN1Ym1pc3Npb24gb2YgbmV3CiAgKiBjb250ZXh0cyB0byB0 aGUgRUxTUCBhY2NvcmRpbmdseS4KICAqLwotdm9pZCBpbnRlbF9scmNfaXJxX2hhbmRsZXIoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKK2ludCBpbnRlbF9scmNfaXJxX2hhbmRsZXIoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgYm9vbCBkb19sb2NrKQogewogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJpbmctPmRldi0+ZGV2X3ByaXZhdGU7CiAJdTMyIHN0 YXR1c19wb2ludGVyOwpAQCAtNjUzLDEzICs2NTMsMTQgQEAgdm9pZCBpbnRlbF9scmNfaXJxX2hh bmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIAogCXN0YXR1c19wb2ludGVyID0g STkxNV9SRUFEKFJJTkdfQ09OVEVYVF9TVEFUVVNfUFRSKHJpbmcpKTsKIAorCWlmIChkb19sb2Nr KQorCQlzcGluX2xvY2soJnJpbmctPmV4ZWNsaXN0X2xvY2spOworCiAJcmVhZF9wb2ludGVyID0g cmluZy0+bmV4dF9jb250ZXh0X3N0YXR1c19idWZmZXI7CiAJd3JpdGVfcG9pbnRlciA9IHN0YXR1 c19wb2ludGVyICYgMHgwNzsKIAlpZiAocmVhZF9wb2ludGVyID4gd3JpdGVfcG9pbnRlcikKIAkJ d3JpdGVfcG9pbnRlciArPSA2OwogCi0Jc3Bpbl9sb2NrKCZyaW5nLT5leGVjbGlzdF9sb2NrKTsK LQogCXdoaWxlIChyZWFkX3BvaW50ZXIgPCB3cml0ZV9wb2ludGVyKSB7CiAJCXJlYWRfcG9pbnRl cisrOwogCQlzdGF0dXMgPSBJOTE1X1JFQUQoUklOR19DT05URVhUX1NUQVRVU19CVUYocmluZykg KwpAQCAtNjg1LDEzICs2ODYsMTYgQEAgdm9pZCBpbnRlbF9scmNfaXJxX2hhbmRsZXIoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZykKIAlpZiAoc3VibWl0X2NvbnRleHRzICE9IDApCiAJCWV4 ZWNsaXN0c19jb250ZXh0X3VucXVldWUocmluZyk7CiAKLQlzcGluX3VubG9jaygmcmluZy0+ZXhl Y2xpc3RfbG9jayk7Ci0KIAlXQVJOKHN1Ym1pdF9jb250ZXh0cyA+IDIsICJNb3JlIHRoYW4gdHdv IGNvbnRleHQgY29tcGxldGUgZXZlbnRzP1xuIik7CiAJcmluZy0+bmV4dF9jb250ZXh0X3N0YXR1 c19idWZmZXIgPSB3cml0ZV9wb2ludGVyICUgNjsKIAorCWlmIChkb19sb2NrKQorCQlzcGluX3Vu bG9jaygmcmluZy0+ZXhlY2xpc3RfbG9jayk7CisKIAlJOTE1X1dSSVRFKFJJTkdfQ09OVEVYVF9T VEFUVVNfUFRSKHJpbmcpLAogCQkgICAoKHUzMilyaW5nLT5uZXh0X2NvbnRleHRfc3RhdHVzX2J1 ZmZlciAmIDB4MDcpIDw8IDgpOworCisJcmV0dXJuIHN1Ym1pdF9jb250ZXh0czsKIH0KIAogc3Rh dGljIGludCBleGVjbGlzdHNfY29udGV4dF9xdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nLApAQCAtMTQ3Myw2ICsxNDc3LDcgQEAgc3RhdGljIGludCBnZW44X2luaXRfY29tbW9uX3Jp bmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gcmluZy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCUk5MTVfV1JJVEVfSU1S KHJpbmcsIH4ocmluZy0+aXJxX2VuYWJsZV9tYXNrIHwgcmluZy0+aXJxX2tlZXBfbWFzaykpOwog CUk5MTVfV1JJVEUoUklOR19IV1NUQU0ocmluZy0+bW1pb19iYXNlKSwgMHhmZmZmZmZmZik7CkBA IC0xNDgxLDcgKzE0ODYsMTEgQEAgc3RhdGljIGludCBnZW44X2luaXRfY29tbW9uX3Jpbmcoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIAkJICAgX01BU0tFRF9CSVRfRElTQUJMRShHRlhf UkVQTEFZX01PREUpIHwKIAkJICAgX01BU0tFRF9CSVRfRU5BQkxFKEdGWF9SVU5fTElTVF9FTkFC TEUpKTsKIAlQT1NUSU5HX1JFQUQoUklOR19NT0RFX0dFTjcocmluZykpOworCisJc3Bpbl9sb2Nr X2lycXNhdmUoJnJpbmctPmV4ZWNsaXN0X2xvY2ssIGZsYWdzKTsKIAlyaW5nLT5uZXh0X2NvbnRl eHRfc3RhdHVzX2J1ZmZlciA9IDA7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcmluZy0+ZXhl Y2xpc3RfbG9jaywgZmxhZ3MpOworCiAJRFJNX0RFQlVHX0RSSVZFUigiRXhlY2xpc3RzIGVuYWJs ZWQgZm9yICVzXG4iLCByaW5nLT5uYW1lKTsKIAogCWk5MTVfaGFuZ2NoZWNrX3JlaW5pdChyaW5n KTsKQEAgLTI3MDMsMyArMjcxMiw3NSBAQCBpbnRlbF9leGVjbGlzdHNfVERSX2dldF9jdXJyZW50 X3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAogCXJldHVybiBzdGF0dXM7 CiB9CisKKy8qKgorICogZXhlY2xpc3RzX1REUl9mb3JjZV9DU0JfY2hlY2soKSAtIGNoZWNrIENT QiBtYW51YWxseSB0byBhY3Qgb24gcGVuZGluZworICogY29udGV4dCBzdGF0dXMgZXZlbnRzLgor ICoKKyAqIEBkZXZfcHJpdjogLi4uCisgKiBAZW5naW5lOiBlbmdpbmUgd2hvc2UgQ1NCIGlzIHRv IGJlIGNoZWNrZWQuCisgKgorICogSW4gY2FzZSB3ZSBtaXNzZWQgYSBjb250ZXh0IGV2ZW50IGlu dGVycnVwdCB3ZSBjYW4gZmFrZSB0aGlzIGludGVycnVwdCBieQorICogYWN0aW5nIG9uIHBlbmRp bmcgQ1NCIGV2ZW50cyBtYW51YWxseSBieSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uIFRoaXMgaXMK KyAqIG5vcm1hbGx5IHdoYXQgd291bGQgaGFwcGVuIGluIGludGVycnVwdCBjb250ZXh0IGJ1dCB0 aGF0IGRvZXMgbm90IHByZXZlbnQgdXMKKyAqIGZyb20gY2FsbGluZyBpdCBmcm9tIGEgdXNlciB0 aHJlYWQuCisgKi8KK3ZvaWQgaW50ZWxfZXhlY2xpc3RzX1REUl9mb3JjZV9DU0JfY2hlY2soc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCQkgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJYm9vbCBod19hY3RpdmU7 CisJaW50IHdhc19lZmZlY3RpdmU7CisKKwlpZiAoYXRvbWljX3JlYWQoJmVuZ2luZS0+aGFuZ2No ZWNrLmZsYWdzKQorCQkmIEk5MTVfRU5HSU5FX1JFU0VUX0lOX1BST0dSRVNTKSB7CisKKwkJLyoK KwkJICogTm9ybWFsbHkgaXQncyBub3QgYSBwcm9ibGVtIHRvIGZha2UgY29udGV4dCBldmVudCBp bnRlcnJ1cHRzCisJCSAqIGF0IGFueSBwb2ludCBldmVuIHRob3VnaCB0aGUgcmVhbCBpbnRlcnJ1 cHQgbWlnaHQgY29tZSBpbiBhcworCQkgKiB3ZWxsLiBIb3dldmVyLCBmb2xsb3dpbmcgYSBwZXIt ZW5naW5lIHJlc2V0IHRoZSByZWFkIHBvaW50ZXIKKwkJICogaXMgc2V0IHRvIDAgYW5kIHRoZSB3 cml0ZSBwb2ludGVyIGlzIHNldCB0byA3LgorCQkgKiBTZWVpbmcgYXMgNyAlIDYgPSAxICglIDYg bWVhbmluZyB0aGVyZSBhcmUgNiBldmVudCBzbG90cyksCisJCSAqIHdoaWNoIGlzIDEgYWJvdmUg dGhlIHBvc3QtcmVzZXQgcmVhZCBwb2ludGVyIHBvc2l0aW9uLCB0aGF0CisJCSAqIG1lYW5zIHRo YXQgd2UndmUgZ290IGEgQ1NCIHdpbmRvdyBvZiBub24temVybyBzaXplIHRoYXQKKwkJICogbWln aHQgYmUgcG9wdWxhdGVkIHdpdGggY29udGV4dCBldmVudHMgYnkgdGhlIGhhcmR3YXJlCisJCSAq IGZvbGxvd2luZyB0aGUgVERSIGNvbnRleHQgcmVzdWJtaXNzaW9uLiBJZiB3ZSBkbyBhIGZha2Vk CisJCSAqIGludGVycnVwdCB0b28gZWFybHkgKGJlZm9yZSBmaW5pc2hpbmcgaGFuZyByZWNvdmVy eSkgd2UKKwkJICogY2xlYXIgb3V0IHRoaXMgd2luZG93IGJ5IHNldHRpbmcgcmVhZCBwb2ludGVy ID0gd3JpdGUKKwkJICogcG9pbnRlciA9IDEgZXhwZWN0aW5nIHRoYXQgYWxsIGNvbnRhaW5lZCBl dmVudHMgaGF2ZSBiZWVuCisJCSAqIHByb2Nlc3NlZCAoZm9sbG93aW5nIGEgcmVzZXQgdGhlcmUg d2lsbCBiZSBub3RoaW5nIGJ1dAorCQkgKiB6ZXJvZXMgaW4gdGhlcmUsIHRob3VnaCkuIFRoaXMg ZG9lcyBub3QgcHJldmVudCB0aGUgaGFyZHdhcmUKKwkJICogZnJvbSBmaWxsaW5nIGluIENTQiBz bG90cyAwIGFuZCAxIHdpdGggZXZlbnRzIGFmdGVyIHRoaXMKKwkJICogcG9pbnQgaW4gdGltZSwg dGhvdWdoLiBCeSBjaGVja2luZyB0aGUgQ1NCIGJlZm9yZSBhbGxvd2luZworCQkgKiB0aGUgaGFy ZHdhcmUgZmlsbCBpbiB0aGUgZXZlbnRzIHdlIGhpZGUgdGhlc2UgZXZlbnRzIGZyb20KKwkJICog YmVpbmcgcHJvY2Vzc2VkLCBwb3RlbnRpYWxseSBjYXVzaW5nIGlycmVjb3ZlcmFibGUgaGFuZ3Mu CisJCSAqCisJCSAqIFNvbHV0aW9uOiBEbyBub3QgZmFrZSBpbnRlcnJ1cHRzIHdoaWxlIGhhbmcg cmVjb3ZlcnkgaXMgb25nb2luZy4KKwkJICovCisJCURSTV9FUlJPUigiSGFuZyByZWNvdmVyeSBp biBwcm9ncmVzcy4gQWJvcnQgJXMgQ1NCIGNoZWNrIVxuIiwKKwkJCWVuZ2luZS0+bmFtZSk7CisK KwkJcmV0dXJuOworCX0KKworCWh3X2FjdGl2ZSA9CisJCShJOTE1X1JFQUQoUklOR19FWEVDTElT VF9TVEFUVVMoZW5naW5lKSkgJgorCQkJRVhFQ0xJU1RfU1RBVFVTX0NVUlJFTlRfQUNUSVZFX0VM RU1FTlRfU1RBVFVTKSA/CisJCQkJdHJ1ZSA6IGZhbHNlOworCWlmIChod19hY3RpdmUpIHsKKwkJ dTMyIGh3X2NvbnRleHQ7CisKKwkJaHdfY29udGV4dCA9IEk5MTVfUkVBRChSSU5HX0VYRUNMSVNU X1NUQVRVU19DVFhfSUQoZW5naW5lKSk7CisJCVdBUk4oaHdfYWN0aXZlLCAiQ29udGV4dCAoJXgp IGV4ZWN1dGluZyBvbiAlcyAtICIgXAorCQkJCSJObyBuZWVkIGZvciBmYWtlZCBJUlEhXG4iLAor CQkJCWh3X2NvbnRleHQsIGVuZ2luZS0+bmFtZSk7CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUo JmVuZ2luZS0+ZXhlY2xpc3RfbG9jaywgZmxhZ3MpOworCWlmICghKHdhc19lZmZlY3RpdmUgPSBp bnRlbF9scmNfaXJxX2hhbmRsZXIoZW5naW5lLCBmYWxzZSkpKQorCQlEUk1fRVJST1IoIkZvcmNl ZCBDU0IgY2hlY2sgb2YgJXMgaW5lZmZlY3RpdmUhXG4iLCBlbmdpbmUtPm5hbWUpOworCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+ZXhlY2xpc3RfbG9jaywgZmxhZ3MpOworCisJd2Fr ZV91cF9hbGwoJmVuZ2luZS0+aXJxX3F1ZXVlKTsKK30KKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu aAppbmRleCBkMmY0OTdjLi42ZmFlM2M4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaApAQCAt ODgsNyArODgsNyBAQCBpbnQgaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb24oc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlLAogCQkJICAgICAgIHU2NCBleGVjX3N0 YXJ0LCB1MzIgZGlzcGF0Y2hfZmxhZ3MpOwogdTMyIGludGVsX2V4ZWNsaXN0c19jdHhfaWQoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmopOwogCi12b2lkIGludGVsX2xyY19pcnFf aGFuZGxlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKK2ludCBpbnRlbF9scmNfaXJx X2hhbmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgYm9vbCBkb19sb2NrKTsKIHZv aWQgaW50ZWxfZXhlY2xpc3RzX3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nKTsKIAogaW50IGludGVsX2V4ZWNsaXN0c19yZWFkX3RhaWwoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Y190ZHIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyY190ZHIuaAppbmRleCA2ODRi MDA5Li43OWNhZTdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmNf dGRyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjX3Rkci5oCkBAIC0zMyw1 ICszMyw4IEBAIGVudW0gY29udGV4dF9zdWJtaXNzaW9uX3N0YXR1cwogaW50ZWxfZXhlY2xpc3Rz X1REUl9nZXRfY3VycmVudF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJ CXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqKnJlcSk7CiAKK3ZvaWQgaW50ZWxfZXhlY2xp c3RzX1REUl9mb3JjZV9DU0JfY2hlY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAorCQkJCQkgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKKwogI2VuZGlmIC8qIF9J TlRFTF9MUkNfVERSX0hfICovCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aAppbmRleCA5MDU4Nzg5Li5mNzc5ZDRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCkBAIC0xNDEsNiArMTQxLDIwIEBAIHN0cnVjdCBpbnRlbF9yaW5nX2hhbmdjaGVj ayB7CiAKIAkvKiBOdW1iZXIgb2Ygd2F0Y2hkb2cgaGFuZyBkZXRlY3Rpb25zIGZvciB0aGlzIHJp bmcgKi8KIAl1MzIgd2F0Y2hkb2dfY291bnQ7CisKKwkvKgorCSAqIE51bWJlciBvZiBkZXRlY3Rl ZCBjb250ZXh0IHN1Ym1pc3Npb24gc3RhdHVzCisJICogaW5jb25zaXN0ZW5jaWVzCisJICovCisJ dTMyIGluY29uc2lzdGVudF9jdHhfc3RhdHVzX2NudDsKKworCS8qCisJICogTnVtYmVyIG9mIGRl dGVjdGVkIGNvbnRleHQgc3VibWlzc2lvbiBzdGF0dXMKKwkgKiBpbmNvbnNpc3RlbmNpZXMgYmVm b3JlIGZha2luZyB0aGUgY29udGV4dCBldmVudCBJUlEKKwkgKiB0aGF0IGlzIHByZXN1bWVkIG1p c3NpbmcuCisJICovCisjZGVmaW5lIEk5MTVfRkFLRURfQ09OVEVYVF9JUlFfVEhSRVNIT0xEIDEK KwogfTsKIAogc3RydWN0IGludGVsX3JpbmdidWZmZXIgewotLSAKMS43LjkuNQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK