From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v4 2/5] drm/i915: Watchdog timeout: IRQ handler for gen8+ Date: Thu, 28 Feb 2019 17:38:11 +0000 Message-ID: <88d45f7b-683f-d22f-365c-65c31a90ec2a@linux.intel.com> References: <20190221025820.28447-1-carlos.santa@intel.com> <20190221025820.28447-3-carlos.santa@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6FB186E21E for ; Thu, 28 Feb 2019 17:38:14 +0000 (UTC) In-Reply-To: <20190221025820.28447-3-carlos.santa@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Carlos Santa , intel-gfx@lists.freedesktop.org Cc: Michel Thierry List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIxLzAyLzIwMTkgMDI6NTgsIENhcmxvcyBTYW50YSB3cm90ZToKPiBGcm9tOiBNaWNoZWwg VGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgo+IAo+ICoqKiBHZW5lcmFsICoqKgo+ IAo+IFdhdGNoZG9nIHRpbWVvdXQgKG9yICJtZWRpYSBlbmdpbmUgcmVzZXQiKSBpcyBhIGZlYXR1 cmUgdGhhdCBhbGxvd3MKPiB1c2VybGFuZCBhcHBsaWNhdGlvbnMgdG8gZW5hYmxlIGhhbmcgZGV0 ZWN0aW9uIG9uIGluZGl2aWR1YWwgYmF0Y2ggYnVmZmVycy4KPiBUaGUgZGV0ZWN0aW9uIG1lY2hh bmlzbSBpdHNlbGYgaXMgbW9zdGx5IGJvdW5kIHRvIHRoZSBoYXJkd2FyZSBhbmQgdGhlIG9ubHkK PiB0aGluZyB0aGF0IHRoZSBkcml2ZXIgbmVlZHMgdG8gZG8gdG8gc3VwcG9ydCB0aGlzIGZvcm0g b2YgaGFuZyBkZXRlY3Rpb24KPiBpcyB0byBpbXBsZW1lbnQgdGhlIGludGVycnVwdCBoYW5kbGlu ZyBzdXBwb3J0IGFzIHdlbGwgYXMgd2F0Y2hkb2cgY29tbWFuZAo+IGVtaXNzaW9uIGJlZm9yZSBh bmQgYWZ0ZXIgdGhlIGVtaXR0ZWQgYmF0Y2ggYnVmZmVyIHN0YXJ0IGluc3RydWN0aW9uIGluIHRo ZQo+IHJpbmcgYnVmZmVyLgo+IAo+IFRoZSBwcmluY2lwbGUgb2YgdGhlIGhhbmcgZGV0ZWN0aW9u IG1lY2hhbmlzbSBpcyBhcyBmb2xsb3dzOgo+IAo+IDEuIE9uY2UgdGhlIGRlY2lzaW9uIGhhcyBi ZWVuIG1hZGUgdG8gZW5hYmxlIHdhdGNoZG9nIHRpbWVvdXQgZm9yIGEKPiBwYXJ0aWN1bGFyIGJh dGNoIGJ1ZmZlciBhbmQgdGhlIGRyaXZlciBpcyBpbiB0aGUgcHJvY2VzcyBvZiBlbWl0dGluZyB0 aGUKPiBiYXRjaCBidWZmZXIgc3RhcnQgaW5zdHJ1Y3Rpb24gaW50byB0aGUgcmluZyBidWZmZXIg aXQgYWxzbyBlbWl0cyBhCj4gd2F0Y2hkb2cgdGltZXIgc3RhcnQgaW5zdHJ1Y3Rpb24gYmVmb3Jl IGFuZCBhIHdhdGNoZG9nIHRpbWVyIGNhbmNlbGxhdGlvbgo+IGluc3RydWN0aW9uIGFmdGVyIHRo ZSBiYXRjaCBidWZmZXIgc3RhcnQgaW5zdHJ1Y3Rpb24gaW4gdGhlIHJpbmcgYnVmZmVyLgo+IAo+ IDIuIE9uY2UgdGhlIEdQVSBleGVjdXRpb24gcmVhY2hlcyB0aGUgd2F0Y2hkb2cgdGltZXIgc3Rh cnQgaW5zdHJ1Y3Rpb24KPiB0aGUgaGFyZHdhcmUgd2F0Y2hkb2cgY291bnRlciBpcyBzdGFydGVk IGJ5IHRoZSBoYXJkd2FyZS4gVGhlIGNvdW50ZXIKPiBrZWVwcyBjb3VudGluZyB1bnRpbCBlaXRo ZXIgcmVhY2hpbmcgYSBwcmV2aW91c2x5IGNvbmZpZ3VyZWQgdGhyZXNob2xkCj4gdmFsdWUgb3Ig dGhlIHRpbWVyIGNhbmNlbGxhdGlvbiBpbnN0cnVjdGlvbiBpcyBleGVjdXRlZC4KPiAKPiAyYS4g SWYgdGhlIGNvdW50ZXIgcmVhY2hlcyB0aGUgdGhyZXNob2xkIHZhbHVlIHRoZSBoYXJkd2FyZSBm aXJlcyBhCj4gd2F0Y2hkb2cgaW50ZXJydXB0IHRoYXQgaXMgcGlja2VkIHVwIGJ5IHRoZSB3YXRj aGRvZyBpbnRlcnJ1cHQgaGFuZGxlci4KPiBUaGlzIG1lYW5zIHRoYXQgYSBoYW5nIGhhcyBiZWVu IGRldGVjdGVkIGFuZCB0aGUgZHJpdmVyIG5lZWRzIHRvIGRlYWwgd2l0aAo+IGl0IHRoZSBzYW1l IHdheSBpdCB3b3VsZCBkZWFsIHdpdGggYSBlbmdpbmUgaGFuZyBkZXRlY3RlZCBieSB0aGUgcGVy aW9kaWMKPiBoYW5nIGNoZWNrZXIuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdHdv IGlzIHRoYXQgd2UgYWxyZWFkeSBibGFtZWQKPiB0aGUgYWN0aXZlIHJlcXVlc3QgKHRvIGVuc3Vy ZSBhbiBlbmdpbmUgcmVzZXQpLgo+IAo+IDJiLiBJZiB0aGUgYmF0Y2ggYnVmZmVyIGNvbXBsZXRl cyBhbmQgdGhlIGV4ZWN1dGlvbiByZWFjaGVzIHRoZSB3YXRjaGRvZwo+IGNhbmNlbGxhdGlvbiBp bnN0cnVjdGlvbiBiZWZvcmUgdGhlIHdhdGNoZG9nIGNvdW50ZXIgcmVhY2hlcyBpdHMKPiB0aHJl c2hvbGQgdmFsdWUgdGhlIHdhdGNoZG9nIGlzIGNhbmNlbGxlZCBhbmQgbm90aGluZyBtb3JlIGNv bWVzIG9mIGl0Lgo+IE5vIGhhbmcgaXMgZGV0ZWN0ZWQuCj4gCj4gTm90ZSBhYm91dCBmdXR1cmUg aW50ZXJhY3Rpb24gd2l0aCBwcmVlbXB0aW9uOiBQcmVlbXB0aW9uIGNvdWxkIGhhcHBlbgo+IGlu IGEgY29tbWFuZCBzZXF1ZW5jZSBwcmlvciB0byB3YXRjaGRvZyBjb3VudGVyIGdldHRpbmcgZGlz YWJsZWQsCj4gcmVzdWx0aW5nIGluIHdhdGNoZG9nIGJlaW5nIHRyaWdnZXJlZCBmb2xsb3dpbmcg cHJlZW1wdGlvbiAoZS5nLiB3aGVuCj4gd2F0Y2hkb2cgaGFkIGJlZW4gZW5hYmxlZCBpbiB0aGUg bG93IHByaW9yaXR5IGJhdGNoKS4gVGhlIGRyaXZlciB3aWxsCj4gbmVlZCB0byBleHBsaWNpdGx5 IGRpc2FibGUgdGhlIHdhdGNoZG9nIGNvdW50ZXIgYXMgcGFydCBvZiB0aGUKPiBwcmVlbXB0aW9u IHNlcXVlbmNlLgo+IAo+ICoqKiBUaGlzIHBhdGNoIGludHJvZHVjZXM6ICoqKgo+IAo+IDEuIElS USBoYW5kbGVyIGNvZGUgZm9yIHdhdGNoZG9nIHRpbWVvdXQgYWxsb3dpbmcgZGlyZWN0IGhhbmcg cmVjb3ZlcnkKPiBiYXNlZCBvbiBoYXJkd2FyZS1kcml2ZW4gaGFuZyBkZXRlY3Rpb24sIHdoaWNo IHRoZW4gaW50ZWdyYXRlcyBkaXJlY3RseQo+IHdpdGggdGhlIGhhbmcgcmVjb3ZlcnkgcGF0aC4g VGhpcyBpcyBpbmRlcGVuZGVudCBvZiBoYXZpbmcgcGVyLWVuZ2luZSByZXNldAo+IG9yIGp1c3Qg ZnVsbCBncHUgcmVzZXQuCj4gCj4gMi4gV2F0Y2hkb2cgc3BlY2lmaWMgcmVnaXN0ZXIgaW5mb3Jt YXRpb24uCj4gCj4gQ3VycmVudGx5IHRoZSByZW5kZXIgZW5naW5lIGFuZCBhbGwgYXZhaWxhYmxl IG1lZGlhIGVuZ2luZXMgc3VwcG9ydAo+IHdhdGNoZG9nIHRpbWVvdXQgKFZFQ1MgaXMgb25seSBz dXBwb3J0ZWQgaW4gR0VOOSkuIFRoZSBzcGVjaWZpY2F0aW9ucyBlbHVkZQo+IHRvIHRoZSBCQ1Mg ZW5naW5lIGJlaW5nIHN1cHBvcnRlZCBidXQgdGhhdCBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRl ZCBieQo+IHRoaXMgY29tbWl0Lgo+IAo+IE5vdGUgdGhhdCB0aGUgdmFsdWUgdG8gc3RvcCB0aGUg Y291bnRlciBpcyBkaWZmZXJlbnQgYmV0d2VlbiByZW5kZXIgYW5kCj4gbm9uLXJlbmRlciBlbmdp bmVzIGluIEdFTjg7IEdFTjkgb253YXJkcyBpdCdzIHRoZSBzYW1lLgo+IAo+IHYyOiBNb3ZlIGly cSBoYW5kbGVyIHRvIHRhc2tsZXQsIGFybSB3YXRjaGRvZyBmb3IgYSAybmQgdGltZSB0byBjaGVj awo+IGFnYWluc3QgZmFsc2UtcG9zaXRpdmVzLgo+IAo+IHYzOiBEb24ndCB1c2UgaGlnaCBwcmlv cml0eSB0YXNrbGV0LCB1c2UgZW5naW5lX2xhc3Rfc3VibWl0IHdoaWxlCj4gY2hlY2tpbmcgZm9y IGZhbHNlLXBvc2l0aXZlcy4gRnJvbSBHRU45IG9ud2FyZHMsIHRoZSBzdG9wIGNvdW50ZXIgYml0 IGlzCj4gdGhlIHNhbWUgZm9yIGFsbCBlbmdpbmVzLgo+IAo+IHY0OiBSZW1vdmUgdW5uZWNlc3Nh cnkgYnJhY2tldHMsIHVzZSBjdXJyZW50X3NlcW5vIHRvIG1hcmsgdGhlIHJlcXVlc3QKPiBhcyBn dWlsdHkgaW4gdGhlIGhhbmdjaGVjay9jYXB0dXJlIGNvZGUuCj4gCj4gdjU6IFJlYmFzZWQgYWZ0 ZXIgUkVTRVRfRU5HSU5FcyBmbGFnLgo+IAo+IHY2OiBEb24ndCBjYXB0dXJlIGVycm9yIHN0YXRl IGluIGNhc2Ugb2Ygd2F0Y2hkb2cgdGltZW91dC4gVGhlIGNhcHR1cmUKPiBwcm9jZXNzIGlzIHRp bWUgY29uc3VtaW5nIGFuZCB0aGlzIHdpbGwgYWxpZ24gdG8gd2hhdCBoYXBwZW5zIHdoZW4gd2UK PiB1c2UgR3VDIHRvIGhhbmRsZSB0aGUgd2F0Y2hkb2cgdGltZW91dC4gKENocmlzKQo+IAo+IHY3 OiBSZWJhc2UuCj4gCj4gdjg6IFJlYmFzZSwgdXNlIEhaIHRvIHJlc2NoZWR1bGUuCj4gCj4gdjk6 IFJlYmFzZSwgZ2V0IGZvcmNld2FrZSBkb21haW5zIGluIGZ1bmN0aW9uIChubyBsb25nZXIgaW4g ZXhlY2xpc3RzCj4gc3RydWN0KS4KPiAKPiB2MTA6IFJlYmFzZS4KPiAKPiB2MTE6IFJlYmFzZSwK PiAgICAgICByZW1vdmUgZXh0cmEgYnJhY2VzIChUdnJ0a28pLAo+ICAgICAgIGltcGxlbWVudCB3 YXRjaGRvZ190b19jbG9ja19jb3VudHMgaGVscGVyIChUdnJ0a28pLAo+ICAgICAgIE1vdmUgdGFz a2xldF9raWxsKHdhdGNoZG9nX3Rhc2tsZXQpIGluc2lkZSBpbnRlbF9lbmdpbmVzIChUdnJ0a28p LAo+ICAgICAgIFVzZSBhIGdsb2JhbCBoZWFydGJlYXQgc2Vxbm8gaW5zdGVhZCBvZiBlbmdpbmUg c2Vxbm8gKENocmlzKQo+ICAgICAgIE1ha2UgYWxsIGVuZ2luZXMgY2hlY2tzIGFsbCBjbGFzcyBi YXNlZCBjaGVja3MgKFR2cnRrbykKPiAKPiBDYzogQW50b25pbyBBcmdlbnppYW5vIDxhbnRvbmlv LmFyZ2Vuemlhbm9AaW50ZWwuY29tPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3Vs aW5AbGludXguaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1pY2hlbCBUaGllcnJ5IDxtaWNo ZWwudGhpZXJyeUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogQ2FybG9zIFNhbnRhIDxjYXJs b3Muc2FudGFAaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCAgICAgICAgIHwgIDggKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9l cnJvci5oICAgfCAgNCArKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAg ICAgIHwgMTIgKysrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAg ICB8ICA2ICsrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgIHwg IDEgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMgIHwgMTcgKysr KystLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgNjUgKysr KysrKysrKysrKysrKysrKysrKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oIHwgIDcgKysrCj4gICA4IGZpbGVzIGNoYW5nZWQsIDExNCBpbnNlcnRpb25zKCsp LCA2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDYzYTAw OGFlYmZjZC4uMGZjYjJkZjg2OWEyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAg LTMxMjAsNiArMzEyMCwxNCBAQCBpOTE1X2dlbV9jb250ZXh0X2xvb2t1cChzdHJ1Y3QgZHJtX2k5 MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXYsIHUzMiBpZCkKPiAgIAlyZXR1cm4gY3R4Owo+ICAg fQo+ICAgCj4gK3N0YXRpYyBpbmxpbmUgdTMyCj4gK3dhdGNoZG9nX3RvX2Nsb2NrX2NvdW50cyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU2NCB2YWx1ZV9pbl91cykKPiArewo+ ICsJdTY0IHRocmVzaG9sZCA9IDA7Cj4gKwo+ICsJcmV0dXJuIHRocmVzaG9sZDsKPiArfQo+ICsK PiAgIGludCBpOTE1X3BlcmZfb3Blbl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLAo+ICAgCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7Cj4gICBpbnQgaTkxNV9wZXJm X2FkZF9jb25maWdfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmgKPiBpbmRleCBmNDA4MDYwZTA2NjcuLmJk MTgyMWM3M2VjZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9l cnJvci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuaAo+IEBA IC0yMzMsNiArMjMzLDkgQEAgc3RydWN0IGk5MTVfZ3B1X2Vycm9yIHsKPiAgIAkgKiBpOTE1X211 dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgpPykuIEk5MTVfUkVTRVRfQkFDS09GRiBzZXJ2ZXMgYQo+ ICAgCSAqIHNlY29uZGFyeSByb2xlIGluIHByZXZlbnRpbmcgdHdvIGNvbmN1cnJlbnQgZ2xvYmFs IHJlc2V0IGF0dGVtcHRzLgo+ICAgCSAqCj4gKwkgKiAjSTkxNV9SRVNFVF9XQVRDSERPRyAtIFdo ZW4gaHcgZGV0ZWN0cyBhIGhhbmcgYmVmb3JlIHVzLCB3ZSBjYW4gdXNlCj4gKwkgKiBJOTE1X1JF U0VUX1dBVENIRE9HIHRvIHJlcG9ydCB0aGUgaGFuZyBkZXRlY3Rpb24gY2F1c2UgYWNjdXJhdGVs eS4KPiArCSAqCj4gICAJICogI0k5MTVfUkVTRVRfRU5HSU5FW251bV9lbmdpbmVzXSAtIFNpbmNl IHRoZSBkcml2ZXIgZG9lc24ndCBuZWVkIHRvCj4gICAJICogYWNxdWlyZSB0aGUgc3RydWN0X211 dGV4IHRvIHJlc2V0IGFuIGVuZ2luZSwgd2UgbmVlZCBhbiBleHBsaWNpdAo+ICAgCSAqIGZsYWcg dG8gcHJldmVudCB0d28gY29uY3VycmVudCByZXNldCBhdHRlbXB0cyBpbiB0aGUgc2FtZSBlbmdp bmUuCj4gQEAgLTI0OCw2ICsyNTEsNyBAQCBzdHJ1Y3QgaTkxNV9ncHVfZXJyb3Igewo+ICAgI2Rl ZmluZSBJOTE1X1JFU0VUX0JBQ0tPRkYJMAo+ICAgI2RlZmluZSBJOTE1X1JFU0VUX01PREVTRVQJ MQo+ICAgI2RlZmluZSBJOTE1X1JFU0VUX0VOR0lORQkyCj4gKyNkZWZpbmUgSTkxNV9SRVNFVF9X QVRDSERPRwkzCj4gICAjZGVmaW5lIEk5MTVfV0VER0VECQkoQklUU19QRVJfTE9ORyAtIDEpCj4g ICAKPiAgIAkvKiogTnVtYmVyIG9mIHRpbWVzIGFuIGVuZ2luZSBoYXMgYmVlbiByZXNldCAqLwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IGluZGV4IDRiMjNiMmZkMWZhZC4uZTJhMWEwN2IwZjJj IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gQEAgLTE0NTYsNiArMTQ1Niw5IEBAIGdl bjhfY3NfaXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgaWly KQo+ICAgCj4gICAJaWYgKHRhc2tsZXQpCj4gICAJCXRhc2tsZXRfaGlfc2NoZWR1bGUoJmVuZ2lu ZS0+ZXhlY2xpc3RzLnRhc2tsZXQpOwo+ICsKPiArCWlmIChpaXIgJiBHVF9HRU44X1dBVENIRE9H X0lOVEVSUlVQVCkKPiArCQl0YXNrbGV0X3NjaGVkdWxlKCZlbmdpbmUtPmV4ZWNsaXN0cy53YXRj aGRvZ190YXNrbGV0KTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgZ2VuOF9ndF9pcnFfYWNr KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+IEBAIC0zODgzLDE3ICszODg2LDI0IEBA IHN0YXRpYyB2b2lkIGdlbjhfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiAgIAl1MzIgZ3RfaW50ZXJydXB0c1tdID0gewo+ICAgCQlHVF9SRU5E RVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9SQ1NfSVJRX1NISUZUIHwKPiAgIAkJCUdUX0NPTlRF WFRfU1dJVENIX0lOVEVSUlVQVCA8PCBHRU44X1JDU19JUlFfU0hJRlQgfAo+ICsJCQlHVF9HRU44 X1dBVENIRE9HX0lOVEVSUlVQVCA8PCBHRU44X1JDU19JUlFfU0hJRlQgfAo+ICAgCQkJR1RfUkVO REVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfQkNTX0lSUV9TSElGVCB8Cj4gICAJCQlHVF9DT05U RVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9CQ1NfSVJRX1NISUZULAo+ICAgCQlHVF9SRU5E RVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVCB8Cj4gICAJCQlHVF9DT05U RVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVCB8Cj4gKwkJCUdUX0dF TjhfV0FUQ0hET0dfSU5URVJSVVBUIDw8IEdFTjhfVkNTMV9JUlFfU0hJRlQgfAo+ICAgCQkJR1Rf UkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfVkNTMl9JUlFfU0hJRlQgfAo+IC0JCQlHVF9D T05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MyX0lSUV9TSElGVCwKPiArCQkJR1Rf Q09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfVkNTMl9JUlFfU0hJRlQgfAo+ICsJCQlH VF9HRU44X1dBVENIRE9HX0lOVEVSUlVQVCA8PCBHRU44X1ZDUzJfSVJRX1NISUZULAo+ICAgCQkw LAo+ICAgCQlHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WRUNTX0lSUV9TSElGVCB8 Cj4gICAJCQlHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WRUNTX0lSUV9TSElG VAo+ICAgCQl9Owo+ICAgCj4gKwkvKiBWRUNTIHdhdGNoZG9nIGlzIG9ubHkgYXZhaWxhYmxlIGlu IHNrbCsgKi8KPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCj4gKwkJZ3RfaW50ZXJy dXB0c1szXSB8PSBHVF9HRU44X1dBVENIRE9HX0lOVEVSUlVQVDsKPiArCj4gICAJZGV2X3ByaXYt PnBtX2llciA9IDB4MDsKPiAgIAlkZXZfcHJpdi0+cG1faW1yID0gfmRldl9wcml2LT5wbV9pZXI7 Cj4gICAJR0VOOF9JUlFfSU5JVF9ORFgoR1QsIDAsIH5ndF9pbnRlcnJ1cHRzWzBdLCBndF9pbnRl cnJ1cHRzWzBdKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCAxZWNhMTY2ZDk1YmIu LmEwZTEwMWJiY2JjZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC0yMzM1LDYg KzIzMzUsMTEgQEAgZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgewo+ICAgI2RlZmluZSBSSU5HX1NU QVJUKGJhc2UpCV9NTUlPKChiYXNlKSArIDB4MzgpCj4gICAjZGVmaW5lIFJJTkdfQ1RMKGJhc2Up CQlfTU1JTygoYmFzZSkgKyAweDNjKQo+ICAgI2RlZmluZSAgIFJJTkdfQ1RMX1NJWkUoc2l6ZSkJ KChzaXplKSAtIFBBR0VfU0laRSkgLyogaW4gYnl0ZXMgLT4gcGFnZXMgKi8KPiArI2RlZmluZSBS SU5HX0NOVFIoYmFzZSkJCV9NTUlPKChiYXNlKSArIDB4MTc4KQo+ICsjZGVmaW5lICAgR0VOOF9X QVRDSERPR19FTkFCTEUJCTAKPiArI2RlZmluZSAgIEdFTjhfV0FUQ0hET0dfRElTQUJMRQkJMQo+ ICsjZGVmaW5lICAgR0VOOF9YQ1NfV0FUQ0hET0dfRElTQUJMRQkweEZGRkZGRkZGIC8qIEdFTjgg JiBub24tcmVuZGVyIG9ubHkgKi8KPiArI2RlZmluZSBSSU5HX1RIUkVTSChiYXNlKQlfTU1JTygo YmFzZSkgKyAweDE3QykKPiAgICNkZWZpbmUgUklOR19TWU5DXzAoYmFzZSkJX01NSU8oKGJhc2Up ICsgMHg0MCkKPiAgICNkZWZpbmUgUklOR19TWU5DXzEoYmFzZSkJX01NSU8oKGJhc2UpICsgMHg0 NCkKPiAgICNkZWZpbmUgUklOR19TWU5DXzIoYmFzZSkJX01NSU8oKGJhc2UpICsgMHg0OCkKPiBA QCAtMjg5NCw2ICsyODk5LDcgQEAgZW51bSBpOTE1X3Bvd2VyX3dlbGxfaWQgewo+ICAgI2RlZmlu ZSBHVF9CU0RfVVNFUl9JTlRFUlJVUFQJCQkoMSA8PCAxMikKPiAgICNkZWZpbmUgR1RfUkVOREVS X0wzX1BBUklUWV9FUlJPUl9JTlRFUlJVUFRfUzEJKDEgPDwgMTEpIC8qIGhzdys7IHJzdmQgb24g c25iLCBpdmIsIHZsdiAqLwo+ICAgI2RlZmluZSBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQJ CSgxIDw8ICA4KQo+ICsjZGVmaW5lIEdUX0dFTjhfV0FUQ0hET0dfSU5URVJSVVBUCQkoMSA8PCAg NikgLyogZ2VuOCsgKi8KPiAgICNkZWZpbmUgR1RfUkVOREVSX0wzX1BBUklUWV9FUlJPUl9JTlRF UlJVUFQJKDEgPDwgIDUpIC8qICFzbmIgKi8KPiAgICNkZWZpbmUgR1RfUkVOREVSX1BJUEVDVExf Tk9USUZZX0lOVEVSUlVQVAkoMSA8PCAgNCkKPiAgICNkZWZpbmUgR1RfUkVOREVSX0NTX01BU1RF Ul9FUlJPUl9JTlRFUlJVUFQJKDEgPDwgIDMpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5n aW5lX2NzLmMKPiBpbmRleCA3YWU3NTMzNThhNmQuLjc0ZjU2M2QyM2NjOCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gQEAgLTExMDYsNiArMTEwNiw3IEBAIHZv aWQgaW50ZWxfZW5naW5lc19wYXJrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAg CQkvKiBGbHVzaCB0aGUgcmVzaWR1YWwgaXJxIHRhc2tsZXRzIGZpcnN0LiAqLwo+ICAgCQlpbnRl bF9lbmdpbmVfZGlzYXJtX2JyZWFkY3J1bWJzKGVuZ2luZSk7Cj4gICAJCXRhc2tsZXRfa2lsbCgm ZW5naW5lLT5leGVjbGlzdHMudGFza2xldCk7Cj4gKwkJdGFza2xldF9raWxsKCZlbmdpbmUtPmV4 ZWNsaXN0cy53YXRjaGRvZ190YXNrbGV0KTsKPiAgIAo+ICAgCQkvKgo+ICAgCQkgKiBXZSBhcmUg Y29tbWl0dGVkIG5vdyB0byBwYXJraW5nIHRoZSBlbmdpbmVzLCBtYWtlIHN1cmUgdGhlcmUKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYwo+IGluZGV4IDU4YjZmZjg0NTNkYy4u YmMxMGFjYjI0ZDlhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hh bmdjaGVjay5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMK PiBAQCAtMjE4LDcgKzIxOCw4IEBAIHN0YXRpYyB2b2lkIGhhbmdjaGVja19hY2N1bXVsYXRlX3Nh bXBsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gICAKPiAgIHN0YXRpYyB2b2lk IGhhbmdjaGVja19kZWNsYXJlX2hhbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4g ICAJCQkJICAgdW5zaWduZWQgaW50IGh1bmcsCj4gLQkJCQkgICB1bnNpZ25lZCBpbnQgc3R1Y2sp Cj4gKwkJCQkgICB1bnNpZ25lZCBpbnQgc3R1Y2ssCj4gKwkJCQkgICB1bnNpZ25lZCBpbnQgd2F0 Y2hkb2cpCj4gICB7Cj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ICAgCWNo YXIgbXNnWzgwXTsKPiBAQCAtMjMxLDEzICsyMzIsMTYgQEAgc3RhdGljIHZvaWQgaGFuZ2NoZWNr X2RlY2xhcmVfaGFuZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAgIAlpZiAoc3R1 Y2sgIT0gaHVuZykKPiAgIAkJaHVuZyAmPSB+c3R1Y2s7Cj4gICAJbGVuID0gc2NucHJpbnRmKG1z Zywgc2l6ZW9mKG1zZyksCj4gLQkJCSIlcyBvbiAiLCBzdHVjayA9PSBodW5nID8gIm5vIHByb2dy ZXNzIiA6ICJoYW5nIik7Cj4gKwkJCSIlcyBvbiAiLCB3YXRjaGRvZyA/ICJ3YXRjaGRvZyB0aW1l b3V0IiA6Cj4gKwkJCQkgIHN0dWNrID09IGh1bmcgPyAibm8gcHJvZ3Jlc3MiIDogImhhbmciKTsK PiAgIAlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgaTkxNSwgaHVuZywgdG1wKQo+ICAg CQlsZW4gKz0gc2NucHJpbnRmKG1zZyArIGxlbiwgc2l6ZW9mKG1zZykgLSBsZW4sCj4gICAJCQkJ ICIlcywgIiwgZW5naW5lLT5uYW1lKTsKPiAgIAltc2dbbGVuLTJdID0gJ1wwJzsKPiAgIAo+IC0J cmV0dXJuIGk5MTVfaGFuZGxlX2Vycm9yKGk5MTUsIGh1bmcsIEk5MTVfRVJST1JfQ0FQVFVSRSwg IiVzIiwgbXNnKTsKPiArCXJldHVybiBpOTE1X2hhbmRsZV9lcnJvcihpOTE1LCBodW5nLAo+ICsJ CQkJIHdhdGNoZG9nID8gMCA6IEk5MTVfRVJST1JfQ0FQVFVSRSwKPiArCQkJCSAiJXMiLCBtc2cp Owo+ICAgfQo+ICAgCj4gICAvKgo+IEBAIC0yNTUsNyArMjU5LDcgQEAgc3RhdGljIHZvaWQgaTkx NV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gICAJCQkgICAg IGdwdV9lcnJvci5oYW5nY2hlY2tfd29yay53b3JrKTsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmU7Cj4gICAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Cj4gLQl1bnNpZ25lZCBp bnQgaHVuZyA9IDAsIHN0dWNrID0gMCwgd2VkZ2VkID0gMDsKPiArCXVuc2lnbmVkIGludCBodW5n ID0gMCwgc3R1Y2sgPSAwLCB3ZWRnZWQgPSAwLCB3YXRjaGRvZyA9IDA7Cj4gICAKPiAgIAlpZiAo IWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9oYW5nY2hlY2spCj4gICAJCXJldHVybjsKPiBAQCAtMjY2 LDYgKzI3MCw5IEBAIHN0YXRpYyB2b2lkIGk5MTVfaGFuZ2NoZWNrX2VsYXBzZWQoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQo+ICAgCWlmIChpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKCZkZXZfcHJp di0+Z3B1X2Vycm9yKSkKPiAgIAkJcmV0dXJuOwo+ICAgCj4gKwlpZiAodGVzdF9hbmRfY2xlYXJf Yml0KEk5MTVfUkVTRVRfV0FUQ0hET0csICZkZXZfcHJpdi0+Z3B1X2Vycm9yLmZsYWdzKSkKPiAr CQl3YXRjaGRvZyA9IDE7Cj4gKwo+ICAgCS8qIEFzIGVuYWJsaW5nIHRoZSBHUFUgcmVxdWlyZXMg ZmFpcmx5IGV4dGVuc2l2ZSBtbWlvIGFjY2VzcywKPiAgIAkgKiBwZXJpb2RpY2FsbHkgYXJtIHRo ZSBtbWlvIGNoZWNrZXIgdG8gc2VlIGlmIHdlIGFyZSB0cmlnZ2VyaW5nCj4gICAJICogYW55IGlu dmFsaWQgYWNjZXNzLgo+IEBAIC0zMTEsNyArMzE4LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9oYW5n Y2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gICAJfQo+ICAgCj4gICAJ aWYgKGh1bmcpCj4gLQkJaGFuZ2NoZWNrX2RlY2xhcmVfaGFuZyhkZXZfcHJpdiwgaHVuZywgc3R1 Y2spOwo+ICsJCWhhbmdjaGVja19kZWNsYXJlX2hhbmcoZGV2X3ByaXYsIGh1bmcsIHN0dWNrLCB3 YXRjaGRvZyk7Cj4gICAKPiAgIAkvKiBSZXNldCB0aW1lciBpbiBjYXNlIEdQVSBoYW5ncyB3aXRo b3V0IGFub3RoZXIgcmVxdWVzdCBiZWluZyBhZGRlZCAqLwo+ICAgCWk5MTVfcXVldWVfaGFuZ2No ZWNrKGRldl9wcml2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IGluZGV4IDljYTdkYzdh NmZhNS4uYzM4YjIzOWFiMzllIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAt MjM1Miw2ICsyMzUyLDUzIEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2ZsdXNoX3JlbmRlcihzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ICAgCXJldHVybiAwOwo+ICAgfQo+ICAgCj4gKy8q IEZyb20gR0VOOSBvbndhcmRzLCBhbGwgZW5naW5lcyB1c2UgdGhlIHNhbWUgUklOR19DTlRSIGZv cm1hdCAqLwo+ICtzdGF0aWMgaW5saW5lIHUzMiBnZXRfd2F0Y2hkb2dfZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCgpJJ2QgbGV0IHRoZSBjb21waWxlciBkZWNpZGUgb24g dGhlIGlubGluZSBvciBub3QuCgo+ICt7Cj4gKwlpZiAoZW5naW5lLT5pZCA9PSBSQ1MgfHwgSU5U RUxfR0VOKGVuZ2luZS0+aTkxNSkgPj0gOSkKPiArCQlyZXR1cm4gR0VOOF9XQVRDSERPR19ESVNB QkxFOwo+ICsJZWxzZQo+ICsJCXJldHVybiBHRU44X1hDU19XQVRDSERPR19ESVNBQkxFOwo+ICt9 Cj4gKwo+ICsjZGVmaW5lIEdFTjhfV0FUQ0hET0dfMTAwMFVTKGRldl9wcml2KSB3YXRjaGRvZ190 b19jbG9ja19jb3VudHMoZGV2X3ByaXYsIDEwMDApCgpOb3Qgc3VyZSBtYWNybyBpcyB1c2VmdWwu Cgo+ICtzdGF0aWMgdm9pZCBnZW44X3dhdGNoZG9nX2lycV9oYW5kbGVyKHVuc2lnbmVkIGxvbmcg ZGF0YSkKCmdlbjhfd2F0Y2hkb2dfdGFza2xldCBJIGd1ZXNzLgoKPiArewo+ICsJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lID0gKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKilkYXRhOwo+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1Owo+ICsJ dW5zaWduZWQgaW50IGh1bmcgPSAwOwo+ICsJdTMyIGN1cnJlbnRfc2Vxbm89MDsKCkNvZGluZyBz dHlsZS4KCj4gKwljaGFyIG1zZ1s4MF07Cj4gKwl1bnNpZ25lZCBpbnQgdG1wOwo+ICsJaW50IGxl bjsKPiArCj4gKwkvKiBTdG9wIHRoZSBjb3VudGVyIHRvIHByZXZlbnQgZnVydGhlciB0aW1lb3V0 IGludGVycnVwdHMgKi8KPiArCUk5MTVfV1JJVEVfRlcoUklOR19DTlRSKGVuZ2luZS0+bW1pb19i YXNlKSwgZ2V0X3dhdGNoZG9nX2Rpc2FibGUoZW5naW5lKSk7CgpUaGVzZSByZWdpc3RlcnMgZG8g bm90IG5lZWQgZm9yY2V3YWtlPwoKPiArCj4gKwkvKiBSZWFkIHRoZSBoZWFydGJlYXQgc2Vxbm8g b25jZSBhZ2FpbiB0byBjaGVjayBpZiB3ZSBhcmUgc3R1Y2s/ICovCj4gKwljdXJyZW50X3NlcW5v ID0gaW50ZWxfZW5naW5lX2dldF9oYW5nY2hlY2tfc2Vxbm8oZW5naW5lKTsKPiArCj4gKyAgICBp ZiAoY3VycmVudF9zZXFubyA9PSBlbmdpbmUtPmN1cnJlbnRfc2Vxbm8pIHsKPiArCQlodW5nIHw9 IGVuZ2luZS0+bWFzazsKPiArCj4gKwkJbGVuID0gc2NucHJpbnRmKG1zZywgc2l6ZW9mKG1zZyks ICIlcyBvbiAiLCAid2F0Y2hkb2cgdGltZW91dCIpOwo+ICsJCWZvcl9lYWNoX2VuZ2luZV9tYXNr ZWQoZW5naW5lLCBkZXZfcHJpdiwgaHVuZywgdG1wKQo+ICsJCQlsZW4gKz0gc2NucHJpbnRmKG1z ZyArIGxlbiwgc2l6ZW9mKG1zZykgLSBsZW4sCj4gKwkJCQkJICIlcywgIiwgZW5naW5lLT5uYW1l KTsKPiArCQltc2dbbGVuLTJdID0gJ1wwJzsKCkNvcHkvcGFzdGUgZnJvbSBpbnRlbF9oYW5nY2hl Y2suYyA/IE1vdmluZyB0byBjb21tb24gaGVscGVyIHdvdWxkIGJlIGdvb2QuCgo+ICsKPiArCQlp OTE1X2hhbmRsZV9lcnJvcihkZXZfcHJpdiwgaHVuZywgMCwgIiVzIiwgbXNnKTsKPiArCj4gKwkJ LyogUmVzZXQgdGltZXIgaW4gY2FzZSBHUFUgaGFuZ3Mgd2l0aG91dCBhbm90aGVyIHJlcXVlc3Qg YmVpbmcgYWRkZWQgKi8KPiArCQlpOTE1X3F1ZXVlX2hhbmdjaGVjayhkZXZfcHJpdik7CgpNaXMt aW5kZW50ZWQgYmxvY2suCgo+ICsgICAgfWVsc2V7CgpDb2Rpbmcgc3R5bGUuCgo+ICsJCS8qIFJl LXN0YXJ0IHRoZSBjb3VudGVyLCBpZiByZWFsbHkgaHVuZywgaXQgd2lsbCBleHBpcmUgYWdhaW4g Ki8KPiArCQlJOTE1X1dSSVRFX0ZXKFJJTkdfVEhSRVNIKGVuZ2luZS0+bW1pb19iYXNlKSwKPiAr CQkJICAgICAgR0VOOF9XQVRDSERPR18xMDAwVVMoZGV2X3ByaXYpKTsKPiArCQlJOTE1X1dSSVRF X0ZXKFJJTkdfQ05UUihlbmdpbmUtPm1taW9fYmFzZSksIEdFTjhfV0FUQ0hET0dfRU5BQkxFKTsK PiArICAgIH0KPiArfQo+ICsKPiAgIC8qCj4gICAgKiBSZXNlcnZlIHNwYWNlIGZvciAyIE5PT1Bz IGF0IHRoZSBlbmQgb2YgZWFjaCByZXF1ZXN0IHRvIGJlCj4gICAgKiB1c2VkIGFzIGEgd29ya2Fy b3VuZCBmb3Igbm90IGJlaW5nIGFsbG93ZWQgdG8gZG8gbGl0ZQo+IEBAIC0yNTM5LDYgKzI1ODYs MjEgQEAgbG9naWNhbF9yaW5nX2RlZmF1bHRfaXJxcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCj4gICAKPiAgIAllbmdpbmUtPmlycV9lbmFibGVfbWFzayA9IEdUX1JFTkRFUl9VU0VS X0lOVEVSUlVQVCA8PCBzaGlmdDsKPiAgIAllbmdpbmUtPmlycV9rZWVwX21hc2sgPSBHVF9DT05U RVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgc2hpZnQ7Cj4gKwo+ICsJc3dpdGNoIChlbmdpbmUtPmNs YXNzKSB7Cj4gKwlkZWZhdWx0Ogo+ICsJCS8qIEJDUyBlbmdpbmUgZG9lcyBub3Qgc3VwcG9ydCBo dyB3YXRjaGRvZyAqLwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBSRU5ERVJfQ0xBU1M6Cj4gKwljYXNl IFZJREVPX0RFQ09ERV9DTEFTUzoKPiArCQllbmdpbmUtPmlycV9rZWVwX21hc2sgfD0gR1RfR0VO OF9XQVRDSERPR19JTlRFUlJVUFQgPDwgc2hpZnQ7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIFZJREVP X0VOSEFOQ0VNRU5UX0NMQVNTOgo+ICsJCWlmIChJTlRFTF9HRU4oZW5naW5lLT5pOTE1KSA+PSA5 KQo+ICsJCQllbmdpbmUtPmlycV9rZWVwX21hc2sgfD0KPiArCQkJCUdUX0dFTjhfV0FUQ0hET0df SU5URVJSVVBUIDw8IHNoaWZ0Owo+ICsJCWJyZWFrOwo+ICsJfQo+ICAgfQo+ICAgCj4gICBzdGF0 aWMgaW50Cj4gQEAgLTI1NTYsNiArMjYxOCw5IEBAIGxvZ2ljYWxfcmluZ19zZXR1cChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJdGFza2xldF9pbml0KCZlbmdpbmUtPmV4ZWNs aXN0cy50YXNrbGV0LAo+ICAgCQkgICAgIGV4ZWNsaXN0c19zdWJtaXNzaW9uX3Rhc2tsZXQsICh1 bnNpZ25lZCBsb25nKWVuZ2luZSk7Cj4gICAKPiArCXRhc2tsZXRfaW5pdCgmZW5naW5lLT5leGVj bGlzdHMud2F0Y2hkb2dfdGFza2xldCwKPiArCQkgICAgIGdlbjhfd2F0Y2hkb2dfaXJxX2hhbmRs ZXIsICh1bnNpZ25lZCBsb25nKWVuZ2luZSk7Cj4gKwo+ICAgCWxvZ2ljYWxfcmluZ19kZWZhdWx0 X3ZmdW5jcyhlbmdpbmUpOwo+ICAgCWxvZ2ljYWxfcmluZ19kZWZhdWx0X2lycXMoZW5naW5lKTsK PiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRleCA0NjUw OTRlMzhkMzIuLjE3MjUwYmEwMjQ2ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmgKPiBAQCAtMTIyLDYgKzEyMiw3IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfaGFu Z2NoZWNrIHsKPiAgIAl1NjQgYWN0aGQ7Cj4gICAJdTMyIGxhc3Rfc2Vxbm87Cj4gICAJdTMyIG5l eHRfc2Vxbm87Cj4gKwl1MzIgd2F0Y2hkb2c7CgpMb29rcyB1bnVzZWQuCgo+ICAgCXVuc2lnbmVk IGxvbmcgYWN0aW9uX3RpbWVzdGFtcDsKPiAgIAlzdHJ1Y3QgaW50ZWxfaW5zdGRvbmUgaW5zdGRv bmU7Cj4gICB9Owo+IEBAIC0yMjIsNiArMjIzLDExIEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhl Y2xpc3RzIHsKPiAgIAkgKi8KPiAgIAlzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgdGFza2xldDsKPiAg IAo+ICsJLyoqCj4gKwkgKiBAd2F0Y2hkb2dfdGFza2xldDogc3RvcCBjb3VudGVyIGFuZCByZS1z Y2hlZHVsZSBoYW5nY2hlY2tfd29yayBhc2FwCj4gKwkgKi8KPiArCXN0cnVjdCB0YXNrbGV0X3N0 cnVjdCB3YXRjaGRvZ190YXNrbGV0Owo+ICsKPiAgIAkvKioKPiAgIAkgKiBAZGVmYXVsdF9wcmlv bGlzdDogcHJpb3JpdHkgbGlzdCBmb3IgSTkxNV9QUklPUklUWV9OT1JNQUwKPiAgIAkgKi8KPiBA QCAtMzUzLDYgKzM1OSw3IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mgewo+ICAgCXVuc2lnbmVk IGludCBod19pZDsKPiAgIAl1bnNpZ25lZCBpbnQgZ3VjX2lkOwo+ICAgCXVuc2lnbmVkIGxvbmcg bWFzazsKPiArCXUzMiBjdXJyZW50X3NlcW5vOwoKSSBkb24ndCBzZWUgd2hlcmUgdGhpcyBpcyBz ZXQgaW4gdGhpcyBwYXRjaD8KCkFuZCBJJ2QgcmVjb21tZW5kIGNhbGxpbmcgaXQgd2F0Y2hkb2df bGFzdF9zZXFubyBvciBzb21ldGhpbmcgYWxvbmcgCnRob3NlIGxpbmVzIHNvIGl0IGlzIG9idmlv dXMgaXQgaXMgbm90IGEgZnVuZGFtZW50YWwgcGFydCBvZiB0aGUgZW5naW5lLgoKPiAgIAo+ICAg CXU4IHVhYmlfY2xhc3M7Cj4gICAKPiAKClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4