From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 18/46] drm/i915: Replace global_seqno with a hangcheck heartbeat seqno Date: Mon, 11 Feb 2019 12:40:07 +0000 Message-ID: References: <20190206130356.18771-1-chris@chris-wilson.co.uk> <20190206130356.18771-19-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3120D6E48E for ; Mon, 11 Feb 2019 12:39:59 +0000 (UTC) In-Reply-To: <20190206130356.18771-19-chris@chris-wilson.co.uk> 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: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA2LzAyLzIwMTkgMTM6MDMsIENocmlzIFdpbHNvbiB3cm90ZToKPiBUbyBkZXRlcm1pbmUg d2hldGhlciBhbiBlbmdpbmUgaGFzICdzdHVjaycsIHdlIHNpbXBseSBjaGVjayB3aGV0aGVyIG9y Cj4gbm90IGlzIHN0aWxsIG9uIHRoZSBzYW1lIHNlcW5vIGZvciBzZXZlcmFsIHNlY29uZHMuIFRv IGtlZXAgdGhpcyBzaW1wbGUKPiBtZWNoYW5pc20gaW50YWN0IG92ZXIgdGhlIGxvc3Mgb2YgYSBn bG9iYWwgc2Vxbm8sIHdlIGNhbiBzaW1wbHkgYWRkIGEKPiBuZXcgZ2xvYmFsIGhlYXJ0YmVhdCBz ZXFubyBpbnN0ZWFkLiBBcyB3ZSBjYW5ub3Qga25vdyB0aGUgc2VxdWVuY2UgaW4KPiB3aGljaCBy ZXF1ZXN0cyB3aWxsIHRoZW4gYmUgY29tcGxldGVkLCB3ZSB1c2UgYSBwcmltaXRpdmUgcmFuZG9t IG51bWJlcgo+IGdlbmVyYXRvciBpbnN0ZWFkICh3aXRoIGEgY3ljbGUgbG9uZyBlbm91Z2ggdG8g bm90IG1hdHRlciBvdmVyIGFuCj4gaW50ZXJ2YWwgb2YgYSBmZXcgdGhvdXNhbmQgcmVxdWVzdHMg YmV0d2VlbiBoYW5nY2hlY2sgc2FtcGxlcykuCgpXZSBjb3VsZG4ndCBrZWVwIHRoZSBnbG9iYWwg c2Vxbm8ganVzdCBmb3IgaGFuZ2NoZWNrIHB1cG9zZXM/IEkgbWVhbiBhcyAKbG9uZyBhcyBpdCBp cyB1bmlxdWUsIHdoaWNoIHdvdWxkIGJlIGd1YXJhbnRlZWQgYnkgb2J0YWluaW5nIGFuIAppbmNy ZW1lbnQgb24gZXZlcnkgc3VibWlzc2lvbiB0byBodyBhbmQgc3RvcmluZyBpdCBpbiBhdG9taWNf dCAKaTkxNS0+aGFuZ2NoZWNrX2dsb2JhbF9zZXFubyAvIHJxLT5oYW5nY2hlY2tfZ2xvYmFsX3Nl cW5vLCBoYW5nY2hlY2sgCmRvZXMgbm90IGNhcmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV4ZWN1dGlv biwgbm8/CgpSZWdhcmRzLAoKVHZydGtvCgoKPiBUaGUgYWx0ZXJuYXRpdmUgdG8gdXNpbmcgYSBk ZWRpY2F0ZWQgc2Vxbm8gb24gZXZlcnkgcmVxdWVzdCBpcyB0byBpc3N1ZQo+IGEgaGVhcnRiZWF0 IHJlcXVlc3QgYW5kIHF1ZXJ5IGl0cyBwcm9ncmVzcyB0aHJvdWdoIHRoZSBzeXN0ZW0uIFNhZGx5 Cj4gdGhpcyByZXF1aXJlcyB1cyB0byByZWR1Y2Ugc3RydWN0X211dGV4IHNvIHRoYXQgd2UgY2Fu IGlzc3VlIHJlcXVlc3RzCj4gd2l0aG91dCByZXF1aXJpbmcgdGhhdCBia2wuCj4gCj4gU2lnbmVk LW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgfCAgNyArKy0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgIHwgIDUgKystLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMgIHwgIDYgKystLS0KPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8IDE1ICsrKysrKysrKysrCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfCAzNiArKysrKysrKysrKysr KysrKysrKysrKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgg fCAxOSArKysrKysrKysrKystCj4gICA2IGZpbGVzIGNoYW5nZWQsIDc3IGluc2VydGlvbnMoKyks IDExIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5k ZXggYWY1M2EyZDA3ZjZiLi44NDZiZDBkZTNjZmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYwo+IEBAIC0xMjk1LDcgKzEyOTUsNyBAQCBzdGF0aWMgaW50IGk5MTVfaGFuZ2No ZWNrX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCj4gICAJd2l0aF9pbnRl bF9ydW50aW1lX3BtKGRldl9wcml2LCB3YWtlcmVmKSB7Cj4gICAJCWZvcl9lYWNoX2VuZ2luZShl bmdpbmUsIGRldl9wcml2LCBpZCkgewo+ICAgCQkJYWN0aGRbaWRdID0gaW50ZWxfZW5naW5lX2dl dF9hY3RpdmVfaGVhZChlbmdpbmUpOwo+IC0JCQlzZXFub1tpZF0gPSBpbnRlbF9lbmdpbmVfZ2V0 X3NlcW5vKGVuZ2luZSk7Cj4gKwkJCXNlcW5vW2lkXSA9IGludGVsX2VuZ2luZV9nZXRfaGFuZ2No ZWNrX3NlcW5vKGVuZ2luZSk7Cj4gICAJCX0KPiAgIAo+ICAgCQlpbnRlbF9lbmdpbmVfZ2V0X2lu c3Rkb25lKGRldl9wcml2LT5lbmdpbmVbUkNTXSwgJmluc3Rkb25lKTsKPiBAQCAtMTMxNSw4ICsx MzE1LDkgQEAgc3RhdGljIGludCBpOTE1X2hhbmdjaGVja19pbmZvKHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqdW51c2VkKQo+ICAgCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBp ZCkgewo+ICAgCQlzZXFfcHJpbnRmKG0sICIlczpcbiIsIGVuZ2luZS0+bmFtZSk7Cj4gICAJCXNl cV9wcmludGYobSwgIlx0c2Vxbm8gPSAleCBbY3VycmVudCAleCwgbGFzdCAleF0sICVkbXMgYWdv XG4iLAo+IC0JCQkgICBlbmdpbmUtPmhhbmdjaGVjay5zZXFubywgc2Vxbm9baWRdLAo+IC0JCQkg ICBpbnRlbF9lbmdpbmVfbGFzdF9zdWJtaXQoZW5naW5lKSwKPiArCQkJICAgZW5naW5lLT5oYW5n Y2hlY2subGFzdF9zZXFubywKPiArCQkJICAgc2Vxbm9baWRdLAo+ICsJCQkgICBlbmdpbmUtPmhh bmdjaGVjay5uZXh0X3NlcW5vLAo+ICAgCQkJICAgamlmZmllc190b19tc2VjcyhqaWZmaWVzIC0K PiAgIAkJCQkJICAgIGVuZ2luZS0+aGFuZ2NoZWNrLmFjdGlvbl90aW1lc3RhbXApKTsKPiAgIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gaW5kZXggNTdjZmM0YzU1MWM5 Li5lMWU1NGI3NDQ4YjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZW5naW5lX2NzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3Mu Ywo+IEBAIC0xNTM4LDEwICsxNTM4LDExIEBAIHZvaWQgaW50ZWxfZW5naW5lX2R1bXAoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICAgCWlmIChpOTE1X3Rlcm1pbmFsbHlfd2VkZ2Vk KCZlbmdpbmUtPmk5MTUtPmdwdV9lcnJvcikpCj4gICAJCWRybV9wcmludGYobSwgIioqKiBXRURH RUQgKioqXG4iKTsKPiAgIAo+IC0JZHJtX3ByaW50ZihtLCAiXHRjdXJyZW50IHNlcW5vICV4LCBs YXN0ICV4LCBoYW5nY2hlY2sgJXggWyVkIG1zXVxuIiwKPiArCWRybV9wcmludGYobSwgIlx0Y3Vy cmVudCBzZXFubyAleCwgbGFzdCAleCwgaGFuZ2NoZWNrICV4LyV4IFslZCBtc11cbiIsCj4gICAJ CSAgIGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKSwKPiAgIAkJICAgaW50ZWxfZW5naW5l X2xhc3Rfc3VibWl0KGVuZ2luZSksCj4gLQkJICAgZW5naW5lLT5oYW5nY2hlY2suc2Vxbm8sCj4g KwkJICAgZW5naW5lLT5oYW5nY2hlY2subGFzdF9zZXFubywKPiArCQkgICBlbmdpbmUtPmhhbmdj aGVjay5uZXh0X3NlcW5vLAo+ICAgCQkgICBqaWZmaWVzX3RvX21zZWNzKGppZmZpZXMgLSBlbmdp bmUtPmhhbmdjaGVjay5hY3Rpb25fdGltZXN0YW1wKSk7Cj4gICAJZHJtX3ByaW50ZihtLCAiXHRS ZXNldCBjb3VudDogJWQgKGdsb2JhbCAlZClcbiIsCj4gICAJCSAgIGk5MTVfcmVzZXRfZW5naW5l X2NvdW50KGVycm9yLCBlbmdpbmUpLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9oYW5nY2hlY2suYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVj ay5jCj4gaW5kZXggYTIxOWM3OTZlNTZkLi5lMDRiMjU2MDM2OWUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYwo+IEBAIC0xMzMsMjEgKzEzMywyMSBAQCBzdGF0aWMg dm9pZCBoYW5nY2hlY2tfbG9hZF9zYW1wbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l LAo+ICAgCQkJCSAgc3RydWN0IGhhbmdjaGVjayAqaGMpCj4gICB7Cj4gICAJaGMtPmFjdGhkID0g aW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwo+IC0JaGMtPnNlcW5vID0gaW50 ZWxfZW5naW5lX2dldF9zZXFubyhlbmdpbmUpOwo+ICsJaGMtPnNlcW5vID0gaW50ZWxfZW5naW5l X2dldF9oYW5nY2hlY2tfc2Vxbm8oZW5naW5lKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQg aGFuZ2NoZWNrX3N0b3JlX3NhbXBsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4g ICAJCQkJICAgY29uc3Qgc3RydWN0IGhhbmdjaGVjayAqaGMpCj4gICB7Cj4gICAJZW5naW5lLT5o YW5nY2hlY2suYWN0aGQgPSBoYy0+YWN0aGQ7Cj4gLQllbmdpbmUtPmhhbmdjaGVjay5zZXFubyA9 IGhjLT5zZXFubzsKPiArCWVuZ2luZS0+aGFuZ2NoZWNrLmxhc3Rfc2Vxbm8gPSBoYy0+c2Vxbm87 Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBlbnVtIGludGVsX2VuZ2luZV9oYW5nY2hlY2tfYWN0aW9u Cj4gICBoYW5nY2hlY2tfZ2V0X2FjdGlvbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs Cj4gICAJCSAgICAgY29uc3Qgc3RydWN0IGhhbmdjaGVjayAqaGMpCj4gICB7Cj4gLQlpZiAoZW5n aW5lLT5oYW5nY2hlY2suc2Vxbm8gIT0gaGMtPnNlcW5vKQo+ICsJaWYgKGVuZ2luZS0+aGFuZ2No ZWNrLmxhc3Rfc2Vxbm8gIT0gaGMtPnNlcW5vKQo+ICAgCQlyZXR1cm4gRU5HSU5FX0FDVElWRV9T RVFOTzsKPiAgIAo+ICAgCWlmIChpbnRlbF9lbmdpbmVfaXNfaWRsZShlbmdpbmUpKQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggZDEwNTE4NzA3MGQ0Li4zNDJkM2E5MWJlMDMgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC0xODAsNiArMTgwLDEyIEBAIHN0YXRp YyBpbmxpbmUgdTMyIGludGVsX2h3c19zZXFub19hZGRyZXNzKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKPiAgIAkJSTkxNV9HRU1fSFdTX0lOREVYX0FERFIpOwo+ICAgfQo+ICAgCj4g K3N0YXRpYyBpbmxpbmUgdTMyIGludGVsX2h3c19oYW5nY2hlY2tfYWRkcmVzcyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3sKPiArCXJldHVybiAoaTkxNV9nZ3R0X29mZnNldChl bmdpbmUtPnN0YXR1c19wYWdlLnZtYSkgKwo+ICsJCUk5MTVfR0VNX0hXU19IQU5HQ0hFQ0tfQURE Uik7Cj4gK30KPiArCj4gICBzdGF0aWMgaW5saW5lIHN0cnVjdCBpOTE1X3ByaW9saXN0ICp0b19w cmlvbGlzdChzdHJ1Y3QgcmJfbm9kZSAqcmIpCj4gICB7Cj4gICAJcmV0dXJuIHJiX2VudHJ5KHJi LCBzdHJ1Y3QgaTkxNV9wcmlvbGlzdCwgbm9kZSk7Cj4gQEAgLTIyMzUsNiArMjI0MSwxMCBAQCBz dGF0aWMgdTMyICpnZW44X2VtaXRfZmluaV9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3Qg KnJlcXVlc3QsIHUzMiAqY3MpCj4gICAJCQkJICByZXF1ZXN0LT5mZW5jZS5zZXFubywKPiAgIAkJ CQkgIHJlcXVlc3QtPnRpbWVsaW5lLT5od3NwX29mZnNldCk7Cj4gICAKPiArCWNzID0gZ2VuOF9l bWl0X2dndHRfd3JpdGUoY3MsCj4gKwkJCQkgIGludGVsX2VuZ2luZV9uZXh0X2hhbmdjaGVja19z ZXFubyhyZXF1ZXN0LT5lbmdpbmUpLAo+ICsJCQkJICBpbnRlbF9od3NfaGFuZ2NoZWNrX2FkZHJl c3MocmVxdWVzdC0+ZW5naW5lKSk7Cj4gKwo+ICAgCWNzID0gZ2VuOF9lbWl0X2dndHRfd3JpdGUo Y3MsCj4gICAJCQkJICByZXF1ZXN0LT5nbG9iYWxfc2Vxbm8sCj4gICAJCQkJICBpbnRlbF9od3Nf c2Vxbm9fYWRkcmVzcyhyZXF1ZXN0LT5lbmdpbmUpKTsKPiBAQCAtMjI1OSw2ICsyMjY5LDExIEBA IHN0YXRpYyB1MzIgKmdlbjhfZW1pdF9maW5pX2JyZWFkY3J1bWJfcmNzKHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJlcXVlc3QsIHUzMiAqY3MpCj4gICAJCQkJICAgICAgUElQRV9DT05UUk9MX0ZMVVNI X0VOQUJMRSB8Cj4gICAJCQkJICAgICAgUElQRV9DT05UUk9MX0NTX1NUQUxMKTsKPiAgIAo+ICsJ Y3MgPSBnZW44X2VtaXRfZ2d0dF93cml0ZV9yY3MoY3MsCj4gKwkJCQkgICAgICBpbnRlbF9lbmdp bmVfbmV4dF9oYW5nY2hlY2tfc2Vxbm8ocmVxdWVzdC0+ZW5naW5lKSwKPiArCQkJCSAgICAgIGlu dGVsX2h3c19oYW5nY2hlY2tfYWRkcmVzcyhyZXF1ZXN0LT5lbmdpbmUpLAo+ICsJCQkJICAgICAg UElQRV9DT05UUk9MX0NTX1NUQUxMKTsKPiArCj4gICAJY3MgPSBnZW44X2VtaXRfZ2d0dF93cml0 ZV9yY3MoY3MsCj4gICAJCQkJICAgICAgcmVxdWVzdC0+Z2xvYmFsX3NlcW5vLAo+ICAgCQkJCSAg ICAgIGludGVsX2h3c19zZXFub19hZGRyZXNzKHJlcXVlc3QtPmVuZ2luZSksCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IGluZGV4IDdmODQxZGJhODdiMy4uODcwMTg0 YmJkMTY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IEBA IC00Myw2ICs0MywxMiBAQAo+ICAgICovCj4gICAjZGVmaW5lIExFR0FDWV9SRVFVRVNUX1NJWkUg MjAwCj4gICAKPiArc3RhdGljIGlubGluZSB1MzIgaHdzX2hhbmdjaGVja19hZGRyZXNzKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArewo+ICsJcmV0dXJuIChpOTE1X2dndHRfb2Zm c2V0KGVuZ2luZS0+c3RhdHVzX3BhZ2Uudm1hKSArCj4gKwkJSTkxNV9HRU1fSFdTX0hBTkdDSEVD S19BRERSKTsKPiArfQo+ICsKPiAgIHN0YXRpYyBpbmxpbmUgdTMyIGludGVsX2h3c19zZXFub19h ZGRyZXNzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAgIAlyZXR1cm4g KGk5MTVfZ2d0dF9vZmZzZXQoZW5naW5lLT5zdGF0dXNfcGFnZS52bWEpICsKPiBAQCAtMzE2LDYg KzMyMiwxMSBAQCBzdGF0aWMgdTMyICpnZW42X3Jjc19lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3MpCj4gICAJKmNzKysgPSBycS0+dGltZWxpbmUtPmh3c3Bf b2Zmc2V0IHwgUElQRV9DT05UUk9MX0dMT0JBTF9HVFQ7Cj4gICAJKmNzKysgPSBycS0+ZmVuY2Uu c2Vxbm87Cj4gICAKPiArCSpjcysrID0gR0ZYX09QX1BJUEVfQ09OVFJPTCg0KTsKPiArCSpjcysr ID0gUElQRV9DT05UUk9MX1FXX1dSSVRFOwo+ICsJKmNzKysgPSBod3NfaGFuZ2NoZWNrX2FkZHJl c3MocnEtPmVuZ2luZSkgfCBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVDsKPiArCSpjcysrID0gaW50 ZWxfZW5naW5lX25leHRfaGFuZ2NoZWNrX3NlcW5vKHJxLT5lbmdpbmUpOwo+ICsKPiAgIAkqY3Mr KyA9IEdGWF9PUF9QSVBFX0NPTlRST0woNCk7Cj4gICAJKmNzKysgPSBQSVBFX0NPTlRST0xfUVdf V1JJVEUgfCBQSVBFX0NPTlRST0xfQ1NfU1RBTEw7Cj4gICAJKmNzKysgPSBpbnRlbF9od3Nfc2Vx bm9fYWRkcmVzcyhycS0+ZW5naW5lKSB8IFBJUEVfQ09OVFJPTF9HTE9CQUxfR1RUOwo+IEBAIC00 MjIsNiArNDMzLDExIEBAIHN0YXRpYyB1MzIgKmdlbjdfcmNzX2VtaXRfYnJlYWRjcnVtYihzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyICpjcykKPiAgIAkqY3MrKyA9IHJxLT50aW1lbGluZS0+ aHdzcF9vZmZzZXQ7Cj4gICAJKmNzKysgPSBycS0+ZmVuY2Uuc2Vxbm87Cj4gICAKPiArCSpjcysr ID0gR0ZYX09QX1BJUEVfQ09OVFJPTCg0KTsKPiArCSpjcysrID0gUElQRV9DT05UUk9MX1FXX1dS SVRFIHwgUElQRV9DT05UUk9MX0dMT0JBTF9HVFRfSVZCOwo+ICsJKmNzKysgPSBod3NfaGFuZ2No ZWNrX2FkZHJlc3MocnEtPmVuZ2luZSk7Cj4gKwkqY3MrKyA9IGludGVsX2VuZ2luZV9uZXh0X2hh bmdjaGVja19zZXFubyhycS0+ZW5naW5lKTsKPiArCj4gICAJKmNzKysgPSBHRlhfT1BfUElQRV9D T05UUk9MKDQpOwo+ICAgCSpjcysrID0gKFBJUEVfQ09OVFJPTF9RV19XUklURSB8Cj4gICAJCSBQ SVBFX0NPTlRST0xfR0xPQkFMX0dUVF9JVkIgfAo+IEBAIC00NDcsMTIgKzQ2MywxNSBAQCBzdGF0 aWMgdTMyICpnZW42X3hjc19lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEs IHUzMiAqY3MpCj4gICAJKmNzKysgPSBJOTE1X0dFTV9IV1NfU0VRTk9fQUREUiB8IE1JX0ZMVVNI X0RXX1VTRV9HVFQ7Cj4gICAJKmNzKysgPSBycS0+ZmVuY2Uuc2Vxbm87Cj4gICAKPiArCSpjcysr ID0gTUlfRkxVU0hfRFcgfCBNSV9GTFVTSF9EV19PUF9TVE9SRURXIHwgTUlfRkxVU0hfRFdfU1RP UkVfSU5ERVg7Cj4gKwkqY3MrKyA9IEk5MTVfR0VNX0hXU19IQU5HQ0hFQ0tfQUREUiB8IE1JX0ZM VVNIX0RXX1VTRV9HVFQ7Cj4gKwkqY3MrKyA9IGludGVsX2VuZ2luZV9uZXh0X2hhbmdjaGVja19z ZXFubyhycS0+ZW5naW5lKTsKPiArCj4gICAJKmNzKysgPSBNSV9GTFVTSF9EVyB8IE1JX0ZMVVNI X0RXX09QX1NUT1JFRFcgfCBNSV9GTFVTSF9EV19TVE9SRV9JTkRFWDsKPiAgIAkqY3MrKyA9IEk5 MTVfR0VNX0hXU19JTkRFWF9BRERSIHwgTUlfRkxVU0hfRFdfVVNFX0dUVDsKPiAgIAkqY3MrKyA9 IHJxLT5nbG9iYWxfc2Vxbm87Cj4gICAKPiAgIAkqY3MrKyA9IE1JX1VTRVJfSU5URVJSVVBUOwo+ IC0JKmNzKysgPSBNSV9OT09QOwo+ICAgCj4gICAJcnEtPnRhaWwgPSBpbnRlbF9yaW5nX29mZnNl dChycSwgY3MpOwo+ICAgCWFzc2VydF9yaW5nX3RhaWxfdmFsaWQocnEtPnJpbmcsIHJxLT50YWls KTsKPiBAQCAtNDcyLDYgKzQ5MSwxMCBAQCBzdGF0aWMgdTMyICpnZW43X3hjc19lbWl0X2JyZWFk Y3J1bWIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3MpCj4gICAJKmNzKysgPSBJOTE1 X0dFTV9IV1NfU0VRTk9fQUREUiB8IE1JX0ZMVVNIX0RXX1VTRV9HVFQ7Cj4gICAJKmNzKysgPSBy cS0+ZmVuY2Uuc2Vxbm87Cj4gICAKPiArCSpjcysrID0gTUlfRkxVU0hfRFcgfCBNSV9GTFVTSF9E V19PUF9TVE9SRURXIHwgTUlfRkxVU0hfRFdfU1RPUkVfSU5ERVg7Cj4gKwkqY3MrKyA9IEk5MTVf R0VNX0hXU19IQU5HQ0hFQ0tfQUREUiB8IE1JX0ZMVVNIX0RXX1VTRV9HVFQ7Cj4gKwkqY3MrKyA9 IGludGVsX2VuZ2luZV9uZXh0X2hhbmdjaGVja19zZXFubyhycS0+ZW5naW5lKTsKPiArCj4gICAJ KmNzKysgPSBNSV9GTFVTSF9EVyB8IE1JX0ZMVVNIX0RXX09QX1NUT1JFRFcgfCBNSV9GTFVTSF9E V19TVE9SRV9JTkRFWDsKPiAgIAkqY3MrKyA9IEk5MTVfR0VNX0hXU19JTkRFWF9BRERSIHwgTUlf RkxVU0hfRFdfVVNFX0dUVDsKPiAgIAkqY3MrKyA9IHJxLT5nbG9iYWxfc2Vxbm87Cj4gQEAgLTQ4 Nyw2ICs1MTAsNyBAQCBzdGF0aWMgdTMyICpnZW43X3hjc19lbWl0X2JyZWFkY3J1bWIoc3RydWN0 IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3MpCj4gICAJKmNzKysgPSAwOwo+ICAgCj4gICAJKmNz KysgPSBNSV9VU0VSX0lOVEVSUlVQVDsKPiArCSpjcysrID0gTUlfTk9PUDsKPiAgIAo+ICAgCXJx LT50YWlsID0gaW50ZWxfcmluZ19vZmZzZXQocnEsIGNzKTsKPiAgIAlhc3NlcnRfcmluZ190YWls X3ZhbGlkKHJxLT5yaW5nLCBycS0+dGFpbCk7Cj4gQEAgLTkzMCwxMSArOTU0LDE2IEBAIHN0YXRp YyB1MzIgKmk5eHhfZW1pdF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIg KmNzKQo+ICAgCSpjcysrID0gSTkxNV9HRU1fSFdTX1NFUU5PX0FERFI7Cj4gICAJKmNzKysgPSBy cS0+ZmVuY2Uuc2Vxbm87Cj4gICAKPiArCSpjcysrID0gTUlfU1RPUkVfRFdPUkRfSU5ERVg7Cj4g KwkqY3MrKyA9IEk5MTVfR0VNX0hXU19IQU5HQ0hFQ0tfQUREUjsKPiArCSpjcysrID0gaW50ZWxf ZW5naW5lX25leHRfaGFuZ2NoZWNrX3NlcW5vKHJxLT5lbmdpbmUpOwo+ICsKPiAgIAkqY3MrKyA9 IE1JX1NUT1JFX0RXT1JEX0lOREVYOwo+ICAgCSpjcysrID0gSTkxNV9HRU1fSFdTX0lOREVYX0FE RFI7Cj4gICAJKmNzKysgPSBycS0+Z2xvYmFsX3NlcW5vOwo+ICAgCj4gICAJKmNzKysgPSBNSV9V U0VSX0lOVEVSUlVQVDsKPiArCSpjcysrID0gTUlfTk9PUDsKPiAgIAo+ICAgCXJxLT50YWlsID0g aW50ZWxfcmluZ19vZmZzZXQocnEsIGNzKTsKPiAgIAlhc3NlcnRfcmluZ190YWlsX3ZhbGlkKHJx LT5yaW5nLCBycS0+dGFpbCk7Cj4gQEAgLTk1Niw2ICs5ODUsMTAgQEAgc3RhdGljIHUzMiAqZ2Vu NV9lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3MpCj4gICAJ KmNzKysgPSBJOTE1X0dFTV9IV1NfU0VRTk9fQUREUjsKPiAgIAkqY3MrKyA9IHJxLT5mZW5jZS5z ZXFubzsKPiAgIAo+ICsJKmNzKysgPSBNSV9TVE9SRV9EV09SRF9JTkRFWDsKPiArCSpjcysrID0g STkxNV9HRU1fSFdTX0hBTkdDSEVDS19BRERSOwo+ICsJKmNzKysgPSBpbnRlbF9lbmdpbmVfbmV4 dF9oYW5nY2hlY2tfc2Vxbm8ocnEtPmVuZ2luZSk7Cj4gKwo+ICAgCUJVSUxEX0JVR19PTihHRU41 X1dBX1NUT1JFUyA8IDEpOwo+ICAgCWZvciAoaSA9IDA7IGkgPCBHRU41X1dBX1NUT1JFUzsgaSsr KSB7Cj4gICAJCSpjcysrID0gTUlfU1RPUkVfRFdPUkRfSU5ERVg7Cj4gQEAgLTk2NCw3ICs5OTcs NiBAQCBzdGF0aWMgdTMyICpnZW41X2VtaXRfYnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpycSwgdTMyICpjcykKPiAgIAl9Cj4gICAKPiAgIAkqY3MrKyA9IE1JX1VTRVJfSU5URVJSVVBU Owo+IC0JKmNzKysgPSBNSV9OT09QOwo+ICAgCj4gICAJcnEtPnRhaWwgPSBpbnRlbF9yaW5nX29m ZnNldChycSwgY3MpOwo+ICAgCWFzc2VydF9yaW5nX3RhaWxfdmFsaWQocnEtPnJpbmcsIHJxLT50 YWlsKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gaW5kZXggNDkz YTcyZWQwMWFmLi5iMzBjMzdhYzU1YTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5oCj4gQEAgLTYsNiArNiw3IEBACj4gICAKPiAgICNpbmNsdWRlIDxsaW51eC9o YXNodGFibGUuaD4KPiAgICNpbmNsdWRlIDxsaW51eC9pcnFfd29yay5oPgo+ICsjaW5jbHVkZSA8 bGludXgvcmFuZG9tLmg+Cj4gICAjaW5jbHVkZSA8bGludXgvc2VxbG9jay5oPgo+ICAgCj4gICAj aW5jbHVkZSAiaTkxNV9nZW1fYmF0Y2hfcG9vbC5oIgo+IEBAIC0xMTksNyArMTIwLDggQEAgc3Ry dWN0IGludGVsX2luc3Rkb25lIHsKPiAgIAo+ICAgc3RydWN0IGludGVsX2VuZ2luZV9oYW5nY2hl Y2sgewo+ICAgCXU2NCBhY3RoZDsKPiAtCXUzMiBzZXFubzsKPiArCXUzMiBsYXN0X3NlcW5vOwo+ ICsJdTMyIG5leHRfc2Vxbm87Cj4gICAJdW5zaWduZWQgbG9uZyBhY3Rpb25fdGltZXN0YW1wOwo+ ICAgCXN0cnVjdCBpbnRlbF9pbnN0ZG9uZSBpbnN0ZG9uZTsKPiAgIH07Cj4gQEAgLTcxOCw2ICs3 MjAsOCBAQCBpbnRlbF93cml0ZV9zdGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsIGludCByZWcsIHUzMiB2YWx1ZSkKPiAgICNkZWZpbmUgSTkxNV9HRU1fSFdTX0lOREVY X0FERFIJCShJOTE1X0dFTV9IV1NfSU5ERVggKiBzaXplb2YodTMyKSkKPiAgICNkZWZpbmUgSTkx NV9HRU1fSFdTX1BSRUVNUFQJCTB4MzIKPiAgICNkZWZpbmUgSTkxNV9HRU1fSFdTX1BSRUVNUFRf QUREUgkoSTkxNV9HRU1fSFdTX1BSRUVNUFQgKiBzaXplb2YodTMyKSkKPiArI2RlZmluZSBJOTE1 X0dFTV9IV1NfSEFOR0NIRUNLCQkweDM0Cj4gKyNkZWZpbmUgSTkxNV9HRU1fSFdTX0hBTkdDSEVD S19BRERSCShJOTE1X0dFTV9IV1NfSEFOR0NIRUNLICogc2l6ZW9mKHUzMikpCj4gICAjZGVmaW5l IEk5MTVfR0VNX0hXU19TRVFOTwkJMHg0MAo+ICAgI2RlZmluZSBJOTE1X0dFTV9IV1NfU0VRTk9f QUREUgkJKEk5MTVfR0VNX0hXU19TRVFOTyAqIHNpemVvZih1MzIpKQo+ICAgI2RlZmluZSBJOTE1 X0dFTV9IV1NfU0NSQVRDSAkJMHg4MAo+IEBAIC0xMDc4LDQgKzEwODIsMTcgQEAgc3RhdGljIGlu bGluZSBib29sIGluamVjdF9wcmVlbXB0X2hhbmcoc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlz dHMgKmV4ZWNsaXN0cykKPiAgIAo+ICAgI2VuZGlmCj4gICAKPiArc3RhdGljIGlubGluZSB1MzIK PiAraW50ZWxfZW5naW5lX25leHRfaGFuZ2NoZWNrX3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKPiArewo+ICsJcmV0dXJuIGVuZ2luZS0+aGFuZ2NoZWNrLm5leHRfc2Vxbm8g PQo+ICsJCW5leHRfcHNldWRvX3JhbmRvbTMyKGVuZ2luZS0+aGFuZ2NoZWNrLm5leHRfc2Vxbm8p Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHUzMgo+ICtpbnRlbF9lbmdpbmVfZ2V0X2hhbmdj aGVja19zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3sKPiArCXJldHVy biBpbnRlbF9yZWFkX3N0YXR1c19wYWdlKGVuZ2luZSwgSTkxNV9HRU1fSFdTX0hBTkdDSEVDSyk7 Cj4gK30KPiArCj4gICAjZW5kaWYgLyogX0lOVEVMX1JJTkdCVUZGRVJfSF8gKi8KPiAKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==