From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: drm/i915: Watchdog timeout: IRQ handler for gen8+ Date: Mon, 7 Jan 2019 11:58:13 +0000 Message-ID: References: <20190105024001.37629-1-carlos.santa@intel.com> <20190105024001.37629-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 mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 71F0B89581 for ; Mon, 7 Jan 2019 11:58:16 +0000 (UTC) In-Reply-To: <20190105024001.37629-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 CkhpLAoKVGhpcyBzZXJpZXMgaGFzIG5vdCBiZWVuIHJlY29nbml6ZWQgYnkgUGF0Y2h3b3JrIGFz IHN1Y2gsIG5vciBhcmUgdGhlIApwYXRjaGVzIG51bWJlcmVkLiBIYXZlIHlvdSB1c2VkIGdpdCBm b3JtYXQtcGF0Y2ggLTxOPiAtLWNvdmVyLWxldHRlciBhbmQgCmdpdCBzZW5kLWVtYWlsIHRvIHNl bmQgaXQgb3V0PwoKUmVzdCBpbmxpbmUuCgpPbiAwNS8wMS8yMDE5IDAyOjM5LCBDYXJsb3MgU2Fu dGEgd3JvdGU6Cj4gRnJvbTogTWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGludGVsLmNv bT4KPiAKPiAqKiogR2VuZXJhbCAqKioKPiAKPiBXYXRjaGRvZyB0aW1lb3V0IChvciAibWVkaWEg ZW5naW5lIHJlc2V0IikgaXMgYSBmZWF0dXJlIHRoYXQgYWxsb3dzCj4gdXNlcmxhbmQgYXBwbGlj YXRpb25zIHRvIGVuYWJsZSBoYW5nIGRldGVjdGlvbiBvbiBpbmRpdmlkdWFsIGJhdGNoIGJ1ZmZl cnMuCj4gVGhlIGRldGVjdGlvbiBtZWNoYW5pc20gaXRzZWxmIGlzIG1vc3RseSBib3VuZCB0byB0 aGUgaGFyZHdhcmUgYW5kIHRoZSBvbmx5Cj4gdGhpbmcgdGhhdCB0aGUgZHJpdmVyIG5lZWRzIHRv IGRvIHRvIHN1cHBvcnQgdGhpcyBmb3JtIG9mIGhhbmcgZGV0ZWN0aW9uCj4gaXMgdG8gaW1wbGVt ZW50IHRoZSBpbnRlcnJ1cHQgaGFuZGxpbmcgc3VwcG9ydCBhcyB3ZWxsIGFzIHdhdGNoZG9nIGNv bW1hbmQKPiBlbWlzc2lvbiBiZWZvcmUgYW5kIGFmdGVyIHRoZSBlbWl0dGVkIGJhdGNoIGJ1ZmZl ciBzdGFydCBpbnN0cnVjdGlvbiBpbiB0aGUKPiByaW5nIGJ1ZmZlci4KPiAKPiBUaGUgcHJpbmNp cGxlIG9mIHRoZSBoYW5nIGRldGVjdGlvbiBtZWNoYW5pc20gaXMgYXMgZm9sbG93czoKPiAKPiAx LiBPbmNlIHRoZSBkZWNpc2lvbiBoYXMgYmVlbiBtYWRlIHRvIGVuYWJsZSB3YXRjaGRvZyB0aW1l b3V0IGZvciBhCj4gcGFydGljdWxhciBiYXRjaCBidWZmZXIgYW5kIHRoZSBkcml2ZXIgaXMgaW4g dGhlIHByb2Nlc3Mgb2YgZW1pdHRpbmcgdGhlCj4gYmF0Y2ggYnVmZmVyIHN0YXJ0IGluc3RydWN0 aW9uIGludG8gdGhlIHJpbmcgYnVmZmVyIGl0IGFsc28gZW1pdHMgYQo+IHdhdGNoZG9nIHRpbWVy IHN0YXJ0IGluc3RydWN0aW9uIGJlZm9yZSBhbmQgYSB3YXRjaGRvZyB0aW1lciBjYW5jZWxsYXRp b24KPiBpbnN0cnVjdGlvbiBhZnRlciB0aGUgYmF0Y2ggYnVmZmVyIHN0YXJ0IGluc3RydWN0aW9u IGluIHRoZSByaW5nIGJ1ZmZlci4KPiAKPiAyLiBPbmNlIHRoZSBHUFUgZXhlY3V0aW9uIHJlYWNo ZXMgdGhlIHdhdGNoZG9nIHRpbWVyIHN0YXJ0IGluc3RydWN0aW9uCj4gdGhlIGhhcmR3YXJlIHdh dGNoZG9nIGNvdW50ZXIgaXMgc3RhcnRlZCBieSB0aGUgaGFyZHdhcmUuIFRoZSBjb3VudGVyCj4g a2VlcHMgY291bnRpbmcgdW50aWwgZWl0aGVyIHJlYWNoaW5nIGEgcHJldmlvdXNseSBjb25maWd1 cmVkIHRocmVzaG9sZAo+IHZhbHVlIG9yIHRoZSB0aW1lciBjYW5jZWxsYXRpb24gaW5zdHJ1Y3Rp b24gaXMgZXhlY3V0ZWQuCj4gCj4gMmEuIElmIHRoZSBjb3VudGVyIHJlYWNoZXMgdGhlIHRocmVz aG9sZCB2YWx1ZSB0aGUgaGFyZHdhcmUgZmlyZXMgYQo+IHdhdGNoZG9nIGludGVycnVwdCB0aGF0 IGlzIHBpY2tlZCB1cCBieSB0aGUgd2F0Y2hkb2cgaW50ZXJydXB0IGhhbmRsZXIuCj4gVGhpcyBt ZWFucyB0aGF0IGEgaGFuZyBoYXMgYmVlbiBkZXRlY3RlZCBhbmQgdGhlIGRyaXZlciBuZWVkcyB0 byBkZWFsIHdpdGgKPiBpdCB0aGUgc2FtZSB3YXkgaXQgd291bGQgZGVhbCB3aXRoIGEgZW5naW5l IGhhbmcgZGV0ZWN0ZWQgYnkgdGhlIHBlcmlvZGljCj4gaGFuZyBjaGVja2VyLiBUaGUgb25seSBk aWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBpcyB0aGF0IHdlIGFscmVhZHkgYmxhbWVkCj4gdGhl IGFjdGl2ZSByZXF1ZXN0ICh0byBlbnN1cmUgYW4gZW5naW5lIHJlc2V0KS4KCldoYXQgaGFwcGVu cyBpZiB0aGUgd2F0Y2hkb2cgZmlyZXMgYnV0IHRoZSAiZ3VpbHR5IiByZXF1ZXN0IGNvbXBsZXRl cyAKYmVmb3JlIHRoZSBpbnRlcnJ1cHQgaGFzIGJlZW4gZGVsaXZlcmVkLCBvciBhY3RlZCB1cG9u PyBXb3VsZCB0aGF0IG1lYW4gCmFuIGlubm9jZW50IHJlcXVlc3QgY291bGQgYmUgYmxhbWVkIGZv ciB0aGUgdGltZW91dD8gTWF5YmUgdGhlIGFuc3dlciAKY29tZXMgbGF0ZXIgaW4gdGhlIHBhdGNo L3Nlcmllcy4KCj4gCj4gMmIuIElmIHRoZSBiYXRjaCBidWZmZXIgY29tcGxldGVzIGFuZCB0aGUg ZXhlY3V0aW9uIHJlYWNoZXMgdGhlIHdhdGNoZG9nCj4gY2FuY2VsbGF0aW9uIGluc3RydWN0aW9u IGJlZm9yZSB0aGUgd2F0Y2hkb2cgY291bnRlciByZWFjaGVzIGl0cwo+IHRocmVzaG9sZCB2YWx1 ZSB0aGUgd2F0Y2hkb2cgaXMgY2FuY2VsbGVkIGFuZCBub3RoaW5nIG1vcmUgY29tZXMgb2YgaXQu Cj4gTm8gaGFuZyBpcyBkZXRlY3RlZC4KPiAKPiBOb3RlIGFib3V0IGZ1dHVyZSBpbnRlcmFjdGlv biB3aXRoIHByZWVtcHRpb246IFByZWVtcHRpb24gY291bGQgaGFwcGVuCj4gaW4gYSBjb21tYW5k IHNlcXVlbmNlIHByaW9yIHRvIHdhdGNoZG9nIGNvdW50ZXIgZ2V0dGluZyBkaXNhYmxlZCwKPiBy ZXN1bHRpbmcgaW4gd2F0Y2hkb2cgYmVpbmcgdHJpZ2dlcmVkIGZvbGxvd2luZyBwcmVlbXB0aW9u IChlLmcuIHdoZW4KPiB3YXRjaGRvZyBoYWQgYmVlbiBlbmFibGVkIGluIHRoZSBsb3cgcHJpb3Jp dHkgYmF0Y2gpLiBUaGUgZHJpdmVyIHdpbGwKPiBuZWVkIHRvIGV4cGxpY2l0bHkgZGlzYWJsZSB0 aGUgd2F0Y2hkb2cgY291bnRlciBhcyBwYXJ0IG9mIHRoZQo+IHByZWVtcHRpb24gc2VxdWVuY2Uu CgpEb2VzIHRoZSBzZXJpZXMgdGFrZSBjYXJlIG9mIHByZWVtcHRpb24/Cgo+IAo+ICoqKiBUaGlz IHBhdGNoIGludHJvZHVjZXM6ICoqKgo+IAo+IDEuIElSUSBoYW5kbGVyIGNvZGUgZm9yIHdhdGNo ZG9nIHRpbWVvdXQgYWxsb3dpbmcgZGlyZWN0IGhhbmcgcmVjb3ZlcnkKPiBiYXNlZCBvbiBoYXJk d2FyZS1kcml2ZW4gaGFuZyBkZXRlY3Rpb24sIHdoaWNoIHRoZW4gaW50ZWdyYXRlcyBkaXJlY3Rs eQo+IHdpdGggdGhlIGhhbmcgcmVjb3ZlcnkgcGF0aC4gVGhpcyBpcyBpbmRlcGVuZGVudCBvZiBo YXZpbmcgcGVyLWVuZ2luZSByZXNldAo+IG9yIGp1c3QgZnVsbCBncHUgcmVzZXQuCj4gCj4gMi4g V2F0Y2hkb2cgc3BlY2lmaWMgcmVnaXN0ZXIgaW5mb3JtYXRpb24uCj4gCj4gQ3VycmVudGx5IHRo ZSByZW5kZXIgZW5naW5lIGFuZCBhbGwgYXZhaWxhYmxlIG1lZGlhIGVuZ2luZXMgc3VwcG9ydAo+ IHdhdGNoZG9nIHRpbWVvdXQgKFZFQ1MgaXMgb25seSBzdXBwb3J0ZWQgaW4gR0VOOSkuIFRoZSBz cGVjaWZpY2F0aW9ucyBlbHVkZQo+IHRvIHRoZSBCQ1MgZW5naW5lIGJlaW5nIHN1cHBvcnRlZCBi dXQgdGhhdCBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBieQo+IHRoaXMgY29tbWl0Lgo+IAo+ IE5vdGUgdGhhdCB0aGUgdmFsdWUgdG8gc3RvcCB0aGUgY291bnRlciBpcyBkaWZmZXJlbnQgYmV0 d2VlbiByZW5kZXIgYW5kCj4gbm9uLXJlbmRlciBlbmdpbmVzIGluIEdFTjg7IEdFTjkgb253YXJk cyBpdCdzIHRoZSBzYW1lLgo+IAo+IHYyOiBNb3ZlIGlycSBoYW5kbGVyIHRvIHRhc2tsZXQsIGFy bSB3YXRjaGRvZyBmb3IgYSAybmQgdGltZSB0byBjaGVjawo+IGFnYWluc3QgZmFsc2UtcG9zaXRp dmVzLgo+IAo+IHYzOiBEb24ndCB1c2UgaGlnaCBwcmlvcml0eSB0YXNrbGV0LCB1c2UgZW5naW5l X2xhc3Rfc3VibWl0IHdoaWxlCj4gY2hlY2tpbmcgZm9yIGZhbHNlLXBvc2l0aXZlcy4gRnJvbSBH RU45IG9ud2FyZHMsIHRoZSBzdG9wIGNvdW50ZXIgYml0IGlzCj4gdGhlIHNhbWUgZm9yIGFsbCBl bmdpbmVzLgo+IAo+IHY0OiBSZW1vdmUgdW5uZWNlc3NhcnkgYnJhY2tldHMsIHVzZSBjdXJyZW50 X3NlcW5vIHRvIG1hcmsgdGhlIHJlcXVlc3QKPiBhcyBndWlsdHkgaW4gdGhlIGhhbmdjaGVjay9j YXB0dXJlIGNvZGUuCj4gCj4gdjU6IFJlYmFzZWQgYWZ0ZXIgUkVTRVRfRU5HSU5FcyBmbGFnLgo+ IAo+IHY2OiBEb24ndCBjYXB0dXJlIGVycm9yIHN0YXRlIGluIGNhc2Ugb2Ygd2F0Y2hkb2cgdGlt ZW91dC4gVGhlIGNhcHR1cmUKPiBwcm9jZXNzIGlzIHRpbWUgY29uc3VtaW5nIGFuZCB0aGlzIHdp bGwgYWxpZ24gdG8gd2hhdCBoYXBwZW5zIHdoZW4gd2UKPiB1c2UgR3VDIHRvIGhhbmRsZSB0aGUg d2F0Y2hkb2cgdGltZW91dC4gKENocmlzKQo+IAo+IHY3OiBSZWJhc2UuCj4gCj4gdjg6IFJlYmFz ZSwgdXNlIEhaIHRvIHJlc2NoZWR1bGUuCj4gCj4gdjk6IFJlYmFzZSwgZ2V0IGZvcmNld2FrZSBk b21haW5zIGluIGZ1bmN0aW9uIChubyBsb25nZXIgaW4gZXhlY2xpc3RzCj4gc3RydWN0KS4KPiAK PiB2MTA6IFJlYmFzZS4KPiAKPiBDYzogQW50b25pbyBBcmdlbnppYW5vIDxhbnRvbmlvLmFyZ2Vu emlhbm9AaW50ZWwuY29tPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AbGlu dXguaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1pY2hlbCBUaGllcnJ5IDxtaWNoZWwudGhp ZXJyeUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogQ2FybG9zIFNhbnRhIDxjYXJsb3Muc2Fu dGFAaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJy b3IuaCAgIHwgIDQgKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAg ICB8IDE0ICsrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAgICB8 ICA2ICsrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYyAgfCAxNyAr KystLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgODYgKysr KysrKysrKysrKysrKysrKysrKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oIHwgIDYgKysKPiAgIDYgZmlsZXMgY2hhbmdlZCwgMTI2IGluc2VydGlvbnMoKyks IDcgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3B1X2Vycm9yLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5oCj4g aW5kZXggNmQ5ZjQ1NDY4YWMxLi43MTMwNzg2YWE1YjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3B1X2Vycm9yLmgKPiBAQCAtMjU2LDYgKzI1Niw5IEBAIHN0cnVjdCBpOTE1X2dwdV9l cnJvciB7Cj4gICAJICogaW5zcGVjdCB0aGUgYml0IGFuZCBkbyB0aGUgcmVzZXQgZGlyZWN0bHks IG90aGVyd2lzZSB0aGUgd29ya2VyCj4gICAJICogd2FpdHMgZm9yIHRoZSBzdHJ1Y3RfbXV0ZXgu Cj4gICAJICoKPiArCSAqICNJOTE1X1JFU0VUX1dBVENIRE9HIC0gV2hlbiBodyBkZXRlY3RzIGEg aGFuZyBiZWZvcmUgdXMsIHdlIGNhbiB1c2UKPiArCSAqIEk5MTVfUkVTRVRfV0FUQ0hET0cgdG8g cmVwb3J0IHRoZSBoYW5nIGRldGVjdGlvbiBjYXVzZSBhY2N1cmF0ZWx5Lgo+ICsJICoKPiAgIAkg KiAjSTkxNV9SRVNFVF9FTkdJTkVbbnVtX2VuZ2luZXNdIC0gU2luY2UgdGhlIGRyaXZlciBkb2Vz bid0IG5lZWQgdG8KPiAgIAkgKiBhY3F1aXJlIHRoZSBzdHJ1Y3RfbXV0ZXggdG8gcmVzZXQgYW4g ZW5naW5lLCB3ZSBuZWVkIGFuIGV4cGxpY2l0Cj4gICAJICogZmxhZyB0byBwcmV2ZW50IHR3byBj b25jdXJyZW50IHJlc2V0IGF0dGVtcHRzIGluIHRoZSBzYW1lIGVuZ2luZS4KPiBAQCAtMjcxLDYg KzI3NCw3IEBAIHN0cnVjdCBpOTE1X2dwdV9lcnJvciB7Cj4gICAjZGVmaW5lIEk5MTVfUkVTRVRf QkFDS09GRgkwCj4gICAjZGVmaW5lIEk5MTVfUkVTRVRfSEFORE9GRgkxCj4gICAjZGVmaW5lIEk5 MTVfUkVTRVRfTU9ERVNFVAkyCj4gKyNkZWZpbmUgSTkxNV9SRVNFVF9XQVRDSERPRwkzCj4gICAj ZGVmaW5lIEk5MTVfV0VER0VECQkoQklUU19QRVJfTE9ORyAtIDEpCj4gICAjZGVmaW5lIEk5MTVf UkVTRVRfRU5HSU5FCShJOTE1X1dFREdFRCAtIEk5MTVfTlVNX0VOR0lORVMpCj4gICAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfaXJxLmMKPiBpbmRleCBmYmIwOTRlY2Y2YzkuLjg1OWJiYWRiNzUyZiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBAIC0xNDk4LDYgKzE0OTgsOSBAQCBnZW44X2Nz X2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyIGlpcikKPiAg IAo+ICAgCWlmICh0YXNrbGV0KQo+ICAgCQl0YXNrbGV0X2hpX3NjaGVkdWxlKCZlbmdpbmUtPmV4 ZWNsaXN0cy50YXNrbGV0KTsKPiArCj4gKwlpZiAoaWlyICYgKEdUX0dFTjhfV0FUQ0hET0dfSU5U RVJSVVBUKSkKCkJyYWNlcyBhcmUgbm90IG5lZWRlZC4KCj4gKwkJdGFza2xldF9zY2hlZHVsZSgm ZW5naW5lLT5leGVjbGlzdHMud2F0Y2hkb2dfdGFza2xldCk7Cj4gICB9Cj4gICAKPiAgIHN0YXRp YyB2b2lkIGdlbjhfZ3RfaXJxX2FjayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiBA QCAtMzMyOSw3ICszMzMyLDcgQEAgdm9pZCBpOTE1X2hhbmRsZV9lcnJvcihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJaWYgKGludGVsX2hhc19yZXNldF9lbmdpbmUoZGV2 X3ByaXYpICYmCj4gICAJICAgICFpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKCZkZXZfcHJpdi0+Z3B1 X2Vycm9yKSkgewo+ICAgCQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZGV2X3ByaXYs IGVuZ2luZV9tYXNrLCB0bXApIHsKPiAtCQkJQlVJTERfQlVHX09OKEk5MTVfUkVTRVRfTU9ERVNF VCA+PSBJOTE1X1JFU0VUX0VOR0lORSk7Cj4gKwkJCUJVSUxEX0JVR19PTihJOTE1X1JFU0VUX1dB VENIRE9HID49IEk5MTVfUkVTRVRfRU5HSU5FKTsKPiAgIAkJCWlmICh0ZXN0X2FuZF9zZXRfYml0 KEk5MTVfUkVTRVRfRU5HSU5FICsgZW5naW5lLT5pZCwKPiAgIAkJCQkJICAgICAmZGV2X3ByaXYt PmdwdV9lcnJvci5mbGFncykpCj4gICAJCQkJY29udGludWU7Cj4gQEAgLTQxNjIsMTIgKzQxNjUs MTUgQEAgc3RhdGljIHZvaWQgZ2VuOF9ndF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCXVpbnQzMl90IGd0X2ludGVycnVwdHNbXSA9IHsKPiAg IAkJR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfUkNTX0lSUV9TSElGVCB8Cj4gICAJ CQlHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9SQ1NfSVJRX1NISUZUIHwKPiAr CQkJR1RfR0VOOF9XQVRDSERPR19JTlRFUlJVUFQgPDwgR0VOOF9SQ1NfSVJRX1NISUZUIHwKPiAg IAkJCUdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44X0JDU19JUlFfU0hJRlQgfAo+ICAg CQkJR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfQkNTX0lSUV9TSElGVCwKPiAg IAkJR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfVkNTMV9JUlFfU0hJRlQgfAo+ICAg CQkJR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfVkNTMV9JUlFfU0hJRlQgfAo+ ICsJCQlHVF9HRU44X1dBVENIRE9HX0lOVEVSUlVQVCA8PCBHRU44X1ZDUzFfSVJRX1NISUZUIHwK PiAgIAkJCUdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44X1ZDUzJfSVJRX1NISUZUIHwK PiAtCQkJR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfVkNTMl9JUlFfU0hJRlQs Cj4gKwkJCUdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVCA8PCBHRU44X1ZDUzJfSVJRX1NISUZU IHwKPiArCQkJR1RfR0VOOF9XQVRDSERPR19JTlRFUlJVUFQgPDwgR0VOOF9WQ1MyX0lSUV9TSElG VCwKPiAgIAkJMCwKPiAgIAkJR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfVkVDU19J UlFfU0hJRlQgfAo+ICAgCQkJR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfVkVD U19JUlFfU0hJRlQKPiBAQCAtNDE3Niw2ICs0MTgyLDEwIEBAIHN0YXRpYyB2b2lkIGdlbjhfZ3Rf aXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAlp ZiAoSEFTX0wzX0RQRihkZXZfcHJpdikpCj4gICAJCWd0X2ludGVycnVwdHNbMF0gfD0gR1RfUkVO REVSX0wzX1BBUklUWV9FUlJPUl9JTlRFUlJVUFQ7Cj4gICAKPiArCS8qIFZFQ1Mgd2F0Y2hkb2cg aXMgb25seSBhdmFpbGFibGUgaW4gc2tsKyAqLwo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg Pj0gOSkKPiArCQlndF9pbnRlcnJ1cHRzWzNdIHw9IEdUX0dFTjhfV0FUQ0hET0dfSU5URVJSVVBU OwoKSXMgdGhlIHNoaWZ0IG1pc3NpbmcgaGVyZT8KCj4gKwo+ICAgCWRldl9wcml2LT5wbV9pZXIg PSAweDA7Cj4gICAJZGV2X3ByaXYtPnBtX2ltciA9IH5kZXZfcHJpdi0+cG1faWVyOwo+ICAgCUdF TjhfSVJRX0lOSVRfTkRYKEdULCAwLCB+Z3RfaW50ZXJydXB0c1swXSwgZ3RfaW50ZXJydXB0c1sw XSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggNDQ5NThkOTk0YmZhLi5mZmYzMzA2 NDMwOTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtMjMzNSw2ICsyMzM1LDEx IEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKPiAgICNkZWZpbmUgUklOR19TVEFSVChiYXNl KQlfTU1JTygoYmFzZSkgKyAweDM4KQo+ICAgI2RlZmluZSBSSU5HX0NUTChiYXNlKQkJX01NSU8o KGJhc2UpICsgMHgzYykKPiAgICNkZWZpbmUgICBSSU5HX0NUTF9TSVpFKHNpemUpCSgoc2l6ZSkg LSBQQUdFX1NJWkUpIC8qIGluIGJ5dGVzIC0+IHBhZ2VzICovCj4gKyNkZWZpbmUgUklOR19DTlRS KGJhc2UpCQlfTU1JTygoYmFzZSkgKyAweDE3OCkKPiArI2RlZmluZSAgIEdFTjhfV0FUQ0hET0df RU5BQkxFCQkwCj4gKyNkZWZpbmUgICBHRU44X1dBVENIRE9HX0RJU0FCTEUJCTEKPiArI2RlZmlu ZSAgIEdFTjhfWENTX1dBVENIRE9HX0RJU0FCTEUJMHhGRkZGRkZGRiAvKiBHRU44ICYgbm9uLXJl bmRlciBvbmx5ICovCj4gKyNkZWZpbmUgUklOR19USFJFU0goYmFzZSkJX01NSU8oKGJhc2UpICsg MHgxN0MpCj4gICAjZGVmaW5lIFJJTkdfU1lOQ18wKGJhc2UpCV9NTUlPKChiYXNlKSArIDB4NDAp Cj4gICAjZGVmaW5lIFJJTkdfU1lOQ18xKGJhc2UpCV9NTUlPKChiYXNlKSArIDB4NDQpCj4gICAj ZGVmaW5lIFJJTkdfU1lOQ18yKGJhc2UpCV9NTUlPKChiYXNlKSArIDB4NDgpCj4gQEAgLTI4OTQs NiArMjg5OSw3IEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKPiAgICNkZWZpbmUgR1RfQlNE X1VTRVJfSU5URVJSVVBUCQkJKDEgPDwgMTIpCj4gICAjZGVmaW5lIEdUX1JFTkRFUl9MM19QQVJJ VFlfRVJST1JfSU5URVJSVVBUX1MxCSgxIDw8IDExKSAvKiBoc3crOyByc3ZkIG9uIHNuYiwgaXZi LCB2bHYgKi8KPiAgICNkZWZpbmUgR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUCQkoMSA8PCAg OCkKPiArI2RlZmluZSBHVF9HRU44X1dBVENIRE9HX0lOVEVSUlVQVAkJKDEgPDwgIDYpIC8qIGdl bjgrICovCj4gICAjZGVmaW5lIEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUCSgx IDw8ICA1KSAvKiAhc25iICovCj4gICAjZGVmaW5lIEdUX1JFTkRFUl9QSVBFQ1RMX05PVElGWV9J TlRFUlJVUFQJKDEgPDwgIDQpCj4gICAjZGVmaW5lIEdUX1JFTkRFUl9DU19NQVNURVJfRVJST1Jf SU5URVJSVVBUCSgxIDw8ICAzKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oYW5nY2hlY2suYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5j Cj4gaW5kZXggNTFlOWVmZWM1MTE2Li4yOTA2ZjBlZjNkNzcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9oYW5nY2hlY2suYwo+IEBAIC0yMTMsNyArMjEzLDggQEAgc3RhdGljIHZvaWQg aGFuZ2NoZWNrX2FjY3VtdWxhdGVfc2FtcGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwKPiAgIAo+ICAgc3RhdGljIHZvaWQgaGFuZ2NoZWNrX2RlY2xhcmVfaGFuZyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAgIAkJCQkgICB1bnNpZ25lZCBpbnQgaHVuZywKPiAtCQkJ CSAgIHVuc2lnbmVkIGludCBzdHVjaykKPiArCQkJCSAgIHVuc2lnbmVkIGludCBzdHVjaywKPiAr CQkJCSAgIHVuc2lnbmVkIGludCB3YXRjaGRvZykKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmU7Cj4gICAJY2hhciBtc2dbODBdOwo+IEBAIC0yMjYsMTMgKzIyNywxNiBA QCBzdGF0aWMgdm9pZCBoYW5nY2hlY2tfZGVjbGFyZV9oYW5nKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1LAo+ICAgCWlmIChzdHVjayAhPSBodW5nKQo+ICAgCQlodW5nICY9IH5zdHVjazsK PiAgIAlsZW4gPSBzY25wcmludGYobXNnLCBzaXplb2YobXNnKSwKPiAtCQkJIiVzIG9uICIsIHN0 dWNrID09IGh1bmcgPyAibm8gcHJvZ3Jlc3MiIDogImhhbmciKTsKPiArCQkJIiVzIG9uICIsIHdh dGNoZG9nID8gIndhdGNoZG9nIHRpbWVvdXQiIDoKPiArCQkJCSAgc3R1Y2sgPT0gaHVuZyA/ICJu byBwcm9ncmVzcyIgOiAiaGFuZyIpOwo+ICAgCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5l LCBpOTE1LCBodW5nLCB0bXApCj4gICAJCWxlbiArPSBzY25wcmludGYobXNnICsgbGVuLCBzaXpl b2YobXNnKSAtIGxlbiwKPiAgIAkJCQkgIiVzLCAiLCBlbmdpbmUtPm5hbWUpOwo+ICAgCW1zZ1ts ZW4tMl0gPSAnXDAnOwo+ICAgCj4gLQlyZXR1cm4gaTkxNV9oYW5kbGVfZXJyb3IoaTkxNSwgaHVu ZywgSTkxNV9FUlJPUl9DQVBUVVJFLCAiJXMiLCBtc2cpOwo+ICsJcmV0dXJuIGk5MTVfaGFuZGxl X2Vycm9yKGk5MTUsIGh1bmcsCj4gKwkJCQkgd2F0Y2hkb2cgPyAwIDogSTkxNV9FUlJPUl9DQVBU VVJFLAo+ICsJCQkJICIlcyIsIG1zZyk7Cj4gICB9Cj4gICAKPiAgIC8qCj4gQEAgLTI1MCw3ICsy NTQsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykKPiAgIAkJCSAgICAgZ3B1X2Vycm9yLmhhbmdjaGVja193b3JrLndvcmspOwo+ ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiAgIAllbnVtIGludGVsX2VuZ2lu ZV9pZCBpZDsKPiAtCXVuc2lnbmVkIGludCBodW5nID0gMCwgc3R1Y2sgPSAwLCB3ZWRnZWQgPSAw Owo+ICsJdW5zaWduZWQgaW50IGh1bmcgPSAwLCBzdHVjayA9IDAsIHdlZGdlZCA9IDAsIHdhdGNo ZG9nID0gMDsKPiAgIAo+ICAgCWlmICghaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2hhbmdjaGVjaykK PiAgIAkJcmV0dXJuOwo+IEBAIC0yNjEsNiArMjY1LDkgQEAgc3RhdGljIHZvaWQgaTkxNV9oYW5n Y2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gICAJaWYgKGk5MTVfdGVy bWluYWxseV93ZWRnZWQoJmRldl9wcml2LT5ncHVfZXJyb3IpKQo+ICAgCQlyZXR1cm47Cj4gICAK PiArCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoSTkxNV9SRVNFVF9XQVRDSERPRywgJmRldl9wcml2 LT5ncHVfZXJyb3IuZmxhZ3MpKQo+ICsJCXdhdGNoZG9nID0gMTsKPiArCj4gICAJLyogQXMgZW5h YmxpbmcgdGhlIEdQVSByZXF1aXJlcyBmYWlybHkgZXh0ZW5zaXZlIG1taW8gYWNjZXNzLAo+ICAg CSAqIHBlcmlvZGljYWxseSBhcm0gdGhlIG1taW8gY2hlY2tlciB0byBzZWUgaWYgd2UgYXJlIHRy aWdnZXJpbmcKPiAgIAkgKiBhbnkgaW52YWxpZCBhY2Nlc3MuCj4gQEAgLTI5Myw3ICszMDAsNyBA QCBzdGF0aWMgdm9pZCBpOTE1X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKPiAgIAl9Cj4gICAKPiAgIAlpZiAoaHVuZykKPiAtCQloYW5nY2hlY2tfZGVjbGFyZV9o YW5nKGRldl9wcml2LCBodW5nLCBzdHVjayk7Cj4gKwkJaGFuZ2NoZWNrX2RlY2xhcmVfaGFuZyhk ZXZfcHJpdiwgaHVuZywgc3R1Y2ssIHdhdGNoZG9nKTsKPiAgIAo+ICAgCS8qIFJlc2V0IHRpbWVy IGluIGNhc2UgR1BVIGhhbmdzIHdpdGhvdXQgYW5vdGhlciByZXF1ZXN0IGJlaW5nIGFkZGVkICov Cj4gICAJaTkxNV9xdWV1ZV9oYW5nY2hlY2soZGV2X3ByaXYpOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCj4gaW5kZXggNmM5OGZiN2NlYmYyLi5lMWRjZGY1NDViZWUgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYwo+IEBAIC0yMDI3LDYgKzIwMjcsNzAgQEAgc3RhdGljIGludCBnZW44 X2VtaXRfZmx1c2hfcmVuZGVyKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsCj4gICAJcmV0 dXJuIDA7Cj4gICB9Cj4gICAKPiArLyogRnJvbSBHRU45IG9ud2FyZHMsIGFsbCBlbmdpbmVzIHVz ZSB0aGUgc2FtZSBSSU5HX0NOVFIgZm9ybWF0ICovCj4gK3N0YXRpYyBpbmxpbmUgdTMyIGdldF93 YXRjaGRvZ19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArewo+ICsJ aWYgKGVuZ2luZS0+aWQgPT0gUkNTIHx8IElOVEVMX0dFTihlbmdpbmUtPmk5MTUpID49IDkpCj4g KwkJcmV0dXJuIEdFTjhfV0FUQ0hET0dfRElTQUJMRTsKPiArCWVsc2UKPiArCQlyZXR1cm4gR0VO OF9YQ1NfV0FUQ0hET0dfRElTQUJMRTsKPiArfQo+ICsKPiArI2RlZmluZSBHRU44X1dBVENIRE9H XzEwMDBVUyAweDJlZTAgLy9YWFg6IFRlbXAsIHJlcGxhY2Ugd2l0aCBoZWxwZXIgZnVuY3Rpb24K ClBsZWFzZSBkbyB0aGVuLiA6KQoKPiArc3RhdGljIHZvaWQgZ2VuOF93YXRjaGRvZ19pcnFfaGFu ZGxlcih1bnNpZ25lZCBsb25nIGRhdGEpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSA9IChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICopZGF0YTsKPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKPiArCWVudW0gZm9yY2V3YWtl X2RvbWFpbnMgZndfZG9tYWluczsKPiArCXUzMiBjdXJyZW50X3NlcW5vOwo+ICsKPiArCXN3aXRj aCAoZW5naW5lLT5pZCkgewo+ICsJZGVmYXVsdDoKPiArCQlNSVNTSU5HX0NBU0UoZW5naW5lLT5p ZCk7Cj4gKwkJLyogZmFsbCB0aHJvdWdoICovCj4gKwljYXNlIFJDUzoKPiArCQlmd19kb21haW5z ID0gRk9SQ0VXQUtFX1JFTkRFUjsKPiArCQlicmVhazsKPiArCWNhc2UgVkNTOgo+ICsJY2FzZSBW Q1MyOgo+ICsJY2FzZSBWRUNTOgo+ICsJCWZ3X2RvbWFpbnMgPSBGT1JDRVdBS0VfTUVESUE7Cj4g KwkJYnJlYWs7Cj4gKwl9Cj4gKwo+ICsJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQoZGV2X3By aXYsIGZ3X2RvbWFpbnMpOwoKSSdkIGJlIHRlbXB0ZWQgdG8gZHJvcCB0aGlzIGFuZCBqdXN0IHVz ZSBJOTE1X1dSSVRFLiBJdCBkb2Vzbid0IGZlZWwgCmxpa2UgdGhlcmUgaXMgYW55IHBlcmZvcm1h bmNlIHRvIGJlIGdhaW5lZCB3aXRoIGl0IGFuZCBpdCBlbWJlZHMgdG9vIAptdWNoIGtub3dsZWRn ZSBoZXJlLgoKQWx0ZXJuYXRpdmVseSwgaWYgeW91IHdhbnQgdG8ga2VlcCBpdCwgY29uc2lkZXIg dXNpbmcgCmludGVsX3VuY29yZV9mb3JjZXdha2VfZm9yX3JlZyB0byBsZWF2ZSB0aGUgZncgZG9t YWluIGtub3dsZWRnZSBvdXQgb2YgCmhlcmUuIFNlZSBmb3IgaW5zdGFuY2UgaG93IGl0IGlzIHVz ZWQgaW4gaW50ZWxfZW5naW5lX2NzLmMuCgo+ICsKPiArCS8qIFN0b3AgdGhlIGNvdW50ZXIgdG8g cHJldmVudCBmdXJ0aGVyIHRpbWVvdXQgaW50ZXJydXB0cyAqLwo+ICsJSTkxNV9XUklURV9GVyhS SU5HX0NOVFIoZW5naW5lLT5tbWlvX2Jhc2UpLCBnZXRfd2F0Y2hkb2dfZGlzYWJsZShlbmdpbmUp KTsKCldoYXQgaWYgd2UgZGlzYWJsZSB0aGUgd2F0Y2hkb2cgZm9yIGEgYmF0Y2ggZm9sbG93aW5n IHRoZSBmYWxzZWx5IAphY2N1c2VkIG9uZT8gSSBtZWFuIHRoaXM6CgoxLiBCYXRjaCAxIHJ1bnMK Mi4gSVJRIGZpcmVzIC0+IHRhc2tsZXRfc2NoZWR1bGUKMy4gQmF0Y2ggMiBydW5zIChjYW4gYmUg ZGlmZmVyZW50IGNvbnRleHQpCjQuIFRhc2tsZXQgcnVucwo1LiBXYXRjaGRvZyBnZXRzIGRpc2Fi bGVkCjYuIEJhdGNoIDIgaGFuZ3MgLSBidXQgd2F0Y2hkb2cgaGFzIGJlZW4gZGlzYWJsZWQKCj8K Cj4gKwo+ICsJY3VycmVudF9zZXFubyA9IGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKTsK PiArCj4gKwkvKiBkaWQgdGhlIHJlcXVlc3QgY29tcGxldGUgYWZ0ZXIgdGhlIHRpbWVyIGV4cGly ZWQ/ICovCj4gKwlpZiAoaW50ZWxfZW5naW5lX2xhc3Rfc3VibWl0KGVuZ2luZSkgPT0gY3VycmVu dF9zZXFubykKPiArCQlnb3RvIGZ3X3B1dDsKPiArCj4gKwlpZiAoZW5naW5lLT5oYW5nY2hlY2su d2F0Y2hkb2cgPT0gY3VycmVudF9zZXFubykgewo+ICsJCS8qIE1ha2Ugc3VyZSB0aGUgYWN0aXZl IHJlcXVlc3Qgd2lsbCBiZSBtYXJrZWQgYXMgZ3VpbHR5ICovCj4gKwkJZW5naW5lLT5oYW5nY2hl Y2suc3RhbGxlZCA9IHRydWU7Cj4gKwkJZW5naW5lLT5oYW5nY2hlY2suYWN0aGQgPSBpbnRlbF9l bmdpbmVfZ2V0X2FjdGl2ZV9oZWFkKGVuZ2luZSk7Cj4gKwkJZW5naW5lLT5oYW5nY2hlY2suc2Vx bm8gPSBjdXJyZW50X3NlcW5vOwo+ICsKPiArCQkvKiBBbmQgdHJ5IHRvIHJ1biB0aGUgaGFuZ2No ZWNrX3dvcmsgYXMgc29vbiBhcyBwb3NzaWJsZSAqLwo+ICsJCXNldF9iaXQoSTkxNV9SRVNFVF9X QVRDSERPRywgJmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MpOwo+ICsJCXF1ZXVlX2RlbGF5ZWRf d29yayhzeXN0ZW1fbG9uZ193cSwKPiArCQkJCSAgICZkZXZfcHJpdi0+Z3B1X2Vycm9yLmhhbmdj aGVja193b3JrLAo+ICsJCQkJICAgcm91bmRfamlmZmllc191cF9yZWxhdGl2ZShIWikpOwo+ICsJ fSBlbHNlIHsKPiArCQllbmdpbmUtPmhhbmdjaGVjay53YXRjaGRvZyA9IGN1cnJlbnRfc2Vxbm87 CgpUaGUgbG9naWMgYWJvdmUgcG90ZW50aWFsbHkgaGFuZGxlcyBteSBwcmV2aW91cyBxdWVzdGlv bj8gQ291bGQgYmUgaWYgCmJhdGNoIDIgaGFuZ3MuIEJ1dC4uCgo+ICsJCS8qIFJlLXN0YXJ0IHRo ZSBjb3VudGVyLCBpZiByZWFsbHkgaHVuZywgaXQgd2lsbCBleHBpcmUgYWdhaW4gKi8KPiArCQlJ OTE1X1dSSVRFX0ZXKFJJTkdfVEhSRVNIKGVuZ2luZS0+bW1pb19iYXNlKSwgR0VOOF9XQVRDSERP R18xMDAwVVMpOwo+ICsJCUk5MTVfV1JJVEVfRlcoUklOR19DTlRSKGVuZ2luZS0+bW1pb19iYXNl KSwgR0VOOF9XQVRDSERPR19FTkFCTEUpOwoKLi4gdGhlIHRpbWVvdXQgd2lsbCBiZSB3cm9uZyBp ZS4gbm90IHJlc3BlY3RlZCBmcm9tIHdoYXQgdGhlIHVzZXJzcGFjZSAKc2V0LiBTbyBJIGRvbid0 IHRoaW5rIGl0IHdpbGwgd29yay4gVGhpcyBjb2RlIGVpdGhlciBuZWVkcyB0byBoYW5kbGUgCnJ1 bm5pbmcgd2l0aCB3YXRjaGRvZyBlbmFibGVkLCBvciBoZXJlIGl0IHNvbWVob3cgbmVlZHMgdG8g ZmlzaCBvdXQgdGhlIApjb3JyZWN0IHRpbWVvdXQgdG8gc2V0LgoKPiArCX0KPiArCj4gK2Z3X3B1 dDoKPiArCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KGRldl9wcml2LCBmd19kb21haW5zKTsK PiArfQo+ICsKPiAgIC8qCj4gICAgKiBSZXNlcnZlIHNwYWNlIGZvciAyIE5PT1BzIGF0IHRoZSBl bmQgb2YgZWFjaCByZXF1ZXN0IHRvIGJlCj4gICAgKiB1c2VkIGFzIGEgd29ya2Fyb3VuZCBmb3Ig bm90IGJlaW5nIGFsbG93ZWQgdG8gZG8gbGl0ZQo+IEBAIC0yMTE1LDYgKzIxNzksOSBAQCB2b2lk IGludGVsX2xvZ2ljYWxfcmluZ19jbGVhbnVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKPiAgIAkJCSAgICAgJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQuc3RhdGUpKSkKPiAgIAkJ dGFza2xldF9raWxsKCZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0KTsKPiAgIAo+ICsJaWYgKFdB Uk5fT04odGVzdF9iaXQoVEFTS0xFVF9TVEFURV9TQ0hFRCwgJmVuZ2luZS0+ZXhlY2xpc3RzLndh dGNoZG9nX3Rhc2tsZXQuc3RhdGUpKSkKPiArCQl0YXNrbGV0X2tpbGwoJmVuZ2luZS0+ZXhlY2xp c3RzLndhdGNoZG9nX3Rhc2tsZXQpOwo+ICsKCkkgZG9uJ3Qgc2VlIGFueSBjb2RlIGVuc3VyaW5n IHRoaXMgV0FSTiBjYW4ndCBmaXJlIGlmIHRoZSB0YXNrbGV0IGdldHMgCmRlbGF5ZWQ/IEEgdGFz a2xldF9raWxsIGluIGludGVsX2VuZ2luZXNfcGFyayBtaWdodCBiZSBlbm91Z2guCgo+ICAgCWRl dl9wcml2ID0gZW5naW5lLT5pOTE1Owo+ICAgCj4gICAJaWYgKGVuZ2luZS0+YnVmZmVyKSB7Cj4g QEAgLTIyMDgsNiArMjI3NSwyMiBAQCBsb2dpY2FsX3JpbmdfZGVmYXVsdF9pcnFzKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAo+ICAgCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNr ID0gR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IHNoaWZ0Owo+ICAgCWVuZ2luZS0+aXJxX2tl ZXBfbWFzayA9IEdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVCA8PCBzaGlmdDsKPiArCj4gKwlz d2l0Y2ggKGVuZ2luZS0+aWQpIHsKPiArCWRlZmF1bHQ6Cj4gKwkJLyogQkNTIGVuZ2luZSBkb2Vz IG5vdCBzdXBwb3J0IGh3IHdhdGNoZG9nICovCj4gKwkJYnJlYWs7Cj4gKwljYXNlIFJDUzoKPiAr CWNhc2UgVkNTOgo+ICsJY2FzZSBWQ1MyOgoKQ2hhbmdlIGFsbCB0byBjbGFzcyBiYXNlZCBjaGVj a3MgcGxlYXNlIG9yIG1haW50ZW5hbmNlIGdldHMgaGFyZC4gSG0gCmV2ZW4gbW9yZSBzbywgbGlr ZSB0aGlzIElDTCBpcyBicm9rZW4uCgo+ICsJCWVuZ2luZS0+aXJxX2tlZXBfbWFzayB8PSAoR1Rf R0VOOF9XQVRDSERPR19JTlRFUlJVUFQgPDwgc2hpZnQpOwoKQnJhY2VzIG5vdCBuZWVkZWQgaGVy ZSBhbmQgYmVsb3cuCgo+ICsJCWJyZWFrOwo+ICsJY2FzZSBWRUNTOgo+ICsJCWlmIChJTlRFTF9H RU4oZW5naW5lLT5pOTE1KSA+PSA5KQo+ICsJCQllbmdpbmUtPmlycV9rZWVwX21hc2sgfD0KPiAr CQkJCShHVF9HRU44X1dBVENIRE9HX0lOVEVSUlVQVCA8PCBzaGlmdCk7Cj4gKwkJYnJlYWs7Cj4g Kwl9Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkCj4gQEAgLTIyMjEsNiArMjMwNCw5IEBAIGxv Z2ljYWxfcmluZ19zZXR1cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJdGFz a2xldF9pbml0KCZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0LAo+ICAgCQkgICAgIGV4ZWNsaXN0 c19zdWJtaXNzaW9uX3Rhc2tsZXQsICh1bnNpZ25lZCBsb25nKWVuZ2luZSk7Cj4gICAKPiArCXRh c2tsZXRfaW5pdCgmZW5naW5lLT5leGVjbGlzdHMud2F0Y2hkb2dfdGFza2xldCwKPiArCQkgICAg IGdlbjhfd2F0Y2hkb2dfaXJxX2hhbmRsZXIsICh1bnNpZ25lZCBsb25nKWVuZ2luZSk7Cj4gKwo+ ICAgCWxvZ2ljYWxfcmluZ19kZWZhdWx0X3ZmdW5jcyhlbmdpbmUpOwo+ICAgCWxvZ2ljYWxfcmlu Z19kZWZhdWx0X2lycXMoZW5naW5lKTsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5oCj4gaW5kZXggM2MxMzY2YzU4Y2YzLi42Y2I4YjQyODAwMzUgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gQEAgLTEyMCw2ICsxMjAsNyBA QCBzdHJ1Y3QgaW50ZWxfaW5zdGRvbmUgewo+ICAgc3RydWN0IGludGVsX2VuZ2luZV9oYW5nY2hl Y2sgewo+ICAgCXU2NCBhY3RoZDsKPiAgIAl1MzIgc2Vxbm87Cj4gKwl1MzIgd2F0Y2hkb2c7Cj4g ICAJZW51bSBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrX2FjdGlvbiBhY3Rpb247Cj4gICAJdW5zaWdu ZWQgbG9uZyBhY3Rpb25fdGltZXN0YW1wOwo+ICAgCWludCBkZWFkbG9jazsKPiBAQCAtMjI0LDYg KzIyNSwxMSBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyB7Cj4gICAJICovCj4gICAJ c3RydWN0IHRhc2tsZXRfc3RydWN0IHRhc2tsZXQ7Cj4gICAKPiArCS8qKgo+ICsJICogQHdhdGNo ZG9nX3Rhc2tsZXQ6IHN0b3AgY291bnRlciBhbmQgcmUtc2NoZWR1bGUgaGFuZ2NoZWNrX3dvcmsg YXNhcAo+ICsJICovCj4gKwlzdHJ1Y3QgdGFza2xldF9zdHJ1Y3Qgd2F0Y2hkb2dfdGFza2xldDsK PiArCj4gICAJLyoqCj4gICAJICogQGRlZmF1bHRfcHJpb2xpc3Q6IHByaW9yaXR5IGxpc3QgZm9y IEk5MTVfUFJJT1JJVFlfTk9STUFMCj4gICAJICovCj4gCgpSZWdhcmRzLAoKVHZydGtvCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=