From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [PATCH 8/8] drm/i915/gt: Use intel_gt as the primary object for handling resets Date: Tue, 09 Jul 2019 09:11:15 +0100 Message-ID: <156265987593.9375.7277116326987643831@skylake-alporthouse-com> References: <20190705074604.16496-1-chris@chris-wilson.co.uk> <20190705074604.16496-8-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2EBF389F9F for ; Tue, 9 Jul 2019 08:11:32 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniele Ceraolo Spurio , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UXVvdGluZyBEYW5pZWxlIENlcmFvbG8gU3B1cmlvICgyMDE5LTA3LTA4IDIzOjQ4OjUxKQo+IAo+ IAo+IE9uIDcvNS8xOSAxMjo0NiBBTSwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+ID4gSGF2aW5nIHRh a2VuIHRoZSBmaXJzdCBzdGVwIGluIGVuY2Fwc3VsYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgYnkg bW92aW5nCj4gPiB0aGUgcmVsYXRlZCBmaWxlcyB1bmRlciBndC8sIHRoZSBuZXh0IHN0ZXAgaXMg dG8gc3RhcnQgZW5jYXBzdWxhdGluZyBieQo+ID4gcGFzc2luZyBhcm91bmQgdGhlIHJlbGV2YW50 IHN0cnVjdHMgcmF0aGVyIHRoYW4gdGhlIGdsb2JhbAo+ID4gZHJtX2k5MTVfcHJpdmF0ZS4gSW4g dGhpcyBzdGVwLCB3ZSBwYXNzIGludGVsX2d0IHRvIGludGVsX3Jlc2V0LmMKPiA+IAo+ID4gU2ln bmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gPiBD YzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiA+IENjOiBEYW5p ZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+ID4g LS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jICB8 ICAyMSArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5j ICAgfCAgIDIgKy0KPiA+ICAgLi4uL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZl ci5jICAgIHwgICAyICstCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9t bWFuLmMgICAgICB8ICAgOCArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fcG0uYyAgICAgICAgfCAgMjUgKy0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX3Rocm90dGxlLmMgIHwgICAyICstCj4gPiAgIC4uLi9ncHUvZHJtL2k5MTUvZ2VtL3Nl bGZ0ZXN0cy9odWdlX3BhZ2VzLmMgICB8ICAyMCArLQo+ID4gICAuLi4vaTkxNS9nZW0vc2VsZnRl c3RzL2k5MTVfZ2VtX2NsaWVudF9ibHQuYyAgfCAgIDQgKy0KPiA+ICAgLi4uL2k5MTUvZ2VtL3Nl bGZ0ZXN0cy9pOTE1X2dlbV9jb2hlcmVuY3kuYyAgIHwgICA2ICstCj4gPiAgIC4uLi9kcm0vaTkx NS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYyB8ICAxNyArLQo+ID4gICAuLi4vZHJt L2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9tbWFuLmMgICAgfCAgIDIgKy0KPiA+ICAgLi4u L2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9vYmplY3RfYmx0LmMgIHwgICA0ICstCj4gPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5oICAgICAgICB8ICAgOCArLQo+ ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyAgICAgfCAgMTYg Ky0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3BtLmMgICAgIHwg ICAzICstCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0LmMgICAgICAgICAg ICB8ICAgNyArCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0LmggICAgICAg ICAgICB8ICAxMiArCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3BtLmMg ICAgICAgICB8ICAxOSArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF90 eXBlcy5oICAgICAgfCAgMTIgKwo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9o YW5nY2hlY2suYyAgICAgfCAgNjcgKy0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX2xyYy5jICAgICAgICAgICB8ICAgMiArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9yZXNldC5jICAgICAgICAgfCA0MzUgKysrKysrKysrLS0tLS0tLS0tCj4gPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmggICAgICAgICB8ICA3MyArLS0KPiA+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXRfdHlwZXMuaCAgIHwgIDUwICsr Cj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYyAgICB8ICAg MiArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9oYW5nY2hlY2suYyAg fCAxMDcgKysrLS0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMg ICAgICAgIHwgIDM2ICstCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3Jl c2V0LmMgICAgICB8ICA1MCArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVz dF90aW1lbGluZS5jICAgfCAgIDMgKy0KPiA+ICAgLi4uL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVz dF93b3JrYXJvdW5kcy5jICAgIHwgIDMzICstCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jICAgICAgICAgICB8ICA2MyArLS0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYyAgICAgICAgICAgICAgIHwgICA1ICstCj4gPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgICB8ICAzNSArLQo+ID4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgICAgfCAgMzEgKy0KPiA+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuaCAgICAgICAgIHwgIDUyICstLQo+ID4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyAgICAgICAgICAgfCAgIDUgKy0KPiA+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyAgIHwgICAyICst Cj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmMgICAgICAgICAgICAgICB8ICAg MiArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9hY3RpdmUuYyAg fCAgIDMgKy0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtLmMg ICAgIHwgICAzICstCj4gPiAgIC4uLi9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2V2 aWN0LmMgICB8ICAgMyArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkx NV9yZXF1ZXN0LmMgfCAgIDQgKy0KPiA+ICAgLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkx NV9zZWxmdGVzdC5jICAgIHwgICAyICstCj4gPiAgIC4uLi9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2lndF9mbHVzaF90ZXN0LmMgICB8ICAgNSArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvaWd0X3Jlc2V0LmMgICAgfCAgMzggKy0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2lndF9yZXNldC5oICAgIHwgIDEwICstCj4gPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9pZ3Rfd2VkZ2VfbWUuaCB8ICA1OCAtLS0KPiA+ICAgLi4uL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMgIHwgICA1IC0KPiA+ICAgNDggZmls ZXMgY2hhbmdlZCwgNjY1IGluc2VydGlvbnMoKyksIDcwOSBkZWxldGlvbnMoLSkKPiA+ICAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0X3R5cGVz LmgKPiA+ICAgZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9pZ3Rfd2VkZ2VfbWUuaAo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5kZXggOTE5ZjVhYzg0NGM4Li40ZGQ2ODU2YmY3MjIgMTAw NjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXku Ywo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMK PiA+IEBAIC00MjQ5LDEyICs0MjQ5LDEyIEBAIHZvaWQgaW50ZWxfcHJlcGFyZV9yZXNldChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgICAgICAgICAgICAgIHJldHVybjsK PiA+ICAgCj4gPiAgICAgICAvKiBXZSBoYXZlIGEgbW9kZXNldCB2cyByZXNldCBkZWFkbG9jaywg ZGVmZW5zaXZlbHkgdW5icmVhayBpdC4gKi8KPiA+IC0gICAgIHNldF9iaXQoSTkxNV9SRVNFVF9N T0RFU0VULCAmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncyk7Cj4gPiAtICAgICB3YWtlX3VwX2Fs bCgmZGV2X3ByaXYtPmdwdV9lcnJvci53YWl0X3F1ZXVlKTsKPiA+ICsgICAgIHNldF9iaXQoSTkx NV9SRVNFVF9NT0RFU0VULCAmZGV2X3ByaXYtPmd0LnJlc2V0LmZsYWdzKTsKPiA+ICsgICAgIHdh a2VfdXBfYml0KCZkZXZfcHJpdi0+Z3QucmVzZXQuZmxhZ3MsIEk5MTVfUkVTRVRfTU9ERVNFVCk7 Cj4gCj4gVGhlIGRvYyBmb3Igd2FrZV91cF9iaXQgc2F5cyB0aGF0IHdlIG5lZWQgYSBtZW1vcnkg YmFycmllciBiZWZvcmUgCj4gY2FsbGluZyBpdC4gRG8gd2UgaGF2ZSBpdCBpbXBsaWNpdGx5IHNv bWV3aGVyZSBvciBpcyBpdCBtaXNzaW5nPwoKc2V0X2JpdCBpcyBhIG1lbW9yeSBiYXJyaWVyIG9u IHg4NiwgYnV0IHdlIG1heSBuZWVkIGEKc21wX21iX19hZnRlcl9hdG9taWMgKG5vLW9wIG9uIHg4 NikgdG8gYmUgc3RyaWN0bHkgY29ycmVjdC4KCj4gPiAgICAgICBpZiAoYXRvbWljX3JlYWQoJmRl dl9wcml2LT5ncHVfZXJyb3IucGVuZGluZ19mYl9waW4pKSB7Cj4gPiAgICAgICAgICAgICAgIERS TV9ERUJVR19LTVMoIk1vZGVzZXQgcG90ZW50aWFsbHkgc3R1Y2ssIHVuYnJlYWtpbmcgdGhyb3Vn aCB3ZWRnaW5nXG4iKTsKPiA+IC0gICAgICAgICAgICAgaTkxNV9nZW1fc2V0X3dlZGdlZChkZXZf cHJpdik7Cj4gPiArICAgICAgICAgICAgIGludGVsX2d0X3NldF93ZWRnZWQoJmRldl9wcml2LT5n dCk7Cj4gPiAgICAgICB9Cj4gPiAgIAo+ID4gICAgICAgLyoKPiAKPiA8c25pcD4KPiAKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcG0uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wbS5jCj4gPiBpbmRleCBiZjA4NWIwY2I3YzYu LjhlMmVlYWVjMDZjYiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9wbS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f cG0uYwo+IAo+ID4gQEAgLTEyMywxOCArMTI0LDE4IEBAIHN0YXRpYyBib29sIHN3aXRjaF90b19r ZXJuZWxfY29udGV4dF9zeW5jKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ID4gICAg ICAgICAgICAgICAgICAgICAgICAqIEZvcmNpYmx5IGNhbmNlbCBvdXRzdGFuZGluZyB3b3JrIGFu ZCBsZWF2ZQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSBncHUgcXVpZXQuCj4gPiAg ICAgICAgICAgICAgICAgICAgICAgICovCj4gPiAtICAgICAgICAgICAgICAgICAgICAgaTkxNV9n ZW1fc2V0X3dlZGdlZChpOTE1KTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICBpbnRlbF9ndF9z ZXRfd2VkZ2VkKGd0KTsKPiA+ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsK PiA+ICAgICAgICAgICAgICAgfQo+ID4gLSAgICAgfSB3aGlsZSAoaTkxNV9yZXRpcmVfcmVxdWVz dHMoaTkxNSkgJiYgcmVzdWx0KTsKPiA+ICsgICAgIH0gd2hpbGUgKGk5MTVfcmV0aXJlX3JlcXVl c3RzKGd0LT5pOTE1KSAmJiByZXN1bHQpOwo+ID4gICAKPiA+IC0gICAgIEdFTV9CVUdfT04oaTkx NS0+Z3QuYXdha2UpOwo+ID4gKyAgICAgR0VNX0JVR19PTihndC0+YXdha2UpOwo+ID4gICAgICAg cmV0dXJuIHJlc3VsdDsKPiA+ICAgfQo+ID4gICAKPiA+ICAgYm9vbCBpOTE1X2dlbV9sb2FkX3Bv d2VyX2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gCj4gVGhpcyBzaG91 bGQgcHJvYmFibHkgbW92ZSB0byBpbnRlbF9ndCBhcyB3ZWxsIHNpbmNlIGl0IGlzIHRoZSBndCBw b3dlciAKPiBjb250ZXh0IHRoYXQgd2UncmUgbG9hZGluZy4KCldvcmtpbmcgb24gc29tZXRoaW5n IGxpa2UgdGhhdCwgYnV0IGZvciB0aGUgbW9tZW50IHRoaXMgaXMgdGllZCB2ZXJ5Cm11Y2ggaW50 byB0aGUgaGVhcnQgb2YgR0VNIGluaXRpYWxpc2F0aW9uLiBTbyBpdCdzIG9wZXJhdGluZyBhdCB0 aGUgR0VNCmRldmljZSBsZXZlbCBjdXJyZW50bHkuCgo+ID4gICB7Cj4gPiAtICAgICByZXR1cm4g c3dpdGNoX3RvX2tlcm5lbF9jb250ZXh0X3N5bmMoaTkxNSk7Cj4gPiArICAgICByZXR1cm4gc3dp dGNoX3RvX2tlcm5lbF9jb250ZXh0X3N5bmMoJmk5MTUtPmd0KTsKPiA+ICAgfQo+ID4gICAKPiA+ ICAgdm9pZCBpOTE1X2dlbV9zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ IAo+IDxzbmlwPgo+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX2d0X3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9wbS5jCj4gPiBp bmRleCAzNmJhODBlNmEwYjcuLjkwNDdlMjhlNzVhZSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3BtLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2d0X3BtLmMKPiA+IEBAIC01LDcgKzUsOSBAQAo+ID4gICAgKi8KPiA+ICAg Cj4gPiAgICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ID4gKyNpbmNsdWRlICJpOTE1X3BhcmFtcy5o Igo+ID4gICAjaW5jbHVkZSAiaW50ZWxfZW5naW5lX3BtLmgiCj4gPiArI2luY2x1ZGUgImludGVs X2d0LmgiCj4gPiAgICNpbmNsdWRlICJpbnRlbF9ndF9wbS5oIgo+ID4gICAjaW5jbHVkZSAiaW50 ZWxfcG0uaCIKPiA+ICAgI2luY2x1ZGUgImludGVsX3dha2VyZWYuaCIKPiA+IEBAIC0xNyw2ICsx OSw3IEBAIHN0YXRpYyB2b2lkIHBtX25vdGlmeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwgaW50IHN0YXRlKQo+ID4gICAKPiA+ICAgc3RhdGljIGludCBpbnRlbF9ndF91bnBhcmsoc3Ry dWN0IGludGVsX3dha2VyZWYgKndmKQo+ID4gICB7Cj4gPiArICAgICBzdHJ1Y3QgaW50ZWxfZ3Qg Kmd0ID0gY29udGFpbmVyX29mKHdmLCB0eXBlb2YoKmd0KSwgd2FrZXJlZik7Cj4gPiAgICAgICBz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9Cj4gPiAgICAgICAgICAgICAgIGNvbnRhaW5l cl9vZih3ZiwgdHlwZW9mKCppOTE1KSwgZ3Qud2FrZXJlZik7Cj4gCj4gZ3QtPmk5MTUgPwoKU2Vu c2libGUuIE15IGdvYWwgaGVyZSBpcyB0byByZW1vdmUgdGhlIGk5MTUgZW50aXJlbHkuCgo+IDxz bmlwPgo+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0 X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF90eXBlcy5oCj4gPiBp bmRleCBmNDNlYTgzMGIxZTguLjcwZDcyM2U4MDFiZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3R5cGVzLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2d0X3R5cGVzLmgKPiA+IEBAIC0xNCwxMiArMTQsMjEgQEAKPiA+ICAg I2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gPiAgIAo+ID4gICAjaW5jbHVkZSAiaTkxNV92bWEu aCIKPiA+ICsjaW5jbHVkZSAiaW50ZWxfcmVzZXRfdHlwZXMuaCIKPiA+ICAgI2luY2x1ZGUgImlu dGVsX3dha2VyZWYuaCIKPiA+ICAgCj4gPiAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwo+ID4g ICBzdHJ1Y3QgaTkxNV9nZ3R0Owo+ID4gICBzdHJ1Y3QgaW50ZWxfdW5jb3JlOwo+ID4gICAKPiA+ ICtzdHJ1Y3QgaW50ZWxfaGFuZ2NoZWNrIHsKPiA+ICsgICAgIC8qIEZvciBoYW5nY2hlY2sgdGlt ZXIgKi8KPiA+ICsjZGVmaW5lIERSTV9JOTE1X0hBTkdDSEVDS19QRVJJT0QgMTUwMCAvKiBpbiBt cyAqLwo+ID4gKyNkZWZpbmUgRFJNX0k5MTVfSEFOR0NIRUNLX0pJRkZJRVMgbXNlY3NfdG9famlm ZmllcyhEUk1fSTkxNV9IQU5HQ0hFQ0tfUEVSSU9EKQo+ID4gKwo+ID4gKyAgICAgc3RydWN0IGRl bGF5ZWRfd29yayB3b3JrOwo+ID4gK307Cj4gCj4gc2hvdWxkIGludGVsX2hhbmdjaGVjayBiZSBw YXJ0IG9mIGludGVsX3Jlc2V0X3R5cGVzPwoKSXQncyBub3QgYSBwYXJ0IG9mIHJlc2V0IHBlci1z ZSwgaXQgaXMgb25seSBlbnRpdHkgdGhhdCBydW5zIGFsb25nc2lkZS4KSSBqdXN0IGxhemllZCBv dXQgb2YgbWFraW5nIGludGVsX2hhbmdjaGVjayouaCBhcyBJIGFtIHN0aWxsIHJldmlzaW5nIG15 CnBsYW5uZWQgaGVhcnRiZWF0cy4KCj4gPiArCj4gPiAgIHN0cnVjdCBpbnRlbF9ndCB7Cj4gPiAg ICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKPiA+ICAgICAgIHN0cnVjdCBpbnRl bF91bmNvcmUgKnVuY29yZTsKPiA+IEBAIC0zOSw2ICs0OCw5IEBAIHN0cnVjdCBpbnRlbF9ndCB7 Cj4gPiAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGNsb3NlZF92bWE7Cj4gPiAgICAgICBzcGlubG9j a190IGNsb3NlZF9sb2NrOyAvKiBndWFyZHMgdGhlIGxpc3Qgb2YgY2xvc2VkX3ZtYSAqLwo+ID4g ICAKPiA+ICsgICAgIHN0cnVjdCBpbnRlbF9oYW5nY2hlY2sgaGFuZ2NoZWNrOwo+ID4gKyAgICAg c3RydWN0IGludGVsX3Jlc2V0IHJlc2V0Owo+ID4gKwo+ID4gICAgICAgLyoqCj4gPiAgICAgICAg KiBJcyB0aGUgR1BVIGN1cnJlbnRseSBjb25zaWRlcmVkIGlkbGUsIG9yIGJ1c3kgZXhlY3V0aW5n Cj4gPiAgICAgICAgKiB1c2Vyc3BhY2UgcmVxdWVzdHM/IFdoaWxzdCBpZGxlLCB3ZSBhbGxvdyBy dW50aW1lIHBvd2VyCj4gCj4gPHNuaXA+Cj4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X3Jlc2V0LmMKPiA+IGluZGV4IDcyMDAyYzBmOTY5OC4uNjdjMDYyMzFiMDA0IDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwo+IAo+ID4gQEAgLTEyNjcsMTEzICsx MjUyLDExOSBAQCB2b2lkIGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LAo+ID4gICAgICAgc3luY2hyb25pemVfcmN1X2V4cGVkaXRlZCgpOwo+ID4gICAKPiA+ ICAgICAgIC8qIFByZXZlbnQgYW55IG90aGVyIHJlc2V0LWVuZ2luZSBhdHRlbXB0LiAqLwo+ID4g LSAgICAgZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgdG1wKSB7Cj4gPiArICAgICBmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgdG1wKSB7Cj4gPiAgICAgICAgICAgICAgIHdo aWxlICh0ZXN0X2FuZF9zZXRfYml0KEk5MTVfUkVTRVRfRU5HSU5FICsgZW5naW5lLT5pZCwKPiA+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVycm9yLT5mbGFncykpCj4g PiAtICAgICAgICAgICAgICAgICAgICAgd2FpdF9vbl9iaXQoJmVycm9yLT5mbGFncywKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmd0LT5yZXNldC5mbGFncykpCj4g PiArICAgICAgICAgICAgICAgICAgICAgd2FpdF9vbl9iaXQoJmd0LT5yZXNldC5mbGFncywKPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJOTE1X1JFU0VUX0VOR0lORSArIGVu Z2luZS0+aWQsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFTS19VTklO VEVSUlVQVElCTEUpOwo+ID4gICAgICAgfQo+ID4gICAKPiA+IC0gICAgIGk5MTVfcmVzZXRfZGV2 aWNlKGk5MTUsIGVuZ2luZV9tYXNrLCBtc2cpOwo+ID4gKyAgICAgaW50ZWxfZ3RfcmVzZXRfZ2xv YmFsKGd0LCBlbmdpbmVfbWFzaywgbXNnKTsKPiA+ICAgCj4gPiAtICAgICBmb3JfZWFjaF9lbmdp bmUoZW5naW5lLCBpOTE1LCB0bXApIHsKPiA+IC0gICAgICAgICAgICAgY2xlYXJfYml0KEk5MTVf UkVTRVRfRU5HSU5FICsgZW5naW5lLT5pZCwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICZl cnJvci0+ZmxhZ3MpOwo+ID4gLSAgICAgfQo+ID4gLQo+ID4gLSAgICAgY2xlYXJfYml0KEk5MTVf UkVTRVRfQkFDS09GRiwgJmVycm9yLT5mbGFncyk7Cj4gPiAtICAgICB3YWtlX3VwX2FsbCgmZXJy b3ItPnJlc2V0X3F1ZXVlKTsKPiA+ICsgICAgIGZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5p OTE1LCB0bXApCj4gPiArICAgICAgICAgICAgIGNsZWFyX2JpdF91bmxvY2soSTkxNV9SRVNFVF9F TkdJTkUgKyBlbmdpbmUtPmlkLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZn dC0+cmVzZXQuZmxhZ3MpOwo+ID4gKyAgICAgY2xlYXJfYml0X3VubG9jayhJOTE1X1JFU0VUX0JB Q0tPRkYsICZndC0+cmVzZXQuZmxhZ3MpOwo+ID4gKyAgICAgc21wX21iX19hZnRlcl9hdG9taWMo KTsKPiAKPiBXaHkgZG8gd2Ugbm93IG5lZWQgdGhpcyBiYXJyaWVyIGhlcmU/CgpXZSBhbHdheXMg bmVlZGVkIGl0IGZvciB0aGUgc2FtZSByZWFzb24gYXMgeW91IGdhdmUgYWJvdmUuIFBldGVyWgpw b2ludGVkIG91dCB0aGUgbGFwc2UgYXMgd2VsbCBmb3IgdGhlIGNsZWFyX2JpdC93YWtlX3VwX2Jp dCBjb21iby4KCj4gCj4gPiArICAgICB3YWtlX3VwX2FsbCgmZ3QtPnJlc2V0LnF1ZXVlKTsKPiA+ ICAgCj4gPiAgIG91dDoKPiA+IC0gICAgIGludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50 aW1lX3BtLCB3YWtlcmVmKTsKPiA+ICsgICAgIGludGVsX3J1bnRpbWVfcG1fcHV0KCZndC0+aTkx NS0+cnVudGltZV9wbSwgd2FrZXJlZik7Cj4gPiAgIH0KPiA+ICAgCj4gCj4gPHNuaXA+Cj4gCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmgKPiA+IGluZGV4IDAzZmJhMGFiMzg2 OC4uNjJmNmNiNTIwZjk2IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfcmVzZXQuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVz ZXQuaAo+ID4gQEAgLTExLDU2ICsxMSw2NyBAQAo+ID4gICAjaW5jbHVkZSA8bGludXgvdHlwZXMu aD4KPiA+ICAgI2luY2x1ZGUgPGxpbnV4L3NyY3UuaD4KPiA+ICAgCj4gPiAtI2luY2x1ZGUgImd0 L2ludGVsX2VuZ2luZV90eXBlcy5oIgo+ID4gKyNpbmNsdWRlICJpbnRlbF9lbmdpbmVfdHlwZXMu aCIKPiA+ICsjaW5jbHVkZSAiaW50ZWxfcmVzZXRfdHlwZXMuaCIKPiA+ICAgCj4gPiAgIHN0cnVj dCBkcm1faTkxNV9wcml2YXRlOwo+ID4gICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0Owo+ID4gICBzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzOwo+ID4gK3N0cnVjdCBpbnRlbF9ndDsKPiA+ICAgc3RydWN0IGlu dGVsX2d1YzsKPiA+ICAgCj4gPiArdm9pZCBpbnRlbF9ndF9pbml0X3Jlc2V0KHN0cnVjdCBpbnRl bF9ndCAqZ3QpOwo+ID4gK3ZvaWQgaW50ZWxfZ3RfZmluaV9yZXNldChzdHJ1Y3QgaW50ZWxfZ3Qg Kmd0KTsKPiA+ICsKPiA+ICAgX19wcmludGYoNCwgNSkKPiA+IC12b2lkIGk5MTVfaGFuZGxlX2Vy cm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ID4gLSAgICAgICAgICAgICAgICAg ICAgaW50ZWxfZW5naW5lX21hc2tfdCBlbmdpbmVfbWFzaywKPiA+IC0gICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCj4gPiAtICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpmbXQsIC4uLik7Cj4gPiArdm9pZCBpbnRlbF9ndF9oYW5kbGVfZXJyb3Ioc3RydWN0IGlu dGVsX2d0ICpndCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF9lbmdpbmVfbWFz a190IGVuZ2luZV9tYXNrLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgZmxhZ3MsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm10LCAu Li4pOwo+ID4gICAjZGVmaW5lIEk5MTVfRVJST1JfQ0FQVFVSRSBCSVQoMCkKPiA+ICAgCj4gPiAt dm9pZCBpOTE1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ID4gLSAgICAg ICAgICAgICBpbnRlbF9lbmdpbmVfbWFza190IHN0YWxsZWRfbWFzaywKPiA+IC0gICAgICAgICAg ICAgY29uc3QgY2hhciAqcmVhc29uKTsKPiA+IC1pbnQgaTkxNV9yZXNldF9lbmdpbmUoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ID4gLSAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpyZWFzb24pOwo+ID4gLQo+ID4gLXZvaWQgaTkxNV9yZXNldF9yZXF1ZXN0KHN0cnVjdCBp OTE1X3JlcXVlc3QgKnJxLCBib29sIGd1aWx0eSk7Cj4gPiArdm9pZCBpbnRlbF9ndF9yZXNldChz dHJ1Y3QgaW50ZWxfZ3QgKmd0LAo+ID4gKyAgICAgICAgICAgICAgICAgaW50ZWxfZW5naW5lX21h c2tfdCBzdGFsbGVkX21hc2ssCj4gPiArICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpyZWFz b24pOwo+ID4gK2ludCBpbnRlbF9lbmdpbmVfcmVzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVhc29uKTsKPiA+ ICAgCj4gPiAtaW50IF9fbXVzdF9jaGVjayBpOTE1X3Jlc2V0X3RyeWxvY2soc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpOwo+ID4gLXZvaWQgaTkxNV9yZXNldF91bmxvY2soc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludCB0YWcpOwo+ID4gK3ZvaWQgX19pOTE1X3JlcXVlc3Rf cmVzZXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIGJvb2wgZ3VpbHR5KTsKPiA+ICAgCj4gPiAt aW50IGk5MTVfdGVybWluYWxseV93ZWRnZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp Owo+ID4gK2ludCBfX211c3RfY2hlY2sgaW50ZWxfZ3RfcmVzZXRfdHJ5bG9jayhzdHJ1Y3QgaW50 ZWxfZ3QgKmd0KTsKPiA+ICt2b2lkIGludGVsX2d0X3Jlc2V0X3VubG9jayhzdHJ1Y3QgaW50ZWxf Z3QgKmd0LCBpbnQgdGFnKTsKPiA+ICAgCj4gPiAtYm9vbCBpbnRlbF9oYXNfZ3B1X3Jlc2V0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKPiA+IC1ib29sIGludGVsX2hhc19yZXNldF9l bmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwo+ID4gK3ZvaWQgaW50ZWxfZ3Rf c2V0X3dlZGdlZChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKPiA+ICtib29sIGludGVsX2d0X3Vuc2V0 X3dlZGdlZChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKPiA+ICtpbnQgaW50ZWxfZ3RfdGVybWluYWxs eV93ZWRnZWQoc3RydWN0IGludGVsX2d0ICpndCk7Cj4gPiAgIAo+ID4gLWludCBpbnRlbF9ncHVf cmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gPiAtICAgICAgICAgICAgICAg ICBpbnRlbF9lbmdpbmVfbWFza190IGVuZ2luZV9tYXNrKTsKPiA+ICtpbnQgaW50ZWxfZ3B1X3Jl c2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGludGVsX2VuZ2luZV9tYXNrX3QgZW5naW5lX21hc2sp Owo+IAo+IHRpbWUgdG8gcmVuYW1lIHRvIGludGVsX2d0X3Jlc2V0PwoKQWxyZWFkeSB0YWtlbi4K Cj4gCj4gPiAgIAo+ID4gLWludCBpbnRlbF9yZXNldF9ndWMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUpOwo+ID4gK2ludCBpbnRlbF9yZXNldF9ndWMoc3RydWN0IGludGVsX2d0ICpndCk7 Cj4gPiAgIAo+ID4gLXN0cnVjdCBpOTE1X3dlZGdlX21lIHsKPiA+ICtzdHJ1Y3QgaW50ZWxfd2Vk Z2VfbWUgewo+ID4gICAgICAgc3RydWN0IGRlbGF5ZWRfd29yayB3b3JrOwo+ID4gLSAgICAgc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7Cj4gPiArICAgICBzdHJ1Y3QgaW50ZWxfZ3QgKmd0 Owo+ID4gICAgICAgY29uc3QgY2hhciAqbmFtZTsKPiA+ICAgfTsKPiA+ICAgCj4gPiAtdm9pZCBf X2k5MTVfaW5pdF93ZWRnZShzdHJ1Y3QgaTkxNV93ZWRnZV9tZSAqdywKPiA+IC0gICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ID4gLSAgICAgICAgICAg ICAgICAgICAgbG9uZyB0aW1lb3V0LAo+ID4gLSAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh ciAqbmFtZSk7Cj4gPiAtdm9pZCBfX2k5MTVfZmluaV93ZWRnZShzdHJ1Y3QgaTkxNV93ZWRnZV9t ZSAqdyk7Cj4gPiArdm9pZCBfX2ludGVsX2luaXRfd2VkZ2Uoc3RydWN0IGludGVsX3dlZGdlX21l ICp3LAo+ID4gKyAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9ndCAqZ3QsCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgbG9uZyB0aW1lb3V0LAo+ID4gKyAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKm5hbWUpOwo+ID4gK3ZvaWQgX19pbnRlbF9maW5pX3dlZGdlKHN0cnVj dCBpbnRlbF93ZWRnZV9tZSAqdyk7Cj4gPiAgIAo+ID4gLSNkZWZpbmUgaTkxNV93ZWRnZV9vbl90 aW1lb3V0KFcsIERFViwgVElNRU9VVCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ ID4gLSAgICAgZm9yIChfX2k5MTVfaW5pdF93ZWRnZSgoVyksIChERVYpLCAoVElNRU9VVCksIF9f ZnVuY19fKTsgICAgICAgIFwKPiA+IC0gICAgICAgICAgKFcpLT5pOTE1OyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiAtICAgICAgICAgIF9faTkx NV9maW5pX3dlZGdlKChXKSkpCj4gPiArI2RlZmluZSBpbnRlbF93ZWRnZV9vbl90aW1lb3V0KFcs IEdULCBUSU1FT1VUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiArICAgICBm b3IgKF9faW50ZWxfaW5pdF93ZWRnZSgoVyksIChHVCksIChUSU1FT1VUKSwgX19mdW5jX18pOyAg ICAgICAgXAo+ID4gKyAgICAgICAgICAoVyktPmd0OyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ICsgICAgICAgICAgX19pbnRlbF9maW5pX3dl ZGdlKChXKSkpCj4gPiArCj4gPiArc3RhdGljIGlubGluZSBib29sIF9faW50ZWxfcmVzZXRfZmFp bGVkKGNvbnN0IHN0cnVjdCBpbnRlbF9yZXNldCAqcmVzZXQpCj4gPiArewo+ID4gKyAgICAgcmV0 dXJuIHVubGlrZWx5KHRlc3RfYml0KEk5MTVfV0VER0VELCAmcmVzZXQtPmZsYWdzKSk7Cj4gPiAr fQo+ID4gKwo+ID4gK2Jvb2wgaW50ZWxfaGFzX2dwdV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSk7Cj4gPiArYm9vbCBpbnRlbF9oYXNfcmVzZXRfZW5naW5lKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KTsKPiA+ICAgCj4gPiAgICNlbmRpZiAvKiBJOTE1X1JFU0VUX0gg Ki8KPiAKPiA8c25pcD4KPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9zZWxmdGVzdF9oYW5nY2hlY2suYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0 X2hhbmdjaGVjay5jCj4gPiBpbmRleCAyZDljYzNjZDFmMjcuLjhjYWFkMTk2ODNhMSAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2hhbmdjaGVjay5jCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9oYW5nY2hlY2suYwo+IAo+ ID4gQEAgLTQ0Miw3ICs0NDEsNyBAQCBzdGF0aWMgaW50IGlndF9yZXNldF9ub3Aodm9pZCAqYXJn KQo+ID4gICAKPiA+ICAgb3V0Ogo+ID4gICAgICAgbW9ja19maWxlX2ZyZWUoaTkxNSwgZmlsZSk7 Cj4gPiAtICAgICBpZiAoaTkxNV9yZXNldF9mYWlsZWQoaTkxNSkpCj4gPiArICAgICBpZiAoaW50 ZWxfZ3RfaXNfd2VkZ2VkKCZpOTE1LT5ndCkpCj4gCj4gJmk5MTUtPmd0IGlzIHVzZWQgNSB0aW1l cyBpbiBpZ3RfcmVzZXRfbm9wKCksIG1pZ2h0IGJlIHdvcnRoIGhhdmluZyBhIAo+IGxvY2FsIHZh cmlhYmxlLgo+IAo+ID4gICAgICAgICAgICAgICBlcnIgPSAtRUlPOwo+ID4gICAgICAgcmV0dXJu IGVycjsKPiA+ICAgfQo+IAo+IDxzbmlwPgo+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKPiA+IGluZGV4IGNlMWI2NTY4NTE1ZS4uY2Y1MTU1NjQ2OTI3IDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gCj4gPiBAQCAtMTA2MSwyMyArMTA2Miw2IEBA IHN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQg KnVudXNlZCkKPiA+ICAgICAgIHJldHVybiAwOwo+ID4gICB9Cj4gPiAgIAo+ID4gLXN0YXRpYyBp bnQgaTkxNV9yZXNldF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+IAo+ IFRoZSBmYWN0IHRoYXQgdGhpcyBpcyBnb2luZyBhd2F5IHNvdWxkIGJlIG1lbnRpb25lZCBpbiB0 aGUgY29tbWl0IG1lc3NhZ2UuCgpXaHk/IFdobyBjYXJlcz8gVGhvc2Ugd2hvIGRvIGNhcmUgc2hv dWxkIGtub3cgdGhlIGluZm9ybWF0aW9uIGlzIG5vdApnb2luZyBhd2F5IGFuZCBpcyBhdmFpbGFi bGUgZWxzZXdoZXJlLgoKPiA+IC17Cj4gPiAtICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7Cj4gPiAtICAgICBzdHJ1Y3QgaTkx NV9ncHVfZXJyb3IgKmVycm9yID0gJmRldl9wcml2LT5ncHVfZXJyb3I7Cj4gPiAtICAgICBzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gPiAtICAgICBlbnVtIGludGVsX2VuZ2luZV9p ZCBpZDsKPiA+IC0KPiA+IC0gICAgIHNlcV9wcmludGYobSwgImZ1bGwgZ3B1IHJlc2V0ID0gJXVc biIsIGk5MTVfcmVzZXRfY291bnQoZXJyb3IpKTsKPiA+IC0KPiA+IC0gICAgIGZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkgewo+ID4gLSAgICAgICAgICAgICBzZXFfcHJpbnRm KG0sICIlcyA9ICV1XG4iLCBlbmdpbmUtPm5hbWUsCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICAgaTkxNV9yZXNldF9lbmdpbmVfY291bnQoZXJyb3IsIGVuZ2luZSkpOwo+ID4gLSAgICAgfQo+ ID4gLQo+ID4gLSAgICAgcmV0dXJuIDA7Cj4gPiAtfQo+ID4gLQo+ID4gICBzdGF0aWMgaW50IGly b25sYWtlX2RycGNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCj4gPiAgIHsKPiA+ICAgICAgIHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gbm9kZV90b19pOTE1KG0tPnByaXZhdGUpOwo+ IAo+IDxzbmlwPgo+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gPiBpbmRleCBiNmYzYmFh NzRkYTQuLmNlYzNjZWE3ZDg2ZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiA+ IEBAIC04OTQsMTMgKzg5NCwxMyBAQCB2b2lkIGk5MTVfZ2VtX3J1bnRpbWVfc3VzcGVuZChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiA+ICAgICAgIH0KPiA+ICAgfQo+ID4gICAKPiA+ IC1zdGF0aWMgaW50IHdhaXRfZm9yX2VuZ2luZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCj4gPiArc3RhdGljIGludCB3YWl0X2Zvcl9lbmdpbmVzKHN0cnVjdCBpbnRlbF9ndCAqZ3Qp Cj4gPiAgIHsKPiA+IC0gICAgIGlmICh3YWl0X2ZvcihpbnRlbF9lbmdpbmVzX2FyZV9pZGxlKGk5 MTUpLCBJOTE1X0lETEVfRU5HSU5FU19USU1FT1VUKSkgewo+ID4gLSAgICAgICAgICAgICBkZXZf ZXJyKGk5MTUtPmRybS5kZXYsCj4gPiArICAgICBpZiAod2FpdF9mb3IoaW50ZWxfZW5naW5lc19h cmVfaWRsZShndCksIEk5MTVfSURMRV9FTkdJTkVTX1RJTUVPVVQpKSB7Cj4gPiArICAgICAgICAg ICAgIGRldl9lcnIoZ3QtPmk5MTUtPmRybS5kZXYsCj4gPiAgICAgICAgICAgICAgICAgICAgICAg IkZhaWxlZCB0byBpZGxlIGVuZ2luZXMsIGRlY2xhcmluZyB3ZWRnZWQhXG4iKTsKPiA+ICAgICAg ICAgICAgICAgR0VNX1RSQUNFX0RVTVAoKTsKPiA+IC0gICAgICAgICAgICAgaTkxNV9nZW1fc2V0 X3dlZGdlZChpOTE1KTsKPiA+ICsgICAgICAgICAgICAgaW50ZWxfZ3Rfc2V0X3dlZGdlZChndCk7 Cj4gPiAgICAgICAgICAgICAgIHJldHVybiAtRUlPOwo+ID4gICAgICAgfQo+ID4gICAKPiA+IEBA IC05NzEsNyArOTcxLDcgQEAgaW50IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUsCj4gCj4gSXMgaXQgdGltZSBmb3IgdGhpcyB0byBiZWNvbWUgaW50 ZWxfZ3Rfd2FpdF9mb3JfaWRsZT8gKGFzIGEgZm9sbG93IHVwKQoKTm8sIGl0IGlzIG5vdCB0aW1l IGZvciB0aGF0LiBTZWUgdGhlIHN0cnVjdF9tdXRleCBhbmQgdGhhdCB0aGUgb25seQpjYWxsZXIg aXMgZnJvbSBpOTE1X2dlbV9wbS5jPwoKVGhlIG5leHQgc3RlcCBoZXJlIHRvIHJlbW92ZSBzdHJ1 Y3RfbXV0ZXggaXMgdG8gbW92ZSB0aGlzIHRvIGl0ZXJhdGUKb3ZlciBndC0+dGltZWxpbmVzIGF0 IHdoaWNoIHBvaW50IHRoZSB3b3JrZXIgY2FuIGJlIG1vdmVkIG92ZXIgZnJvbSBnZW0KdG8gaW50 ZWxfZ3RfcG0uYyAoaW50ZWxfZ3RfcG1fd29ya2Vycy5jPykKCj4gPiAgICAgICAgICAgICAgIGxv Y2tkZXBfYXNzZXJ0X2hlbGQoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ID4gICAKPiA+IC0g ICAgICAgICAgICAgZXJyID0gd2FpdF9mb3JfZW5naW5lcyhpOTE1KTsKPiA+ICsgICAgICAgICAg ICAgZXJyID0gd2FpdF9mb3JfZW5naW5lcygmaTkxNS0+Z3QpOwo+ID4gICAgICAgICAgICAgICBp ZiAoZXJyKQo+ID4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcnI7Cj4gPiAgIAo+ID4g QEAgLTExNDksOCArMTE0OSw4IEBAIHZvaWQgaTkxNV9nZW1fc2FuaXRpemUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpCj4gPiAgICAgICAgKiBiYWNrIHRvIGRlZmF1bHRzLCByZWNvdmVy aW5nIGZyb20gd2hhdGV2ZXIgd2VkZ2VkIHN0YXRlIHdlIGxlZnQgaXQKPiA+ICAgICAgICAqIGlu IGFuZCBzbyB3b3J0aCB0cnlpbmcgdG8gdXNlIHRoZSBkZXZpY2Ugb25jZSBtb3JlLgo+ID4gICAg ICAgICovCj4gPiAtICAgICBpZiAoaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChpOTE1KSkKPiA+IC0g ICAgICAgICAgICAgaTkxNV9nZW1fdW5zZXRfd2VkZ2VkKGk5MTUpOwo+ID4gKyAgICAgaWYgKGlu dGVsX2d0X2lzX3dlZGdlZCgmaTkxNS0+Z3QpKQo+ID4gKyAgICAgICAgICAgICBpbnRlbF9ndF91 bnNldF93ZWRnZWQoJmk5MTUtPmd0KTsKPiAKPiBJIHdhcyB3b25kZXJpbmcgaWYgd2Ugc2hvdWxk IG1vdmUgdGhpcyBpbnNpZGUgdGhlIGludGVsX2d0X3Nhbml0aXplIGp1c3QgCj4gYmVsb3csIGJ1 dCB0aGVuIEkgcmVhbGl6ZWQgdGhhdCBpbnRlbF9ndF91bnNldF93ZWRnZWQgY2FsbHMgCj4gaW50 ZWxfZ3Rfc2FuaXRpemUgYXMgd2VsbCBzbyB0aGF0J3MgYSBubyAoZm9yIG5vdykuIEhvd2V2ZXIs IGl0IGlzIElNTyAKPiBzdGlsbCB3b3J0aCB0byBhdCBsZWFzdCBmbGlwIHRoZSBpOTE1X2dlbV9z YW5pdGl6ZSBmdW5jdGlvbiB0byB3b3JrIG9uIAo+IGludGVsX2d0IHNpbmNlIGFsIHRoZSBjYWxs cyBpbnNpZGUsIHJwbSBhc2lkZSwgY2FuIHVzZSB0aGUgZ3QuCgpJdCBpcyBzdGlsbCBpOTE1X2dl bSBzbyBzaG91bGQgdGFrZSBpdHMgZGV2aWNlLCB3aGljaCBpcyBjdXJyZW50bHkKZHJtX2k5MTVf cHJpdmF0ZS4gV2UgY2FuIGFuZCBzaG91bGQgbW92ZSBtb3JlIGludG8gaW50ZWxfZ3Rfc2FuaXRp emUuCgo+ID4gICAgICAgLyoqIE51bWJlciBvZiB0aW1lcyB0aGUgZGV2aWNlIGhhcyBiZWVuIHJl c2V0IChnbG9iYWwpICovCj4gPiAtICAgICB1MzIgcmVzZXRfY291bnQ7Cj4gPiArICAgICBhdG9t aWNfdCByZXNldF9jb3VudDsKPiA+ICAgCj4gPiAgICAgICAvKiogTnVtYmVyIG9mIHRpbWVzIGFu IGVuZ2luZSBoYXMgYmVlbiByZXNldCAqLwo+ID4gLSAgICAgdTMyIHJlc2V0X2VuZ2luZV9jb3Vu dFtJOTE1X05VTV9FTkdJTkVTXTsKPiA+IC0KPiA+IC0gICAgIHN0cnVjdCBtdXRleCB3ZWRnZV9t dXRleDsgLyogc2VyaWFsaXNlcyB3ZWRnaW5nL3Vud2VkZ2luZyAqLwo+ID4gLQo+ID4gLSAgICAg LyoqCj4gPiAtICAgICAgKiBXYWl0cXVldWUgdG8gc2lnbmFsIHdoZW4gYSBoYW5nIGlzIGRldGVj dGVkLiBVc2VkIHRvIGZvciB3YWl0ZXJzCj4gPiAtICAgICAgKiB0byByZWxlYXNlIHRoZSBzdHJ1 Y3RfbXV0ZXggZm9yIHRoZSByZXNldCB0byBwcm9jZWRlLgo+ID4gLSAgICAgICovCj4gPiAtICAg ICB3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0X3F1ZXVlOwo+ID4gLQo+ID4gLSAgICAgLyoqCj4gPiAt ICAgICAgKiBXYWl0cXVldWUgdG8gc2lnbmFsIHdoZW4gdGhlIHJlc2V0IGhhcyBjb21wbGV0ZWQu IFVzZWQgYnkgY2xpZW50cwo+ID4gLSAgICAgICogdGhhdCB3YWl0IGZvciBkZXZfcHJpdi0+bW0u d2VkZ2VkIHRvIHNldHRsZS4KPiA+IC0gICAgICAqLwo+ID4gLSAgICAgd2FpdF9xdWV1ZV9oZWFk X3QgcmVzZXRfcXVldWU7Cj4gPiAtCj4gPiAtICAgICBzdHJ1Y3Qgc3JjdV9zdHJ1Y3QgcmVzZXRf YmFja29mZl9zcmN1Owo+ID4gKyAgICAgYXRvbWljX3QgcmVzZXRfZW5naW5lX2NvdW50W0k5MTVf TlVNX0VOR0lORVNdOwo+IAo+IEknZCBhcmd1ZSB0aGF0IGJvdGggcmVzZXQgY291bnRzIHNob3Vs ZCBnbyBpbnNpZGUgdGhlIGludGVsX3Jlc2V0IAo+IHN0cnVjdHVyZSB1bmRlciBpbnRlbF9ndCBz aW5jZSB3ZSdyZSBjb3VudGluZyByZXNldHMgb2YgdGhlIEdUIGFuZCBpdHMgCj4gY29tcG9uZW50 cy4KCk5vLCB0aGV5IGFyZSBnbG9iYWwgY291bnRlcnMgYXMgdGhlIEdFTSBpbnRlcmZhY2UgdGhl eSBzZXJ2ZSBpcyBnbG9iYWwuCkknZCBidXkgYW4gYXJndW1lbnQgdG8gbW92ZSB0aGVtIGludG8g aTkxNS0+Z2VtLCBleGNlcHQgdGhhdCB3ZSBwb2tlCnRoZW0gZnJvbSBpbnNpZGUgZ3QvIHNvIGl0 IHNlZW1zIHBydWRlbnQgdG8gdXNlIGEgdGVydGlhcnkgc2hhcmVkCnN0cnVjdC4KCj4gPiAtc3Rh dGljIHZvaWQgX19pZ3Rfd2VkZ2VfbWUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ID4gLXsK PiA+IC0gICAgIHN0cnVjdCBpZ3Rfd2VkZ2VfbWUgKncgPSBjb250YWluZXJfb2Yod29yaywgdHlw ZW9mKCp3KSwgd29yay53b3JrKTsKPiA+IC0KPiA+IC0gICAgIHByX2VycigiJXMgdGltZWQgb3V0 LCBjYW5jZWxsaW5nIHRlc3QuXG4iLCB3LT5uYW1lKTsKPiA+IC0KPiA+IC0gICAgIEdFTV9UUkFD RSgiJXMgdGltZWQgb3V0LlxuIiwgdy0+bmFtZSk7Cj4gPiAtICAgICBHRU1fVFJBQ0VfRFVNUCgp Owo+IAo+IFRoZXNlIGR1bXBzIGFyZSBub3QgaW4gaW50ZWxfd2VkZ2VfbWUsIHdoaWNoIHJlcGxh Y2VkIHRoaXMgaW4gc2VsZnRlc3RzLiAKPiBTaG91bGQgd2UgYWRkIHRoZW0gdGhlcmUgb3IgYXJl IHRoZXkgbm90IG1lYW5pbmdmdWwgZW5vdWdoIGZvciB1cyB0byBjYXJlPwoKVGhleSBoYWQgYmVl biB1c2VmdWwsIGJ1dCBzZXRfd2VkZ2VkIGluY2x1ZGVzIGEgZHVtcCAtLSBob3dldmVyLCBvbmx5 IGlmIHRoZQplbmdpbmVzIGFyZSBub3QgaWRsZS4gRXF1YWxseSwgZm9yIG90aGVyIHVzZXJzIHdl IGRvIG5vdCB3YW50IHRvIGFsd2F5cwpkdW1wLiBJIGFtIGhhcHB5IHRvIHBsYXkgdGhpcyBieSBl YXIgYW5kIGFkZCBhIGZsYWcgbGF0ZXIgaWYgd2UgaGl0IGEKcXVpZXQgc2VsZnRlc3Qgd2VkZ2Ut bWUgYW5kIHdlIGFyZSBiYWZmbGVkLiAoQWx0aG91Z2ggSSBpbWFnaW5lIHRoYXQgdGhlCmZpcnN0 IHN0ZXAgdGhlcmUgd2lsbCBtb3JlIGxvY2FsaXNlZCBkZWJ1Zy4pCi1DaHJpcwpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=