From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kumar Valsan, Prathap" Subject: Re: [PATCH] drm/i915/selftests: Add coverage of mocs registers Date: Wed, 23 Oct 2019 17:03:40 -0400 Message-ID: <20191023210340.GP3257@intel.com> References: <20191022115126.18746-4-chris@chris-wilson.co.uk> <20191022115705.4744-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id C5B266EB8C for ; Wed, 23 Oct 2019 20:46:28 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20191022115705.4744-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMjIsIDIwMTkgYXQgMTI6NTc6MDVQTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IFByb2JlIHRoZSBtb2NzIHJlZ2lzdGVycyBmb3IgbmV3IGNvbnRleHRzIGFuZCBhY3Jv c3MgR1BVIHJlc2V0cy4gU2ltaWxhcgo+IHRvIGludGVsX3dvcmthcm91bmRzLCB3ZSBoYXZlIHRh YmxlcyBvZiB3aGF0IHJlZ2lzdGVyIHZhbHVlcyB3ZSBleHBlY3QKPiB0byBzZWUsIHNvIHZlcmlm eSB0aGF0IHVzZXIgY29udGV4dHMgYXJlIGFmZmVjdGVkIGJ5IHRoZW0uIEluIHRoZQo+IGZ1dHVy ZSwgd2Ugc2hvdWxkIGFkZCB0ZXN0cyBzaW1pbGFyIHRvIGludGVsX3NzZXUgdG8gY292ZXIgZHlu YW1pYwo+IHJlY29uZmlndXJhdGlvbnMuCj4gCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IFByYXRoYXAgS3VtYXIgVmFsc2FuIDxw cmF0aGFwLmt1bWFyLnZhbHNhbkBpbnRlbC5jb20+Cj4gQ2M6IE1pa2EgS3VvcHBhbGEgPG1pa2Eu a3VvcHBhbGFAbGludXguaW50ZWwuY29tPgoKcy9mb3JfZWFjaF9lbmdpbmUvZm9yX2VhY2hfdWFi aV9lbmdpbmUgPwoKT3RoZXJ3aXNlCgpSZXZpZXdlZC1ieTogUHJhdGhhcCBLdW1hciBWYWxzYW4g PHByYXRoYXAua3VtYXIudmFsc2FuQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfbW9jcy5jICAgICAgICAgIHwgICA0ICsKPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Qvc2VsZnRlc3RfbW9jcy5jICAgICAgIHwgMzkzICsrKysrKysrKysrKysrKysrKwo+ ICAuLi4vZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfbGl2ZV9zZWxmdGVzdHMuaCAgfCAgIDEgKwo+ ICAzIGZpbGVzIGNoYW5nZWQsIDM5OCBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9tb2NzLmMKPiAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfbW9jcy5jCj4gaW5kZXggNDQ1ZWMwMjViZGEwLi4wNmRiYTdmZjI5NGUg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jCj4gQEAgLTQ0OCwzICs0NDgs NyBAQCB2b2lkIGludGVsX21vY3NfaW5pdChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQo+ICAJaWYgKEhB U19HTE9CQUxfTU9DU19SRUdJU1RFUlMoZ3QtPmk5MTUpKQo+ICAJCWluaXRfZ2xvYmFsX21vY3Mo Z3QpOwo+ICB9Cj4gKwo+ICsjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1Qp Cj4gKyNpbmNsdWRlICJzZWxmdGVzdF9tb2NzLmMiCj4gKyNlbmRpZgo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9tb2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9zZWxmdGVzdF9tb2NzLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAw MDAwMDAwMDAwMC4uY2E5Njc5YzNlZTY4Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X21vY3MuYwo+IEBAIC0wLDAgKzEsMzkzIEBACj4gKy8q Cj4gKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKPiArICoKPiArICogQ29weXJpZ2h0 IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KPiArICovCj4gKwo+ICsjaW5jbHVkZSAiZ3QvaW50 ZWxfZW5naW5lX3BtLmgiCj4gKyNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCj4gKwo+ICsjaW5j bHVkZSAiZ2VtL3NlbGZ0ZXN0cy9tb2NrX2NvbnRleHQuaCIKPiArI2luY2x1ZGUgInNlbGZ0ZXN0 cy9pZ3RfcmVzZXQuaCIKPiArI2luY2x1ZGUgInNlbGZ0ZXN0cy9pZ3Rfc3Bpbm5lci5oIgo+ICsK PiArc3RydWN0IGxpdmVfbW9jcyB7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSB0YWJs ZTsKPiArCXN0cnVjdCBpOTE1X3ZtYSAqc2NyYXRjaDsKPiArCXZvaWQgKnZhZGRyOwo+ICt9Owo+ ICsKPiArc3RhdGljIGludCByZXF1ZXN0X2FkZF9zeW5jKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJx LCBpbnQgZXJyKQo+ICt7Cj4gKwlpOTE1X3JlcXVlc3RfZ2V0KHJxKTsKPiArCWk5MTVfcmVxdWVz dF9hZGQocnEpOwo+ICsJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJxLCAwLCBIWiAvIDUpIDwgMCkK PiArCQllcnIgPSAtRVRJTUU7Cj4gKwlpOTE1X3JlcXVlc3RfcHV0KHJxKTsKPiArCj4gKwlyZXR1 cm4gZXJyOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHJlcXVlc3RfYWRkX3NwaW4oc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEsIHN0cnVjdCBpZ3Rfc3Bpbm5lciAqc3BpbikKPiArewo+ICsJaW50IGVy ciA9IDA7Cj4gKwo+ICsJaTkxNV9yZXF1ZXN0X2dldChycSk7Cj4gKwlpOTE1X3JlcXVlc3RfYWRk KHJxKTsKPiArCWlmIChzcGluICYmICFpZ3Rfd2FpdF9mb3Jfc3Bpbm5lcihzcGluLCBycSkpCj4g KwkJZXJyID0gLUVUSU1FOwo+ICsJaTkxNV9yZXF1ZXN0X3B1dChycSk7Cj4gKwo+ICsJcmV0dXJu IGVycjsKPiArfQo+ICsKPiArc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqY3JlYXRlX3NjcmF0Y2go c3RydWN0IGludGVsX2d0ICpndCkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iajsKPiArCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+ICsJaW50IGVycjsKPiArCj4gKwlvYmog PSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGd0LT5pOTE1LCBQQUdFX1NJWkUpOwo+ ICsJaWYgKElTX0VSUihvYmopKQo+ICsJCXJldHVybiBFUlJfQ0FTVChvYmopOwo+ICsKPiArCWk5 MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfY29oZXJlbmN5KG9iaiwgSTkxNV9DQUNISU5HX0NBQ0hF RCk7Cj4gKwo+ICsJdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCAmZ3QtPmdndHQtPnZtLCBO VUxMKTsKPiArCWlmIChJU19FUlIodm1hKSkgewo+ICsJCWk5MTVfZ2VtX29iamVjdF9wdXQob2Jq KTsKPiArCQlyZXR1cm4gdm1hOwo+ICsJfQo+ICsKPiArCWVyciA9IGk5MTVfdm1hX3Bpbih2bWEs IDAsIDAsIFBJTl9HTE9CQUwpOwo+ICsJaWYgKGVycikgewo+ICsJCWk5MTVfZ2VtX29iamVjdF9w dXQob2JqKTsKPiArCQlyZXR1cm4gRVJSX1BUUihlcnIpOwo+ICsJfQo+ICsKPiArCXJldHVybiB2 bWE7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbGl2ZV9tb2NzX2luaXQoc3RydWN0IGxpdmVfbW9j cyAqYXJnLCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQo+ICt7Cj4gKwlpbnQgZXJyOwo+ICsKPiArCWlm ICghZ2V0X21vY3Nfc2V0dGluZ3MoZ3QtPmk5MTUsICZhcmctPnRhYmxlKSkKPiArCQlyZXR1cm4g LUVJTlZBTDsKPiArCj4gKwlhcmctPnNjcmF0Y2ggPSBjcmVhdGVfc2NyYXRjaChndCk7Cj4gKwlp ZiAoSVNfRVJSKGFyZy0+c2NyYXRjaCkpCj4gKwkJcmV0dXJuIFBUUl9FUlIoYXJnLT5zY3JhdGNo KTsKPiArCj4gKwlhcmctPnZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAoYXJnLT5zY3Jh dGNoLT5vYmosIEk5MTVfTUFQX1dCKTsKPiArCWlmIChJU19FUlIoYXJnLT52YWRkcikpIHsKPiAr CQllcnIgPSBQVFJfRVJSKGFyZy0+dmFkZHIpOwo+ICsJCWdvdG8gZXJyX3NjcmF0Y2g7Cj4gKwl9 Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gKwo+ICtlcnJfc2NyYXRjaDoKPiArCWk5MTVfdm1hX3VucGlu X2FuZF9yZWxlYXNlKCZhcmctPnNjcmF0Y2gsIDApOwo+ICsJcmV0dXJuIGVycjsKPiArfQo+ICsK PiArc3RhdGljIHZvaWQgbGl2ZV9tb2NzX2Zpbmkoc3RydWN0IGxpdmVfbW9jcyAqYXJnKQo+ICt7 Cj4gKwlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmYXJnLT5zY3JhdGNoLCBJOTE1X1ZNQV9S RUxFQVNFX01BUCk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgcmVhZF9yZWdzKHN0cnVjdCBpOTE1 X3JlcXVlc3QgKnJxLAo+ICsJCSAgICAgdTMyIGFkZHIsIHVuc2lnbmVkIGludCBjb3VudCwKPiAr CQkgICAgIHVpbnQzMl90ICpvZmZzZXQpCj4gK3sKPiArCXVuc2lnbmVkIGludCBpOwo+ICsJdTMy ICpjczsKPiArCj4gKwlHRU1fQlVHX09OKCFJU19BTElHTkVEKCpvZmZzZXQsIHNpemVvZih1MzIp KSk7Cj4gKwo+ICsJY3MgPSBpbnRlbF9yaW5nX2JlZ2luKHJxLCA0ICogY291bnQpOwo+ICsJaWYg KElTX0VSUihjcykpCj4gKwkJcmV0dXJuIFBUUl9FUlIoY3MpOwo+ICsKPiArCWZvciAoaSA9IDA7 IGkgPCBjb3VudDsgaSsrKSB7Cj4gKwkJKmNzKysgPSBNSV9TVE9SRV9SRUdJU1RFUl9NRU1fR0VO OCB8IE1JX1VTRV9HR1RUOwo+ICsJCSpjcysrID0gYWRkcjsKPiArCQkqY3MrKyA9ICpvZmZzZXQ7 Cj4gKwkJKmNzKysgPSAwOwo+ICsKPiArCQlhZGRyICs9IHNpemVvZih1MzIpOwo+ICsJCSpvZmZz ZXQgKz0gc2l6ZW9mKHUzMik7Cj4gKwl9Cj4gKwo+ICsJaW50ZWxfcmluZ19hZHZhbmNlKHJxLCBj cyk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgcmVhZF9tb2NzX3Rh YmxlKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAo+ICsJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2k5 MTVfbW9jc190YWJsZSAqdGFibGUsCj4gKwkJCSAgIHVpbnQzMl90ICpvZmZzZXQpCj4gK3sKPiAr CXUzMiBhZGRyOwo+ICsKPiArCWlmIChIQVNfR0xPQkFMX01PQ1NfUkVHSVNURVJTKHJxLT5pOTE1 KSkKPiArCQlhZGRyID0gMHg0MDAwOwo+ICsJZWxzZQo+ICsJCWFkZHIgPSBtb2NzX3JlZ2lzdGVy KHJxLT5lbmdpbmUpOwo+ICsKPiArCXJldHVybiByZWFkX3JlZ3MocnEsIGFkZHIsIHRhYmxlLT5u X2VudHJpZXMsIG9mZnNldCk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgcmVhZF9sM2NjX3RhYmxl KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAo+ICsJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVf bW9jc190YWJsZSAqdGFibGUsCj4gKwkJCSAgIHVpbnQzMl90ICpvZmZzZXQpCj4gK3sKPiArCS8q IENhbiB3ZSByZWFkIHRoZSBNQ1IgcmFuZ2UgMHhiMDAgZGlyZWN0bHk/IFNlZSBpbnRlbF93b3Jr YXJvdW5kcyEgKi8KPiArCXUzMiBhZGRyID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoR0VOOV9MTkNG Q01PQ1MoMCkpOwo+ICsKPiArCXJldHVybiByZWFkX3JlZ3MocnEsIGFkZHIsICh0YWJsZS0+bl9l bnRyaWVzICsgMSkgLyAyLCBvZmZzZXQpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGNoZWNrX21v Y3NfdGFibGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICsJCQkgICAgY29uc3Qg c3RydWN0IGRybV9pOTE1X21vY3NfdGFibGUgKnRhYmxlLAo+ICsJCQkgICAgdWludDMyX3QgKip2 YWRkcikKPiArewo+ICsJdW5zaWduZWQgaW50IGk7Cj4gKwl1MzIgZXhwZWN0Owo+ICsKPiArCWZv cl9lYWNoX21vY3MoZXhwZWN0LCB0YWJsZSwgaSkgewo+ICsJCWlmICgqKnZhZGRyICE9IGV4cGVj dCkgewo+ICsJCQlwcl9lcnIoIiVzOiBJbnZhbGlkIE1PQ1NbJWRdIGVudHJ5LCBmb3VuZCAlMDh4 LCBleHBlY3RlZCAlMDh4XG4iLAo+ICsJCQkgICAgICAgZW5naW5lLT5uYW1lLCBpLCAqKnZhZGRy LCBleHBlY3QpOwo+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiArCQl9Cj4gKwkJKysqdmFkZHI7Cj4g Kwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgY2hlY2tfbDNjY190 YWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gKwkJCSAgICBjb25zdCBzdHJ1 Y3QgZHJtX2k5MTVfbW9jc190YWJsZSAqdGFibGUsCj4gKwkJCSAgICB1aW50MzJfdCAqKnZhZGRy KQo+ICt7Cj4gKwl1bnNpZ25lZCBpbnQgaTsKPiArCXUzMiBleHBlY3Q7Cj4gKwo+ICsJZm9yX2Vh Y2hfbDNjYyhleHBlY3QsIHRhYmxlLCBpKSB7Cj4gKwkJaWYgKCoqdmFkZHIgIT0gZXhwZWN0KSB7 Cj4gKwkJCXByX2VycigiJXM6IEludmFsaWQgTDNDQ1slZF0gZW50cnksIGZvdW5kICUwOHgsIGV4 cGVjdGVkICUwOHhcbiIsCj4gKwkJCSAgICAgICBlbmdpbmUtPm5hbWUsIGksICoqdmFkZHIsIGV4 cGVjdCk7Cj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ICsJCX0KPiArCQkrKyp2YWRkcjsKPiArCX0K PiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBjaGVja19tb2NzX2VuZ2lu ZShzdHJ1Y3QgbGl2ZV9tb2NzICphcmcsCj4gKwkJCSAgICAgc3RydWN0IGludGVsX2NvbnRleHQg KmNlKQo+ICt7Cj4gKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYSA9IGFyZy0+c2NyYXRjaDsKPiArCXN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwo+ICsJdTMyIG9mZnNldDsKPiArCXUzMiAqdmFkZHI7Cj4g KwlpbnQgZXJyOwo+ICsKPiArCW1lbXNldDMyKGFyZy0+dmFkZHIsIFNUQUNLX01BR0lDLCBQQUdF X1NJWkUgLyBzaXplb2YodTMyKSk7Cj4gKwo+ICsJcnEgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZV9y ZXF1ZXN0KGNlKTsKPiArCWlmIChJU19FUlIocnEpKQo+ICsJCXJldHVybiBQVFJfRVJSKHJxKTsK PiArCj4gKwlpOTE1X3ZtYV9sb2NrKHZtYSk7Cj4gKwllcnIgPSBpOTE1X3JlcXVlc3RfYXdhaXRf b2JqZWN0KHJxLCB2bWEtPm9iaiwgdHJ1ZSk7Cj4gKwlpZiAoIWVycikKPiArCQllcnIgPSBpOTE1 X3ZtYV9tb3ZlX3RvX2FjdGl2ZSh2bWEsIHJxLCBFWEVDX09CSkVDVF9XUklURSk7Cj4gKwlpOTE1 X3ZtYV91bmxvY2sodm1hKTsKPiArCj4gKwlvZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KHZtYSk7 Cj4gKwlpZiAoIWVycikKPiArCQllcnIgPSByZWFkX21vY3NfdGFibGUocnEsICZhcmctPnRhYmxl LCAmb2Zmc2V0KTsKPiArCWlmICghZXJyICYmIGNlLT5lbmdpbmUtPmNsYXNzID09IFJFTkRFUl9D TEFTUykKPiArCQllcnIgPSByZWFkX2wzY2NfdGFibGUocnEsICZhcmctPnRhYmxlLCAmb2Zmc2V0 KTsKPiArCW9mZnNldCAtPSBpOTE1X2dndHRfb2Zmc2V0KHZtYSk7Cj4gKwlHRU1fQlVHX09OKG9m ZnNldCA+IFBBR0VfU0laRSk7Cj4gKwo+ICsJZXJyID0gcmVxdWVzdF9hZGRfc3luYyhycSwgZXJy KTsKPiArCWlmIChlcnIpCj4gKwkJcmV0dXJuIGVycjsKPiArCj4gKwl2YWRkciA9IGFyZy0+dmFk ZHI7Cj4gKwlpZiAoIWVycikKPiArCQllcnIgPSBjaGVja19tb2NzX3RhYmxlKGNlLT5lbmdpbmUs ICZhcmctPnRhYmxlLCAmdmFkZHIpOwo+ICsJaWYgKCFlcnIgJiYgY2UtPmVuZ2luZS0+Y2xhc3Mg PT0gUkVOREVSX0NMQVNTKQo+ICsJCWVyciA9IGNoZWNrX2wzY2NfdGFibGUoY2UtPmVuZ2luZSwg JmFyZy0+dGFibGUsICZ2YWRkcik7Cj4gKwlpZiAoZXJyKQo+ICsJCXJldHVybiBlcnI7Cj4gKwo+ ICsJR0VNX0JVR19PTihhcmctPnZhZGRyICsgb2Zmc2V0ICE9IHZhZGRyKTsKPiArCXJldHVybiAw Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGxpdmVfbW9jc19rZXJuZWwodm9pZCAqYXJnKQo+ICt7 Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gYXJnOwo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lOwo+ICsJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Cj4gKwlzdHJ1Y3QgbGl2ZV9t b2NzIG1vY3M7Cj4gKwlpbnQgZXJyOwo+ICsKPiArCWVyciA9IGxpdmVfbW9jc19pbml0KCZtb2Nz LCBndCk7Cj4gKwlpZiAoZXJyKQo+ICsJCXJldHVybiBlcnI7Cj4gKwo+ICsJZm9yX2VhY2hfZW5n aW5lKGVuZ2luZSwgZ3QsIGlkKSB7Cj4gKwkJZXJyID0gY2hlY2tfbW9jc19lbmdpbmUoJm1vY3Ms IGVuZ2luZS0+a2VybmVsX2NvbnRleHQpOwo+ICsJCWlmIChlcnIpCj4gKwkJCWJyZWFrOwo+ICsJ fQo+ICsKPiArCWxpdmVfbW9jc19maW5pKCZtb2NzKTsKPiArCXJldHVybiBlcnI7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgbGl2ZV9tb2NzX2NsZWFuKHZvaWQgKmFyZykKPiArewo+ICsJc3RydWN0 IGludGVsX2d0ICpndCA9IGFyZzsKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsK PiArCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwo+ICsJc3RydWN0IGxpdmVfbW9jcyBtb2NzOwo+ ICsJaW50IGVycjsKPiArCj4gKwllcnIgPSBsaXZlX21vY3NfaW5pdCgmbW9jcywgZ3QpOwo+ICsJ aWYgKGVycikKPiArCQlyZXR1cm4gZXJyOwo+ICsKPiArCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGd0LCBpZCkgewo+ICsJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKPiArCj4gKwkJY2UgPSBp bnRlbF9jb250ZXh0X2NyZWF0ZShlbmdpbmUtPmtlcm5lbF9jb250ZXh0LT5nZW1fY29udGV4dCwK PiArCQkJCQkgIGVuZ2luZSk7Cj4gKwkJaWYgKElTX0VSUihjZSkpIHsKPiArCQkJZXJyID0gUFRS X0VSUihjZSk7Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCj4gKwkJZXJyID0gY2hlY2tfbW9jc19l bmdpbmUoJm1vY3MsIGNlKTsKPiArCQlpbnRlbF9jb250ZXh0X3B1dChjZSk7Cj4gKwkJaWYgKGVy cikKPiArCQkJYnJlYWs7Cj4gKwl9Cj4gKwo+ICsJbGl2ZV9tb2NzX2ZpbmkoJm1vY3MpOwo+ICsJ cmV0dXJuIGVycjsKPiArfQo+ICsKPiArc3RhdGljIGludCBhY3RpdmVfZW5naW5lX3Jlc2V0KHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKPiArCQkJICAgICAgIGNvbnN0IGNoYXIgKnJlYXNvbikK PiArewo+ICsJc3RydWN0IGlndF9zcGlubmVyIHNwaW47Cj4gKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpycTsKPiArCWludCBlcnI7Cj4gKwo+ICsJZXJyID0gaWd0X3NwaW5uZXJfaW5pdCgmc3Bpbiwg Y2UtPmVuZ2luZS0+Z3QpOwo+ICsJaWYgKGVycikKPiArCQlyZXR1cm4gZXJyOwo+ICsKPiArCXJx ID0gaWd0X3NwaW5uZXJfY3JlYXRlX3JlcXVlc3QoJnNwaW4sIGNlLCBNSV9OT09QKTsKPiArCWlm IChJU19FUlIocnEpKSB7Cj4gKwkJaWd0X3NwaW5uZXJfZmluaSgmc3Bpbik7Cj4gKwkJcmV0dXJu IFBUUl9FUlIocnEpOwo+ICsJfQo+ICsKPiArCWVyciA9IHJlcXVlc3RfYWRkX3NwaW4ocnEsICZz cGluKTsKPiArCWlmIChlcnIgPT0gMCkKPiArCQllcnIgPSBpbnRlbF9lbmdpbmVfcmVzZXQoY2Ut PmVuZ2luZSwgcmVhc29uKTsKPiArCj4gKwlpZ3Rfc3Bpbm5lcl9lbmQoJnNwaW4pOwo+ICsJaWd0 X3NwaW5uZXJfZmluaSgmc3Bpbik7Cj4gKwo+ICsJcmV0dXJuIGVycjsKPiArfQo+ICsKPiArc3Rh dGljIGludCBfX2xpdmVfbW9jc19yZXNldChzdHJ1Y3QgbGl2ZV9tb2NzICptb2NzLAo+ICsJCQkg ICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPiArewo+ICsJaW50IGVycjsKPiArCj4gKwll cnIgPSBpbnRlbF9lbmdpbmVfcmVzZXQoY2UtPmVuZ2luZSwgIm1vY3MiKTsKPiArCWlmIChlcnIp Cj4gKwkJcmV0dXJuIGVycjsKPiArCj4gKwllcnIgPSBjaGVja19tb2NzX2VuZ2luZShtb2NzLCBj ZSk7Cj4gKwlpZiAoZXJyKQo+ICsJCXJldHVybiBlcnI7Cj4gKwo+ICsJZXJyID0gYWN0aXZlX2Vu Z2luZV9yZXNldChjZSwgIm1vY3MiKTsKPiArCWlmIChlcnIpCj4gKwkJcmV0dXJuIGVycjsKPiAr Cj4gKwllcnIgPSBjaGVja19tb2NzX2VuZ2luZShtb2NzLCBjZSk7Cj4gKwlpZiAoZXJyKQo+ICsJ CXJldHVybiBlcnI7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbGl2 ZV9tb2NzX3Jlc2V0KHZvaWQgKmFyZykKPiArewo+ICsJc3RydWN0IGludGVsX2d0ICpndCA9IGFy ZzsKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiArCWVudW0gaW50ZWxfZW5n aW5lX2lkIGlkOwo+ICsJc3RydWN0IGxpdmVfbW9jcyBtb2NzOwo+ICsJaW50IGVyciA9IDA7Cj4g Kwo+ICsJaWYgKCFpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGd0KSkKPiArCQlyZXR1cm4gMDsKPiAr Cj4gKwllcnIgPSBsaXZlX21vY3NfaW5pdCgmbW9jcywgZ3QpOwo+ICsJaWYgKGVycikKPiArCQly ZXR1cm4gZXJyOwo+ICsKPiArCWlndF9nbG9iYWxfcmVzZXRfbG9jayhndCk7Cj4gKwlmb3JfZWFj aF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKPiArCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7 Cj4gKwo+ICsJCWNlID0gaW50ZWxfY29udGV4dF9jcmVhdGUoZW5naW5lLT5rZXJuZWxfY29udGV4 dC0+Z2VtX2NvbnRleHQsCj4gKwkJCQkJICBlbmdpbmUpOwo+ICsJCWlmIChJU19FUlIoY2UpKSB7 Cj4gKwkJCWVyciA9IFBUUl9FUlIoY2UpOwo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwo+ICsJCWlu dGVsX2VuZ2luZV9wbV9nZXQoZW5naW5lKTsKPiArCQllcnIgPSBfX2xpdmVfbW9jc19yZXNldCgm bW9jcywgY2UpOwo+ICsJCWludGVsX2VuZ2luZV9wbV9wdXQoZW5naW5lKTsKPiArCj4gKwkJaW50 ZWxfY29udGV4dF9wdXQoY2UpOwo+ICsJCWlmIChlcnIpCj4gKwkJCWJyZWFrOwo+ICsJfQo+ICsJ aWd0X2dsb2JhbF9yZXNldF91bmxvY2soZ3QpOwo+ICsKPiArCWxpdmVfbW9jc19maW5pKCZtb2Nz KTsKPiArCXJldHVybiBlcnI7Cj4gK30KPiArCj4gK2ludCBpbnRlbF9tb2NzX2xpdmVfc2VsZnRl c3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICt7Cj4gKwlzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0gewo+ICsJCVNVQlRFU1QobGl2ZV9tb2NzX2tl cm5lbCksCj4gKwkJU1VCVEVTVChsaXZlX21vY3NfY2xlYW4pLAo+ICsJCVNVQlRFU1QobGl2ZV9t b2NzX3Jlc2V0KSwKPiArCX07Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSB0YWJsZTsK PiArCj4gKwlpZiAoIWdldF9tb2NzX3NldHRpbmdzKGk5MTUsICZ0YWJsZSkpCj4gKwkJcmV0dXJu IDA7Cj4gKwo+ICsJcmV0dXJuIGludGVsX2d0X2xpdmVfc3VidGVzdHModGVzdHMsICZpOTE1LT5n dCk7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5 MTVfbGl2ZV9zZWxmdGVzdHMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1 X2xpdmVfc2VsZnRlc3RzLmgKPiBpbmRleCAwMGEwNjM3MzBiYzMuLmMyM2QwNmJjYTA5ZSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0 ZXN0cy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfbGl2ZV9z ZWxmdGVzdHMuaAo+IEBAIC0xNiw2ICsxNiw3IEBAIHNlbGZ0ZXN0KGd0X2VuZ2luZXMsIGludGVs X2VuZ2luZV9saXZlX3NlbGZ0ZXN0cykKPiAgc2VsZnRlc3QoZ3RfdGltZWxpbmVzLCBpbnRlbF90 aW1lbGluZV9saXZlX3NlbGZ0ZXN0cykKPiAgc2VsZnRlc3QoZ3RfY29udGV4dHMsIGludGVsX2Nv bnRleHRfbGl2ZV9zZWxmdGVzdHMpCj4gIHNlbGZ0ZXN0KGd0X2xyYywgaW50ZWxfbHJjX2xpdmVf c2VsZnRlc3RzKQo+ICtzZWxmdGVzdChndF9tb2NzLCBpbnRlbF9tb2NzX2xpdmVfc2VsZnRlc3Rz KQo+ICBzZWxmdGVzdChndF9wbSwgaW50ZWxfZ3RfcG1fbGl2ZV9zZWxmdGVzdHMpCj4gIHNlbGZ0 ZXN0KGd0X2hlYXJ0YmVhdCwgaW50ZWxfaGVhcnRiZWF0X2xpdmVfc2VsZnRlc3RzKQo+ICBzZWxm dGVzdChyZXF1ZXN0cywgaTkxNV9yZXF1ZXN0X2xpdmVfc2VsZnRlc3RzKQo+IC0tIAo+IDIuMjQu MC5yYzAKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 59274CA9EB9 for ; Wed, 23 Oct 2019 20:46:30 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2F80720650 for ; Wed, 23 Oct 2019 20:46:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2F80720650 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A1FDD6EB8C; Wed, 23 Oct 2019 20:46:29 +0000 (UTC) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id C5B266EB8C for ; Wed, 23 Oct 2019 20:46:28 +0000 (UTC) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 Oct 2019 13:46:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,222,1569308400"; d="scan'208";a="228258833" Received: from pkumarva-server.ra.intel.com (HELO intel.com) ([10.23.184.130]) by fmsmga002.fm.intel.com with ESMTP; 23 Oct 2019 13:46:28 -0700 Date: Wed, 23 Oct 2019 17:03:40 -0400 From: "Kumar Valsan, Prathap" To: Chris Wilson Message-ID: <20191023210340.GP3257@intel.com> References: <20191022115126.18746-4-chris@chris-wilson.co.uk> <20191022115705.4744-1-chris@chris-wilson.co.uk> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191022115705.4744-1-chris@chris-wilson.co.uk> User-Agent: Mutt/1.11.3 (2019-02-01) Subject: Re: [Intel-gfx] [PATCH] drm/i915/selftests: Add coverage of mocs registers X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191023210340.-6Cx3SDa0_HIDUkSK6TW3R8hAOWbcRO_cIvtMD8r1Gk@z> T24gVHVlLCBPY3QgMjIsIDIwMTkgYXQgMTI6NTc6MDVQTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IFByb2JlIHRoZSBtb2NzIHJlZ2lzdGVycyBmb3IgbmV3IGNvbnRleHRzIGFuZCBhY3Jv c3MgR1BVIHJlc2V0cy4gU2ltaWxhcgo+IHRvIGludGVsX3dvcmthcm91bmRzLCB3ZSBoYXZlIHRh YmxlcyBvZiB3aGF0IHJlZ2lzdGVyIHZhbHVlcyB3ZSBleHBlY3QKPiB0byBzZWUsIHNvIHZlcmlm eSB0aGF0IHVzZXIgY29udGV4dHMgYXJlIGFmZmVjdGVkIGJ5IHRoZW0uIEluIHRoZQo+IGZ1dHVy ZSwgd2Ugc2hvdWxkIGFkZCB0ZXN0cyBzaW1pbGFyIHRvIGludGVsX3NzZXUgdG8gY292ZXIgZHlu YW1pYwo+IHJlY29uZmlndXJhdGlvbnMuCj4gCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IFByYXRoYXAgS3VtYXIgVmFsc2FuIDxw cmF0aGFwLmt1bWFyLnZhbHNhbkBpbnRlbC5jb20+Cj4gQ2M6IE1pa2EgS3VvcHBhbGEgPG1pa2Eu a3VvcHBhbGFAbGludXguaW50ZWwuY29tPgoKcy9mb3JfZWFjaF9lbmdpbmUvZm9yX2VhY2hfdWFi aV9lbmdpbmUgPwoKT3RoZXJ3aXNlCgpSZXZpZXdlZC1ieTogUHJhdGhhcCBLdW1hciBWYWxzYW4g PHByYXRoYXAua3VtYXIudmFsc2FuQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfbW9jcy5jICAgICAgICAgIHwgICA0ICsKPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Qvc2VsZnRlc3RfbW9jcy5jICAgICAgIHwgMzkzICsrKysrKysrKysrKysrKysrKwo+ ICAuLi4vZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfbGl2ZV9zZWxmdGVzdHMuaCAgfCAgIDEgKwo+ ICAzIGZpbGVzIGNoYW5nZWQsIDM5OCBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9tb2NzLmMKPiAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfbW9jcy5jCj4gaW5kZXggNDQ1ZWMwMjViZGEwLi4wNmRiYTdmZjI5NGUg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbW9jcy5jCj4gQEAgLTQ0OCwzICs0NDgs NyBAQCB2b2lkIGludGVsX21vY3NfaW5pdChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQo+ICAJaWYgKEhB U19HTE9CQUxfTU9DU19SRUdJU1RFUlMoZ3QtPmk5MTUpKQo+ICAJCWluaXRfZ2xvYmFsX21vY3Mo Z3QpOwo+ICB9Cj4gKwo+ICsjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1Qp Cj4gKyNpbmNsdWRlICJzZWxmdGVzdF9tb2NzLmMiCj4gKyNlbmRpZgo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9tb2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9zZWxmdGVzdF9tb2NzLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAw MDAwMDAwMDAwMC4uY2E5Njc5YzNlZTY4Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X21vY3MuYwo+IEBAIC0wLDAgKzEsMzkzIEBACj4gKy8q Cj4gKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKPiArICoKPiArICogQ29weXJpZ2h0 IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KPiArICovCj4gKwo+ICsjaW5jbHVkZSAiZ3QvaW50 ZWxfZW5naW5lX3BtLmgiCj4gKyNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCj4gKwo+ICsjaW5j bHVkZSAiZ2VtL3NlbGZ0ZXN0cy9tb2NrX2NvbnRleHQuaCIKPiArI2luY2x1ZGUgInNlbGZ0ZXN0 cy9pZ3RfcmVzZXQuaCIKPiArI2luY2x1ZGUgInNlbGZ0ZXN0cy9pZ3Rfc3Bpbm5lci5oIgo+ICsK PiArc3RydWN0IGxpdmVfbW9jcyB7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSB0YWJs ZTsKPiArCXN0cnVjdCBpOTE1X3ZtYSAqc2NyYXRjaDsKPiArCXZvaWQgKnZhZGRyOwo+ICt9Owo+ ICsKPiArc3RhdGljIGludCByZXF1ZXN0X2FkZF9zeW5jKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJx LCBpbnQgZXJyKQo+ICt7Cj4gKwlpOTE1X3JlcXVlc3RfZ2V0KHJxKTsKPiArCWk5MTVfcmVxdWVz dF9hZGQocnEpOwo+ICsJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJxLCAwLCBIWiAvIDUpIDwgMCkK PiArCQllcnIgPSAtRVRJTUU7Cj4gKwlpOTE1X3JlcXVlc3RfcHV0KHJxKTsKPiArCj4gKwlyZXR1 cm4gZXJyOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHJlcXVlc3RfYWRkX3NwaW4oc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEsIHN0cnVjdCBpZ3Rfc3Bpbm5lciAqc3BpbikKPiArewo+ICsJaW50IGVy ciA9IDA7Cj4gKwo+ICsJaTkxNV9yZXF1ZXN0X2dldChycSk7Cj4gKwlpOTE1X3JlcXVlc3RfYWRk KHJxKTsKPiArCWlmIChzcGluICYmICFpZ3Rfd2FpdF9mb3Jfc3Bpbm5lcihzcGluLCBycSkpCj4g KwkJZXJyID0gLUVUSU1FOwo+ICsJaTkxNV9yZXF1ZXN0X3B1dChycSk7Cj4gKwo+ICsJcmV0dXJu IGVycjsKPiArfQo+ICsKPiArc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqY3JlYXRlX3NjcmF0Y2go c3RydWN0IGludGVsX2d0ICpndCkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iajsKPiArCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+ICsJaW50IGVycjsKPiArCj4gKwlvYmog PSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGd0LT5pOTE1LCBQQUdFX1NJWkUpOwo+ ICsJaWYgKElTX0VSUihvYmopKQo+ICsJCXJldHVybiBFUlJfQ0FTVChvYmopOwo+ICsKPiArCWk5 MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfY29oZXJlbmN5KG9iaiwgSTkxNV9DQUNISU5HX0NBQ0hF RCk7Cj4gKwo+ICsJdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCAmZ3QtPmdndHQtPnZtLCBO VUxMKTsKPiArCWlmIChJU19FUlIodm1hKSkgewo+ICsJCWk5MTVfZ2VtX29iamVjdF9wdXQob2Jq KTsKPiArCQlyZXR1cm4gdm1hOwo+ICsJfQo+ICsKPiArCWVyciA9IGk5MTVfdm1hX3Bpbih2bWEs IDAsIDAsIFBJTl9HTE9CQUwpOwo+ICsJaWYgKGVycikgewo+ICsJCWk5MTVfZ2VtX29iamVjdF9w dXQob2JqKTsKPiArCQlyZXR1cm4gRVJSX1BUUihlcnIpOwo+ICsJfQo+ICsKPiArCXJldHVybiB2 bWE7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbGl2ZV9tb2NzX2luaXQoc3RydWN0IGxpdmVfbW9j cyAqYXJnLCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQo+ICt7Cj4gKwlpbnQgZXJyOwo+ICsKPiArCWlm ICghZ2V0X21vY3Nfc2V0dGluZ3MoZ3QtPmk5MTUsICZhcmctPnRhYmxlKSkKPiArCQlyZXR1cm4g LUVJTlZBTDsKPiArCj4gKwlhcmctPnNjcmF0Y2ggPSBjcmVhdGVfc2NyYXRjaChndCk7Cj4gKwlp ZiAoSVNfRVJSKGFyZy0+c2NyYXRjaCkpCj4gKwkJcmV0dXJuIFBUUl9FUlIoYXJnLT5zY3JhdGNo KTsKPiArCj4gKwlhcmctPnZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAoYXJnLT5zY3Jh dGNoLT5vYmosIEk5MTVfTUFQX1dCKTsKPiArCWlmIChJU19FUlIoYXJnLT52YWRkcikpIHsKPiAr CQllcnIgPSBQVFJfRVJSKGFyZy0+dmFkZHIpOwo+ICsJCWdvdG8gZXJyX3NjcmF0Y2g7Cj4gKwl9 Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gKwo+ICtlcnJfc2NyYXRjaDoKPiArCWk5MTVfdm1hX3VucGlu X2FuZF9yZWxlYXNlKCZhcmctPnNjcmF0Y2gsIDApOwo+ICsJcmV0dXJuIGVycjsKPiArfQo+ICsK PiArc3RhdGljIHZvaWQgbGl2ZV9tb2NzX2Zpbmkoc3RydWN0IGxpdmVfbW9jcyAqYXJnKQo+ICt7 Cj4gKwlpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmYXJnLT5zY3JhdGNoLCBJOTE1X1ZNQV9S RUxFQVNFX01BUCk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgcmVhZF9yZWdzKHN0cnVjdCBpOTE1 X3JlcXVlc3QgKnJxLAo+ICsJCSAgICAgdTMyIGFkZHIsIHVuc2lnbmVkIGludCBjb3VudCwKPiAr CQkgICAgIHVpbnQzMl90ICpvZmZzZXQpCj4gK3sKPiArCXVuc2lnbmVkIGludCBpOwo+ICsJdTMy ICpjczsKPiArCj4gKwlHRU1fQlVHX09OKCFJU19BTElHTkVEKCpvZmZzZXQsIHNpemVvZih1MzIp KSk7Cj4gKwo+ICsJY3MgPSBpbnRlbF9yaW5nX2JlZ2luKHJxLCA0ICogY291bnQpOwo+ICsJaWYg KElTX0VSUihjcykpCj4gKwkJcmV0dXJuIFBUUl9FUlIoY3MpOwo+ICsKPiArCWZvciAoaSA9IDA7 IGkgPCBjb3VudDsgaSsrKSB7Cj4gKwkJKmNzKysgPSBNSV9TVE9SRV9SRUdJU1RFUl9NRU1fR0VO OCB8IE1JX1VTRV9HR1RUOwo+ICsJCSpjcysrID0gYWRkcjsKPiArCQkqY3MrKyA9ICpvZmZzZXQ7 Cj4gKwkJKmNzKysgPSAwOwo+ICsKPiArCQlhZGRyICs9IHNpemVvZih1MzIpOwo+ICsJCSpvZmZz ZXQgKz0gc2l6ZW9mKHUzMik7Cj4gKwl9Cj4gKwo+ICsJaW50ZWxfcmluZ19hZHZhbmNlKHJxLCBj cyk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgcmVhZF9tb2NzX3Rh YmxlKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAo+ICsJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2k5 MTVfbW9jc190YWJsZSAqdGFibGUsCj4gKwkJCSAgIHVpbnQzMl90ICpvZmZzZXQpCj4gK3sKPiAr CXUzMiBhZGRyOwo+ICsKPiArCWlmIChIQVNfR0xPQkFMX01PQ1NfUkVHSVNURVJTKHJxLT5pOTE1 KSkKPiArCQlhZGRyID0gMHg0MDAwOwo+ICsJZWxzZQo+ICsJCWFkZHIgPSBtb2NzX3JlZ2lzdGVy KHJxLT5lbmdpbmUpOwo+ICsKPiArCXJldHVybiByZWFkX3JlZ3MocnEsIGFkZHIsIHRhYmxlLT5u X2VudHJpZXMsIG9mZnNldCk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgcmVhZF9sM2NjX3RhYmxl KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAo+ICsJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVf bW9jc190YWJsZSAqdGFibGUsCj4gKwkJCSAgIHVpbnQzMl90ICpvZmZzZXQpCj4gK3sKPiArCS8q IENhbiB3ZSByZWFkIHRoZSBNQ1IgcmFuZ2UgMHhiMDAgZGlyZWN0bHk/IFNlZSBpbnRlbF93b3Jr YXJvdW5kcyEgKi8KPiArCXUzMiBhZGRyID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoR0VOOV9MTkNG Q01PQ1MoMCkpOwo+ICsKPiArCXJldHVybiByZWFkX3JlZ3MocnEsIGFkZHIsICh0YWJsZS0+bl9l bnRyaWVzICsgMSkgLyAyLCBvZmZzZXQpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGNoZWNrX21v Y3NfdGFibGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICsJCQkgICAgY29uc3Qg c3RydWN0IGRybV9pOTE1X21vY3NfdGFibGUgKnRhYmxlLAo+ICsJCQkgICAgdWludDMyX3QgKip2 YWRkcikKPiArewo+ICsJdW5zaWduZWQgaW50IGk7Cj4gKwl1MzIgZXhwZWN0Owo+ICsKPiArCWZv cl9lYWNoX21vY3MoZXhwZWN0LCB0YWJsZSwgaSkgewo+ICsJCWlmICgqKnZhZGRyICE9IGV4cGVj dCkgewo+ICsJCQlwcl9lcnIoIiVzOiBJbnZhbGlkIE1PQ1NbJWRdIGVudHJ5LCBmb3VuZCAlMDh4 LCBleHBlY3RlZCAlMDh4XG4iLAo+ICsJCQkgICAgICAgZW5naW5lLT5uYW1lLCBpLCAqKnZhZGRy LCBleHBlY3QpOwo+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiArCQl9Cj4gKwkJKysqdmFkZHI7Cj4g Kwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgY2hlY2tfbDNjY190 YWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gKwkJCSAgICBjb25zdCBzdHJ1 Y3QgZHJtX2k5MTVfbW9jc190YWJsZSAqdGFibGUsCj4gKwkJCSAgICB1aW50MzJfdCAqKnZhZGRy KQo+ICt7Cj4gKwl1bnNpZ25lZCBpbnQgaTsKPiArCXUzMiBleHBlY3Q7Cj4gKwo+ICsJZm9yX2Vh Y2hfbDNjYyhleHBlY3QsIHRhYmxlLCBpKSB7Cj4gKwkJaWYgKCoqdmFkZHIgIT0gZXhwZWN0KSB7 Cj4gKwkJCXByX2VycigiJXM6IEludmFsaWQgTDNDQ1slZF0gZW50cnksIGZvdW5kICUwOHgsIGV4 cGVjdGVkICUwOHhcbiIsCj4gKwkJCSAgICAgICBlbmdpbmUtPm5hbWUsIGksICoqdmFkZHIsIGV4 cGVjdCk7Cj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ICsJCX0KPiArCQkrKyp2YWRkcjsKPiArCX0K PiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBjaGVja19tb2NzX2VuZ2lu ZShzdHJ1Y3QgbGl2ZV9tb2NzICphcmcsCj4gKwkJCSAgICAgc3RydWN0IGludGVsX2NvbnRleHQg KmNlKQo+ICt7Cj4gKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYSA9IGFyZy0+c2NyYXRjaDsKPiArCXN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwo+ICsJdTMyIG9mZnNldDsKPiArCXUzMiAqdmFkZHI7Cj4g KwlpbnQgZXJyOwo+ICsKPiArCW1lbXNldDMyKGFyZy0+dmFkZHIsIFNUQUNLX01BR0lDLCBQQUdF X1NJWkUgLyBzaXplb2YodTMyKSk7Cj4gKwo+ICsJcnEgPSBpbnRlbF9jb250ZXh0X2NyZWF0ZV9y ZXF1ZXN0KGNlKTsKPiArCWlmIChJU19FUlIocnEpKQo+ICsJCXJldHVybiBQVFJfRVJSKHJxKTsK PiArCj4gKwlpOTE1X3ZtYV9sb2NrKHZtYSk7Cj4gKwllcnIgPSBpOTE1X3JlcXVlc3RfYXdhaXRf b2JqZWN0KHJxLCB2bWEtPm9iaiwgdHJ1ZSk7Cj4gKwlpZiAoIWVycikKPiArCQllcnIgPSBpOTE1 X3ZtYV9tb3ZlX3RvX2FjdGl2ZSh2bWEsIHJxLCBFWEVDX09CSkVDVF9XUklURSk7Cj4gKwlpOTE1 X3ZtYV91bmxvY2sodm1hKTsKPiArCj4gKwlvZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KHZtYSk7 Cj4gKwlpZiAoIWVycikKPiArCQllcnIgPSByZWFkX21vY3NfdGFibGUocnEsICZhcmctPnRhYmxl LCAmb2Zmc2V0KTsKPiArCWlmICghZXJyICYmIGNlLT5lbmdpbmUtPmNsYXNzID09IFJFTkRFUl9D TEFTUykKPiArCQllcnIgPSByZWFkX2wzY2NfdGFibGUocnEsICZhcmctPnRhYmxlLCAmb2Zmc2V0 KTsKPiArCW9mZnNldCAtPSBpOTE1X2dndHRfb2Zmc2V0KHZtYSk7Cj4gKwlHRU1fQlVHX09OKG9m ZnNldCA+IFBBR0VfU0laRSk7Cj4gKwo+ICsJZXJyID0gcmVxdWVzdF9hZGRfc3luYyhycSwgZXJy KTsKPiArCWlmIChlcnIpCj4gKwkJcmV0dXJuIGVycjsKPiArCj4gKwl2YWRkciA9IGFyZy0+dmFk ZHI7Cj4gKwlpZiAoIWVycikKPiArCQllcnIgPSBjaGVja19tb2NzX3RhYmxlKGNlLT5lbmdpbmUs ICZhcmctPnRhYmxlLCAmdmFkZHIpOwo+ICsJaWYgKCFlcnIgJiYgY2UtPmVuZ2luZS0+Y2xhc3Mg PT0gUkVOREVSX0NMQVNTKQo+ICsJCWVyciA9IGNoZWNrX2wzY2NfdGFibGUoY2UtPmVuZ2luZSwg JmFyZy0+dGFibGUsICZ2YWRkcik7Cj4gKwlpZiAoZXJyKQo+ICsJCXJldHVybiBlcnI7Cj4gKwo+ ICsJR0VNX0JVR19PTihhcmctPnZhZGRyICsgb2Zmc2V0ICE9IHZhZGRyKTsKPiArCXJldHVybiAw Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGxpdmVfbW9jc19rZXJuZWwodm9pZCAqYXJnKQo+ICt7 Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gYXJnOwo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lOwo+ICsJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Cj4gKwlzdHJ1Y3QgbGl2ZV9t b2NzIG1vY3M7Cj4gKwlpbnQgZXJyOwo+ICsKPiArCWVyciA9IGxpdmVfbW9jc19pbml0KCZtb2Nz LCBndCk7Cj4gKwlpZiAoZXJyKQo+ICsJCXJldHVybiBlcnI7Cj4gKwo+ICsJZm9yX2VhY2hfZW5n aW5lKGVuZ2luZSwgZ3QsIGlkKSB7Cj4gKwkJZXJyID0gY2hlY2tfbW9jc19lbmdpbmUoJm1vY3Ms IGVuZ2luZS0+a2VybmVsX2NvbnRleHQpOwo+ICsJCWlmIChlcnIpCj4gKwkJCWJyZWFrOwo+ICsJ fQo+ICsKPiArCWxpdmVfbW9jc19maW5pKCZtb2NzKTsKPiArCXJldHVybiBlcnI7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgbGl2ZV9tb2NzX2NsZWFuKHZvaWQgKmFyZykKPiArewo+ICsJc3RydWN0 IGludGVsX2d0ICpndCA9IGFyZzsKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsK PiArCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwo+ICsJc3RydWN0IGxpdmVfbW9jcyBtb2NzOwo+ ICsJaW50IGVycjsKPiArCj4gKwllcnIgPSBsaXZlX21vY3NfaW5pdCgmbW9jcywgZ3QpOwo+ICsJ aWYgKGVycikKPiArCQlyZXR1cm4gZXJyOwo+ICsKPiArCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGd0LCBpZCkgewo+ICsJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKPiArCj4gKwkJY2UgPSBp bnRlbF9jb250ZXh0X2NyZWF0ZShlbmdpbmUtPmtlcm5lbF9jb250ZXh0LT5nZW1fY29udGV4dCwK PiArCQkJCQkgIGVuZ2luZSk7Cj4gKwkJaWYgKElTX0VSUihjZSkpIHsKPiArCQkJZXJyID0gUFRS X0VSUihjZSk7Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCj4gKwkJZXJyID0gY2hlY2tfbW9jc19l bmdpbmUoJm1vY3MsIGNlKTsKPiArCQlpbnRlbF9jb250ZXh0X3B1dChjZSk7Cj4gKwkJaWYgKGVy cikKPiArCQkJYnJlYWs7Cj4gKwl9Cj4gKwo+ICsJbGl2ZV9tb2NzX2ZpbmkoJm1vY3MpOwo+ICsJ cmV0dXJuIGVycjsKPiArfQo+ICsKPiArc3RhdGljIGludCBhY3RpdmVfZW5naW5lX3Jlc2V0KHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKPiArCQkJICAgICAgIGNvbnN0IGNoYXIgKnJlYXNvbikK PiArewo+ICsJc3RydWN0IGlndF9zcGlubmVyIHNwaW47Cj4gKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpycTsKPiArCWludCBlcnI7Cj4gKwo+ICsJZXJyID0gaWd0X3NwaW5uZXJfaW5pdCgmc3Bpbiwg Y2UtPmVuZ2luZS0+Z3QpOwo+ICsJaWYgKGVycikKPiArCQlyZXR1cm4gZXJyOwo+ICsKPiArCXJx ID0gaWd0X3NwaW5uZXJfY3JlYXRlX3JlcXVlc3QoJnNwaW4sIGNlLCBNSV9OT09QKTsKPiArCWlm IChJU19FUlIocnEpKSB7Cj4gKwkJaWd0X3NwaW5uZXJfZmluaSgmc3Bpbik7Cj4gKwkJcmV0dXJu IFBUUl9FUlIocnEpOwo+ICsJfQo+ICsKPiArCWVyciA9IHJlcXVlc3RfYWRkX3NwaW4ocnEsICZz cGluKTsKPiArCWlmIChlcnIgPT0gMCkKPiArCQllcnIgPSBpbnRlbF9lbmdpbmVfcmVzZXQoY2Ut PmVuZ2luZSwgcmVhc29uKTsKPiArCj4gKwlpZ3Rfc3Bpbm5lcl9lbmQoJnNwaW4pOwo+ICsJaWd0 X3NwaW5uZXJfZmluaSgmc3Bpbik7Cj4gKwo+ICsJcmV0dXJuIGVycjsKPiArfQo+ICsKPiArc3Rh dGljIGludCBfX2xpdmVfbW9jc19yZXNldChzdHJ1Y3QgbGl2ZV9tb2NzICptb2NzLAo+ICsJCQkg ICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPiArewo+ICsJaW50IGVycjsKPiArCj4gKwll cnIgPSBpbnRlbF9lbmdpbmVfcmVzZXQoY2UtPmVuZ2luZSwgIm1vY3MiKTsKPiArCWlmIChlcnIp Cj4gKwkJcmV0dXJuIGVycjsKPiArCj4gKwllcnIgPSBjaGVja19tb2NzX2VuZ2luZShtb2NzLCBj ZSk7Cj4gKwlpZiAoZXJyKQo+ICsJCXJldHVybiBlcnI7Cj4gKwo+ICsJZXJyID0gYWN0aXZlX2Vu Z2luZV9yZXNldChjZSwgIm1vY3MiKTsKPiArCWlmIChlcnIpCj4gKwkJcmV0dXJuIGVycjsKPiAr Cj4gKwllcnIgPSBjaGVja19tb2NzX2VuZ2luZShtb2NzLCBjZSk7Cj4gKwlpZiAoZXJyKQo+ICsJ CXJldHVybiBlcnI7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbGl2 ZV9tb2NzX3Jlc2V0KHZvaWQgKmFyZykKPiArewo+ICsJc3RydWN0IGludGVsX2d0ICpndCA9IGFy ZzsKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiArCWVudW0gaW50ZWxfZW5n aW5lX2lkIGlkOwo+ICsJc3RydWN0IGxpdmVfbW9jcyBtb2NzOwo+ICsJaW50IGVyciA9IDA7Cj4g Kwo+ICsJaWYgKCFpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGd0KSkKPiArCQlyZXR1cm4gMDsKPiAr Cj4gKwllcnIgPSBsaXZlX21vY3NfaW5pdCgmbW9jcywgZ3QpOwo+ICsJaWYgKGVycikKPiArCQly ZXR1cm4gZXJyOwo+ICsKPiArCWlndF9nbG9iYWxfcmVzZXRfbG9jayhndCk7Cj4gKwlmb3JfZWFj aF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKPiArCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7 Cj4gKwo+ICsJCWNlID0gaW50ZWxfY29udGV4dF9jcmVhdGUoZW5naW5lLT5rZXJuZWxfY29udGV4 dC0+Z2VtX2NvbnRleHQsCj4gKwkJCQkJICBlbmdpbmUpOwo+ICsJCWlmIChJU19FUlIoY2UpKSB7 Cj4gKwkJCWVyciA9IFBUUl9FUlIoY2UpOwo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwo+ICsJCWlu dGVsX2VuZ2luZV9wbV9nZXQoZW5naW5lKTsKPiArCQllcnIgPSBfX2xpdmVfbW9jc19yZXNldCgm bW9jcywgY2UpOwo+ICsJCWludGVsX2VuZ2luZV9wbV9wdXQoZW5naW5lKTsKPiArCj4gKwkJaW50 ZWxfY29udGV4dF9wdXQoY2UpOwo+ICsJCWlmIChlcnIpCj4gKwkJCWJyZWFrOwo+ICsJfQo+ICsJ aWd0X2dsb2JhbF9yZXNldF91bmxvY2soZ3QpOwo+ICsKPiArCWxpdmVfbW9jc19maW5pKCZtb2Nz KTsKPiArCXJldHVybiBlcnI7Cj4gK30KPiArCj4gK2ludCBpbnRlbF9tb2NzX2xpdmVfc2VsZnRl c3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICt7Cj4gKwlzdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0gewo+ICsJCVNVQlRFU1QobGl2ZV9tb2NzX2tl cm5lbCksCj4gKwkJU1VCVEVTVChsaXZlX21vY3NfY2xlYW4pLAo+ICsJCVNVQlRFU1QobGl2ZV9t b2NzX3Jlc2V0KSwKPiArCX07Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSB0YWJsZTsK PiArCj4gKwlpZiAoIWdldF9tb2NzX3NldHRpbmdzKGk5MTUsICZ0YWJsZSkpCj4gKwkJcmV0dXJu IDA7Cj4gKwo+ICsJcmV0dXJuIGludGVsX2d0X2xpdmVfc3VidGVzdHModGVzdHMsICZpOTE1LT5n dCk7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5 MTVfbGl2ZV9zZWxmdGVzdHMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1 X2xpdmVfc2VsZnRlc3RzLmgKPiBpbmRleCAwMGEwNjM3MzBiYzMuLmMyM2QwNmJjYTA5ZSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0 ZXN0cy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfbGl2ZV9z ZWxmdGVzdHMuaAo+IEBAIC0xNiw2ICsxNiw3IEBAIHNlbGZ0ZXN0KGd0X2VuZ2luZXMsIGludGVs X2VuZ2luZV9saXZlX3NlbGZ0ZXN0cykKPiAgc2VsZnRlc3QoZ3RfdGltZWxpbmVzLCBpbnRlbF90 aW1lbGluZV9saXZlX3NlbGZ0ZXN0cykKPiAgc2VsZnRlc3QoZ3RfY29udGV4dHMsIGludGVsX2Nv bnRleHRfbGl2ZV9zZWxmdGVzdHMpCj4gIHNlbGZ0ZXN0KGd0X2xyYywgaW50ZWxfbHJjX2xpdmVf c2VsZnRlc3RzKQo+ICtzZWxmdGVzdChndF9tb2NzLCBpbnRlbF9tb2NzX2xpdmVfc2VsZnRlc3Rz KQo+ICBzZWxmdGVzdChndF9wbSwgaW50ZWxfZ3RfcG1fbGl2ZV9zZWxmdGVzdHMpCj4gIHNlbGZ0 ZXN0KGd0X2hlYXJ0YmVhdCwgaW50ZWxfaGVhcnRiZWF0X2xpdmVfc2VsZnRlc3RzKQo+ICBzZWxm dGVzdChyZXF1ZXN0cywgaTkxNV9yZXF1ZXN0X2xpdmVfc2VsZnRlc3RzKQo+IC0tIAo+IDIuMjQu MC5yYzAKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4