From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 3/4] drm/i915/gt: Refactor mocs loops into single control macro Date: Thu, 14 Nov 2019 19:35:29 +0200 Message-ID: <87ftiqxswu.fsf@gaia.fi.intel.com> References: <20191112223600.30993-1-chris@chris-wilson.co.uk> <20191112223600.30993-3-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 11BD86EE5C for ; Thu, 14 Nov 2019 17:35:42 +0000 (UTC) In-Reply-To: <20191112223600.30993-3-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 , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gV2UgcmVw ZWF0ZWRseSAoYW5kIG1vcmUgc28gaW4gZnV0dXJlKSB1c2UgdGhlIHNhbWUgbG9vcGluZyBjb25z dHJ1Y3QKPiBvdmVyIHRoZSBtb2NzIGRlZmluaXRpb24gdGFibGUgdG8gc2V0dXAgdGhlIHJlZ2lz dGVyIHN0YXRlLiBSZWZhY3RvciB0aGUKPiBsb29wIGNvbnN0cnVjdCBpbnRvIGEgcmV1c2FibGUg bWFjcm8uCj4KPiBhZGQvcmVtb3ZlOiAyLzEgZ3Jvdy9zaHJpbms6IDEvMiB1cC9kb3duOiAxMTMv LTMzMCAoLTIxNykKPiBGdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvbGQgICAgIG5ldyAgIGRlbHRhCj4gaW50ZWxfbW9jc19pbml0X2VuZ2luZS5jb2xkICAgICAg ICAgICAgICAgICAgICAtICAgICAgNzEgICAgICs3MQo+IG9mZnNldCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLSAgICAgIDI4ICAgICArMjgKPiBfX2Z1bmNfXyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcyNzMgICAxNzI4NyAgICAgKzE0Cj4gaW50 ZWxfbW9jc19pbml0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQzICAgICAxMTMgICAg IC0zMAo+IG1vY3NfcmVnaXN0ZXIuaXNyYSAgICAgICAgICAgICAgICAgICAgICAgICAgICA5MSAg ICAgICAtICAgICAtOTEKPiBpbnRlbF9tb2NzX2luaXRfZW5naW5lICAgICAgICAgICAgICAgICAg ICAgICA1MDMgICAgIDI5NCAgICAtMjA5CgpFZmZlY3RpdmUgZGlldC4KCj4KPiBTaWduZWQtb2Zm LWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KCkNvdWxkIG5vdCBz cG90IGFueXRoaW5nIG9mZiBhdCB0aGlzIHJvdW5kIGFuZCBldmVuIHByZXR0eQpkZWZpbmVzIHRo aXMgdGltZS4KClJldmlld2VkLWJ5OiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4 LmludGVsLmNvbT4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX21vY3Mu YyB8IDEzMyArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaCAgICAgIHwgIDE5ICsrLS0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNl cnRpb25zKCspLCA4OCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9tb2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9t b2NzLmMKPiBpbmRleCBlNmYzZjM2YTM5ODguLjQ3ZDE2YTI0MjE4MyAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9tb2NzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9tb2NzLmMKPiBAQCAtMzI5LDI3ICszMjksNiBAQCBzdGF0aWMgYm9v bCBnZXRfbW9jc19zZXR0aW5ncyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK PiAgCXJldHVybiB0cnVlOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaTkxNV9yZWdfdCBtb2NzX3JlZ2lz dGVyKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IGluZGV4KQo+IC17 Cj4gLQlzd2l0Y2ggKGVuZ2luZS0+aWQpIHsKPiAtCWNhc2UgUkNTMDoKPiAtCQlyZXR1cm4gR0VO OV9HRlhfTU9DUyhpbmRleCk7Cj4gLQljYXNlIFZDUzA6Cj4gLQkJcmV0dXJuIEdFTjlfTUZYMF9N T0NTKGluZGV4KTsKPiAtCWNhc2UgQkNTMDoKPiAtCQlyZXR1cm4gR0VOOV9CTFRfTU9DUyhpbmRl eCk7Cj4gLQljYXNlIFZFQ1MwOgo+IC0JCXJldHVybiBHRU45X1ZFQk9YX01PQ1MoaW5kZXgpOwo+ IC0JY2FzZSBWQ1MxOgo+IC0JCXJldHVybiBHRU45X01GWDFfTU9DUyhpbmRleCk7Cj4gLQljYXNl IFZDUzI6Cj4gLQkJcmV0dXJuIEdFTjExX01GWDJfTU9DUyhpbmRleCk7Cj4gLQlkZWZhdWx0Ogo+ IC0JCU1JU1NJTkdfQ0FTRShlbmdpbmUtPmlkKTsKPiAtCQlyZXR1cm4gSU5WQUxJRF9NTUlPX1JF RzsKPiAtCX0KPiAtfQo+IC0KPiAgLyoKPiAgICogR2V0IGNvbnRyb2xfdmFsdWUgZnJvbSBNT0NT IGVudHJ5IHRha2luZyBpbnRvIGFjY291bnQgd2hlbiBpdCdzIG5vdCB1c2VkOgo+ICAgKiBJOTE1 X01PQ1NfUFRFJ3MgdmFsdWUgaXMgcmV0dXJuZWQgaW4gdGhpcyBjYXNlLgo+IEBAIC0zNTcsMjkg KzMzNiw0NyBAQCBzdGF0aWMgaTkxNV9yZWdfdCBtb2NzX3JlZ2lzdGVyKGNvbnN0IHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IGluZGV4KQo+ICBzdGF0aWMgdTMyIGdldF9lbnRy eV9jb250cm9sKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJsZSwKPiAgCQkJ ICAgICB1bnNpZ25lZCBpbnQgaW5kZXgpCj4gIHsKPiAtCWlmICh0YWJsZS0+dGFibGVbaW5kZXhd LnVzZWQpCj4gKwlpZiAoaW5kZXggPCB0YWJsZS0+c2l6ZSAmJiB0YWJsZS0+dGFibGVbaW5kZXhd LnVzZWQpCj4gIAkJcmV0dXJuIHRhYmxlLT50YWJsZVtpbmRleF0uY29udHJvbF92YWx1ZTsKPiAg Cj4gIAlyZXR1cm4gdGFibGUtPnRhYmxlW0k5MTVfTU9DU19QVEVdLmNvbnRyb2xfdmFsdWU7Cj4g IH0KPiAgCj4gLXN0YXRpYyB2b2lkIGluaXRfbW9jc190YWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUsCj4gLQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSAq dGFibGUpCj4gKyNkZWZpbmUgZm9yX2VhY2hfbW9jcyhtb2NzLCB0LCBpKSBcCj4gKwlmb3IgKGkg PSAwOyBcCj4gKwkgICAgIGkgPCAodCktPm5fZW50cmllcyA/IChtb2NzID0gZ2V0X2VudHJ5X2Nv bnRyb2woKHQpLCBpKSksIDEgOiAwO1wKPiArCSAgICAgaSsrKQo+ICsKPiArc3RhdGljIHZvaWQg X19pbml0X21vY3NfdGFibGUoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAo+ICsJCQkgICAg ICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSAqdGFibGUsCj4gKwkJCSAgICAgIHUz MiBhZGRyKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBlbmdpbmUtPnVu Y29yZTsKPiAtCXUzMiB1bnVzZWRfdmFsdWUgPSB0YWJsZS0+dGFibGVbSTkxNV9NT0NTX1BURV0u Y29udHJvbF92YWx1ZTsKPiAgCXVuc2lnbmVkIGludCBpOwo+ICsJdTMyIG1vY3M7Cj4gIAo+IC0J Zm9yIChpID0gMDsgaSA8IHRhYmxlLT5zaXplOyBpKyspCj4gLQkJaW50ZWxfdW5jb3JlX3dyaXRl X2Z3KHVuY29yZSwKPiAtCQkJCSAgICAgIG1vY3NfcmVnaXN0ZXIoZW5naW5lLCBpKSwKPiAtCQkJ CSAgICAgIGdldF9lbnRyeV9jb250cm9sKHRhYmxlLCBpKSk7Cj4gKwlmb3JfZWFjaF9tb2NzKG1v Y3MsIHRhYmxlLCBpKQo+ICsJCWludGVsX3VuY29yZV93cml0ZV9mdyh1bmNvcmUsIF9NTUlPKGFk ZHIgKyBpICogNCksIG1vY3MpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdTMyIG1vY3Nfb2Zmc2V0KGNv bnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArewo+ICsJc3RhdGljIGNvbnN0 IHUzMiBvZmZzZXRbXSA9IHsKPiArCQlbUkNTMF0gID0gIF9fR0VOOV9SQ1MwX01PQ1MwLAo+ICsJ CVtWQ1MwXSAgPSAgX19HRU45X1ZDUzBfTU9DUzAsCj4gKwkJW1ZDUzFdICA9ICBfX0dFTjlfVkNT MV9NT0NTMCwKPiArCQlbVkVDUzBdID0gIF9fR0VOOV9WRUNTMF9NT0NTMCwKPiArCQlbQkNTMF0g ID0gIF9fR0VOOV9CQ1MwX01PQ1MwLAo+ICsJCVtWQ1MyXSAgPSBfX0dFTjExX1ZDUzJfTU9DUzAs Cj4gKwl9Owo+ICsKPiArCUdFTV9CVUdfT04oZW5naW5lLT5pZCA+PSBBUlJBWV9TSVpFKG9mZnNl dCkpOwo+ICsJcmV0dXJuIG9mZnNldFtlbmdpbmUtPmlkXTsKPiArfQo+ICAKPiAtCS8qIEFsbCBy ZW1haW5pbmcgZW50cmllcyBhcmUgdW51c2VkICovCj4gLQlmb3IgKDsgaSA8IHRhYmxlLT5uX2Vu dHJpZXM7IGkrKykKPiAtCQlpbnRlbF91bmNvcmVfd3JpdGVfZncodW5jb3JlLAo+IC0JCQkJICAg ICAgbW9jc19yZWdpc3RlcihlbmdpbmUsIGkpLAo+IC0JCQkJICAgICAgdW51c2VkX3ZhbHVlKTsK PiArc3RhdGljIHZvaWQgaW5pdF9tb2NzX3RhYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSwKPiArCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJsZSkK PiArewo+ICsJX19pbml0X21vY3NfdGFibGUoZW5naW5lLT51bmNvcmUsIHRhYmxlLCBtb2NzX29m ZnNldChlbmdpbmUpKTsKPiAgfQo+ICAKPiAgLyoKPiBAQCAtMzg5LDcgKzM4Niw3IEBAIHN0YXRp YyB2b2lkIGluaXRfbW9jc190YWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4g IHN0YXRpYyB1MTYgZ2V0X2VudHJ5X2wzY2MoY29uc3Qgc3RydWN0IGRybV9pOTE1X21vY3NfdGFi bGUgKnRhYmxlLAo+ICAJCQkgIHVuc2lnbmVkIGludCBpbmRleCkKPiAgewo+IC0JaWYgKHRhYmxl LT50YWJsZVtpbmRleF0udXNlZCkKPiArCWlmIChpbmRleCA8IHRhYmxlLT5zaXplICYmIHRhYmxl LT50YWJsZVtpbmRleF0udXNlZCkKPiAgCQlyZXR1cm4gdGFibGUtPnRhYmxlW2luZGV4XS5sM2Nj X3ZhbHVlOwo+ICAKPiAgCXJldHVybiB0YWJsZS0+dGFibGVbSTkxNV9NT0NTX1BURV0ubDNjY192 YWx1ZTsKPiBAQCAtNDAwLDM3ICszOTcsMjMgQEAgc3RhdGljIGlubGluZSB1MzIgbDNjY19jb21i aW5lKHUxNiBsb3csIHUxNiBoaWdoKQo+ICAJcmV0dXJuIGxvdyB8ICh1MzIpaGlnaCA8PCAxNjsK PiAgfQo+ICAKPiArI2RlZmluZSBmb3JfZWFjaF9sM2NjKGwzY2MsIHQsIGkpIFwKPiArCWZvciAo aSA9IDA7IFwKPiArCSAgICAgaSA8ICgodCktPm5fZW50cmllcyArIDEpIC8gMiA/IFwKPiArCSAg ICAgKGwzY2MgPSBsM2NjX2NvbWJpbmUoZ2V0X2VudHJ5X2wzY2MoKHQpLCAyICogaSksIFwKPiAr CQkJCSAgZ2V0X2VudHJ5X2wzY2MoKHQpLCAyICogaSArIDEpKSksIDEgOiBcCj4gKwkgICAgIDA7 IFwKPiArCSAgICAgaSsrKQo+ICsKPiAgc3RhdGljIHZvaWQgaW5pdF9sM2NjX3RhYmxlKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAgCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1faTkx NV9tb2NzX3RhYmxlICp0YWJsZSkKPiAgewo+ICAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3Jl ID0gZW5naW5lLT51bmNvcmU7Cj4gLQl1MTYgdW51c2VkX3ZhbHVlID0gdGFibGUtPnRhYmxlW0k5 MTVfTU9DU19QVEVdLmwzY2NfdmFsdWU7Cj4gIAl1bnNpZ25lZCBpbnQgaTsKPiArCXUzMiBsM2Nj Owo+ICAKPiAtCWZvciAoaSA9IDA7IGkgPCB0YWJsZS0+c2l6ZSAvIDI7IGkrKykgewo+IC0JCXUx NiBsb3cgPSBnZXRfZW50cnlfbDNjYyh0YWJsZSwgMiAqIGkpOwo+IC0JCXUxNiBoaWdoID0gZ2V0 X2VudHJ5X2wzY2ModGFibGUsIDIgKiBpICsgMSk7Cj4gLQo+IC0JCWludGVsX3VuY29yZV93cml0 ZSh1bmNvcmUsCj4gLQkJCQkgICBHRU45X0xOQ0ZDTU9DUyhpKSwKPiAtCQkJCSAgIGwzY2NfY29t YmluZShsb3csIGhpZ2gpKTsKPiAtCX0KPiAtCj4gLQkvKiBPZGQgdGFibGUgc2l6ZSAtIDEgbGVm dCBvdmVyICovCj4gLQlpZiAodGFibGUtPnNpemUgJiAxKSB7Cj4gLQkJdTE2IGxvdyA9IGdldF9l bnRyeV9sM2NjKHRhYmxlLCAyICogaSk7Cj4gLQo+IC0JCWludGVsX3VuY29yZV93cml0ZSh1bmNv cmUsCj4gLQkJCQkgICBHRU45X0xOQ0ZDTU9DUyhpKSwKPiAtCQkJCSAgIGwzY2NfY29tYmluZShs b3csIHVudXNlZF92YWx1ZSkpOwo+IC0JCWkrKzsKPiAtCX0KPiAtCj4gLQkvKiBBbGwgcmVtYWlu aW5nIGVudHJpZXMgYXJlIGFsc28gdW51c2VkICovCj4gLQlmb3IgKDsgaSA8IHRhYmxlLT5uX2Vu dHJpZXMgLyAyOyBpKyspCj4gLQkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwKPiAtCQkJCSAg IEdFTjlfTE5DRkNNT0NTKGkpLAo+IC0JCQkJICAgbDNjY19jb21iaW5lKHVudXNlZF92YWx1ZSwg dW51c2VkX3ZhbHVlKSk7Cj4gKwlmb3JfZWFjaF9sM2NjKGwzY2MsIHRhYmxlLCBpKQo+ICsJCWlu dGVsX3VuY29yZV93cml0ZV9mdyh1bmNvcmUsIEdFTjlfTE5DRkNNT0NTKGkpLCBsM2NjKTsKPiAg fQo+ICAKPiAgdm9pZCBpbnRlbF9tb2NzX2luaXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKPiBAQCAtNDUxLDExICs0MzQsMTQgQEAgdm9pZCBpbnRlbF9tb2NzX2luaXRf ZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCQlpbml0X2wzY2NfdGFi bGUoZW5naW5lLCAmdGFibGUpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9tb2NzX2lu aXRfZ2xvYmFsKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCj4gK3N0YXRpYyB1MzIgZ2xvYmFsX21vY3Nf b2Zmc2V0KHZvaWQpCj4gK3sKPiArCXJldHVybiBpOTE1X21taW9fcmVnX29mZnNldChHRU4xMl9H TE9CQUxfTU9DUygwKSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGluaXRfZ2xvYmFsX21vY3Mo c3RydWN0IGludGVsX2d0ICpndCkKPiAgewo+IC0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3Jl ID0gZ3QtPnVuY29yZTsKPiAgCXN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlIHRhYmxlOwo+IC0J dW5zaWduZWQgaW50IGluZGV4Owo+ICAKPiAgCS8qCj4gIAkgKiBMTEMgYW5kIGVEUkFNIGNvbnRy b2wgdmFsdWVzIGFyZSBub3QgYXBwbGljYWJsZSB0byBkZ2Z4Cj4gQEAgLTQ2MywyOSArNDQ5LDE0 IEBAIHN0YXRpYyB2b2lkIGludGVsX21vY3NfaW5pdF9nbG9iYWwoc3RydWN0IGludGVsX2d0ICpn dCkKPiAgCWlmIChJU19ER0ZYKGd0LT5pOTE1KSkKPiAgCQlyZXR1cm47Cj4gIAo+IC0JR0VNX0JV R19PTighSEFTX0dMT0JBTF9NT0NTX1JFR0lTVEVSUyhndC0+aTkxNSkpOwo+IC0KPiAgCWlmICgh Z2V0X21vY3Nfc2V0dGluZ3MoZ3QtPmk5MTUsICZ0YWJsZSkpCj4gIAkJcmV0dXJuOwo+ICAKPiAt CWZvciAoaW5kZXggPSAwOyBpbmRleCA8IHRhYmxlLnNpemU7IGluZGV4KyspCj4gLQkJaW50ZWxf dW5jb3JlX3dyaXRlKHVuY29yZSwKPiAtCQkJCSAgIEdFTjEyX0dMT0JBTF9NT0NTKGluZGV4KSwK PiAtCQkJCSAgIHRhYmxlLnRhYmxlW2luZGV4XS5jb250cm9sX3ZhbHVlKTsKPiAtCj4gLQkvKgo+ IC0JICogT2ssIG5vdyBzZXQgdGhlIHVudXNlZCBlbnRyaWVzIHRvIHRoZSBpbnZhbGlkIGVudHJ5 IChpbmRleCAwKS4gVGhlc2UKPiAtCSAqIGVudHJpZXMgYXJlIG9mZmljaWFsbHkgdW5kZWZpbmVk IGFuZCBubyBjb250cmFjdCBmb3IgdGhlIGNvbnRlbnRzIGFuZAo+IC0JICogc2V0dGluZ3MgaXMg Z2l2ZW4gZm9yIHRoZXNlIGVudHJpZXMuCj4gLQkgKi8KPiAtCWZvciAoOyBpbmRleCA8IHRhYmxl Lm5fZW50cmllczsgaW5kZXgrKykKPiAtCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAo+IC0J CQkJICAgR0VOMTJfR0xPQkFMX01PQ1MoaW5kZXgpLAo+IC0JCQkJICAgdGFibGUudGFibGVbSTkx NV9NT0NTX1BURV0uY29udHJvbF92YWx1ZSk7Cj4gKwlfX2luaXRfbW9jc190YWJsZShndC0+dW5j b3JlLCAmdGFibGUsIGdsb2JhbF9tb2NzX29mZnNldCgpKTsKPiAgfQo+ICAKPiAgdm9pZCBpbnRl bF9tb2NzX2luaXQoc3RydWN0IGludGVsX2d0ICpndCkKPiAgewo+ICAJaWYgKEhBU19HTE9CQUxf TU9DU19SRUdJU1RFUlMoZ3QtPmk5MTUpKQo+IC0JCWludGVsX21vY3NfaW5pdF9nbG9iYWwoZ3Qp Owo+ICsJCWluaXRfZ2xvYmFsX21vY3MoZ3QpOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o Cj4gaW5kZXggMmZmY2MyMTY3MGI3Li4wOTYwZWEwYjVhNjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKPiBAQCAtMTE2ODgsMTMgKzExNjg4LDE4IEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUg ewo+ICAvKiBNT0NTIChNZW1vcnkgT2JqZWN0IENvbnRyb2wgU3RhdGUpIHJlZ2lzdGVycyAqLwo+ ICAjZGVmaW5lIEdFTjlfTE5DRkNNT0NTKGkpCV9NTUlPKDB4YjAyMCArIChpKSAqIDQpCS8qIEwz IENhY2hlIENvbnRyb2wgKi8KPiAgCj4gLSNkZWZpbmUgR0VOOV9HRlhfTU9DUyhpKQlfTU1JTygw eGM4MDAgKyAoaSkgKiA0KQkvKiBHcmFwaGljcyBNT0NTIHJlZ2lzdGVycyAqLwo+IC0jZGVmaW5l IEdFTjlfTUZYMF9NT0NTKGkpCV9NTUlPKDB4YzkwMCArIChpKSAqIDQpCS8qIE1lZGlhIDAgTU9D UyByZWdpc3RlcnMgKi8KPiAtI2RlZmluZSBHRU45X01GWDFfTU9DUyhpKQlfTU1JTygweGNhMDAg KyAoaSkgKiA0KQkvKiBNZWRpYSAxIE1PQ1MgcmVnaXN0ZXJzICovCj4gLSNkZWZpbmUgR0VOOV9W RUJPWF9NT0NTKGkpCV9NTUlPKDB4Y2IwMCArIChpKSAqIDQpCS8qIFZpZGVvIE1PQ1MgcmVnaXN0 ZXJzICovCj4gLSNkZWZpbmUgR0VOOV9CTFRfTU9DUyhpKQlfTU1JTygweGNjMDAgKyAoaSkgKiA0 KQkvKiBCbGl0dGVyIE1PQ1MgcmVnaXN0ZXJzICovCj4gLS8qIE1lZGlhIGRlY29kZXIgMiBNT0NT IHJlZ2lzdGVycyAqLwo+IC0jZGVmaW5lIEdFTjExX01GWDJfTU9DUyhpKQlfTU1JTygweDEwMDAw ICsgKGkpICogNCkKPiArI2RlZmluZSBfX0dFTjlfUkNTMF9NT0NTMAkweGM4MDAKPiArI2RlZmlu ZSBHRU45X0dGWF9NT0NTKGkpCV9NTUlPKF9fR0VOOV9SQ1MwX01PQ1MwICsgKGkpICogNCkKPiAr I2RlZmluZSBfX0dFTjlfVkNTMF9NT0NTMAkweGM5MDAKPiArI2RlZmluZSBHRU45X01GWDBfTU9D UyhpKQlfTU1JTyhfX0dFTjlfVkNTMF9NT0NTMCArIChpKSAqIDQpCj4gKyNkZWZpbmUgX19HRU45 X1ZDUzFfTU9DUzAJMHhjYTAwCj4gKyNkZWZpbmUgR0VOOV9NRlgxX01PQ1MoaSkJX01NSU8oX19H RU45X1ZDUzFfTU9DUzAgKyAoaSkgKiA0KQo+ICsjZGVmaW5lIF9fR0VOOV9WRUNTMF9NT0NTMAkw eGNiMDAKPiArI2RlZmluZSBHRU45X1ZFQk9YX01PQ1MoaSkJX01NSU8oX19HRU45X1ZFQ1MwX01P Q1MwICsgKGkpICogNCkKPiArI2RlZmluZSBfX0dFTjlfQkNTMF9NT0NTMAkweGNjMDAKPiArI2Rl ZmluZSBHRU45X0JMVF9NT0NTKGkpCV9NTUlPKF9fR0VOOV9CQ1MwX01PQ1MwICsgKGkpICogNCkK PiArI2RlZmluZSBfX0dFTjExX1ZDUzJfTU9DUzAJMHgxMDAwMAo+ICsjZGVmaW5lIEdFTjExX01G WDJfTU9DUyhpKQlfTU1JTyhfX0dFTjExX1ZDUzJfTU9DUzAgKyAoaSkgKiA0KQo+ICAKPiAgI2Rl ZmluZSBHRU4xMF9TQ1JBVENIX0xOQ0YyCQlfTU1JTygweGIwYTApCj4gICNkZWZpbmUgICBQTUZM VVNIRE9ORV9MTklDUlNEUk9QCSgxIDw8IDIwKQo+IC0tIAo+IDIuMjQuMApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng= 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=-3.9 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED 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 CDFB7C432C3 for ; Thu, 14 Nov 2019 17:35:44 +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 A3C17206CC for ; Thu, 14 Nov 2019 17:35:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A3C17206CC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.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 496F56EE5C; Thu, 14 Nov 2019 17:35:44 +0000 (UTC) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 11BD86EE5C for ; Thu, 14 Nov 2019 17:35:42 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Nov 2019 09:35:42 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,304,1569308400"; d="scan'208";a="208187948" Received: from gaia.fi.intel.com ([10.237.72.192]) by orsmga006.jf.intel.com with ESMTP; 14 Nov 2019 09:35:41 -0800 Received: by gaia.fi.intel.com (Postfix, from userid 1000) id 8D4B15C1DD9; Thu, 14 Nov 2019 19:35:29 +0200 (EET) From: Mika Kuoppala To: Chris Wilson , intel-gfx@lists.freedesktop.org In-Reply-To: <20191112223600.30993-3-chris@chris-wilson.co.uk> References: <20191112223600.30993-1-chris@chris-wilson.co.uk> <20191112223600.30993-3-chris@chris-wilson.co.uk> Date: Thu, 14 Nov 2019 19:35:29 +0200 Message-ID: <87ftiqxswu.fsf@gaia.fi.intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH 3/4] drm/i915/gt: Refactor mocs loops into single control macro 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: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191114173529.4yohyK8k5OxMrzqSkV5LVvRx9dGqgzCahsHvMdfiqSw@z> Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gV2UgcmVw ZWF0ZWRseSAoYW5kIG1vcmUgc28gaW4gZnV0dXJlKSB1c2UgdGhlIHNhbWUgbG9vcGluZyBjb25z dHJ1Y3QKPiBvdmVyIHRoZSBtb2NzIGRlZmluaXRpb24gdGFibGUgdG8gc2V0dXAgdGhlIHJlZ2lz dGVyIHN0YXRlLiBSZWZhY3RvciB0aGUKPiBsb29wIGNvbnN0cnVjdCBpbnRvIGEgcmV1c2FibGUg bWFjcm8uCj4KPiBhZGQvcmVtb3ZlOiAyLzEgZ3Jvdy9zaHJpbms6IDEvMiB1cC9kb3duOiAxMTMv LTMzMCAoLTIxNykKPiBGdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvbGQgICAgIG5ldyAgIGRlbHRhCj4gaW50ZWxfbW9jc19pbml0X2VuZ2luZS5jb2xkICAgICAg ICAgICAgICAgICAgICAtICAgICAgNzEgICAgICs3MQo+IG9mZnNldCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLSAgICAgIDI4ICAgICArMjgKPiBfX2Z1bmNfXyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcyNzMgICAxNzI4NyAgICAgKzE0Cj4gaW50 ZWxfbW9jc19pbml0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQzICAgICAxMTMgICAg IC0zMAo+IG1vY3NfcmVnaXN0ZXIuaXNyYSAgICAgICAgICAgICAgICAgICAgICAgICAgICA5MSAg ICAgICAtICAgICAtOTEKPiBpbnRlbF9tb2NzX2luaXRfZW5naW5lICAgICAgICAgICAgICAgICAg ICAgICA1MDMgICAgIDI5NCAgICAtMjA5CgpFZmZlY3RpdmUgZGlldC4KCj4KPiBTaWduZWQtb2Zm LWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KCkNvdWxkIG5vdCBz cG90IGFueXRoaW5nIG9mZiBhdCB0aGlzIHJvdW5kIGFuZCBldmVuIHByZXR0eQpkZWZpbmVzIHRo aXMgdGltZS4KClJldmlld2VkLWJ5OiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4 LmludGVsLmNvbT4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX21vY3Mu YyB8IDEzMyArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaCAgICAgIHwgIDE5ICsrLS0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNl cnRpb25zKCspLCA4OCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9tb2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9t b2NzLmMKPiBpbmRleCBlNmYzZjM2YTM5ODguLjQ3ZDE2YTI0MjE4MyAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9tb2NzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9tb2NzLmMKPiBAQCAtMzI5LDI3ICszMjksNiBAQCBzdGF0aWMgYm9v bCBnZXRfbW9jc19zZXR0aW5ncyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK PiAgCXJldHVybiB0cnVlOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaTkxNV9yZWdfdCBtb2NzX3JlZ2lz dGVyKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IGluZGV4KQo+IC17 Cj4gLQlzd2l0Y2ggKGVuZ2luZS0+aWQpIHsKPiAtCWNhc2UgUkNTMDoKPiAtCQlyZXR1cm4gR0VO OV9HRlhfTU9DUyhpbmRleCk7Cj4gLQljYXNlIFZDUzA6Cj4gLQkJcmV0dXJuIEdFTjlfTUZYMF9N T0NTKGluZGV4KTsKPiAtCWNhc2UgQkNTMDoKPiAtCQlyZXR1cm4gR0VOOV9CTFRfTU9DUyhpbmRl eCk7Cj4gLQljYXNlIFZFQ1MwOgo+IC0JCXJldHVybiBHRU45X1ZFQk9YX01PQ1MoaW5kZXgpOwo+ IC0JY2FzZSBWQ1MxOgo+IC0JCXJldHVybiBHRU45X01GWDFfTU9DUyhpbmRleCk7Cj4gLQljYXNl IFZDUzI6Cj4gLQkJcmV0dXJuIEdFTjExX01GWDJfTU9DUyhpbmRleCk7Cj4gLQlkZWZhdWx0Ogo+ IC0JCU1JU1NJTkdfQ0FTRShlbmdpbmUtPmlkKTsKPiAtCQlyZXR1cm4gSU5WQUxJRF9NTUlPX1JF RzsKPiAtCX0KPiAtfQo+IC0KPiAgLyoKPiAgICogR2V0IGNvbnRyb2xfdmFsdWUgZnJvbSBNT0NT IGVudHJ5IHRha2luZyBpbnRvIGFjY291bnQgd2hlbiBpdCdzIG5vdCB1c2VkOgo+ICAgKiBJOTE1 X01PQ1NfUFRFJ3MgdmFsdWUgaXMgcmV0dXJuZWQgaW4gdGhpcyBjYXNlLgo+IEBAIC0zNTcsMjkg KzMzNiw0NyBAQCBzdGF0aWMgaTkxNV9yZWdfdCBtb2NzX3JlZ2lzdGVyKGNvbnN0IHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IGluZGV4KQo+ICBzdGF0aWMgdTMyIGdldF9lbnRy eV9jb250cm9sKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJsZSwKPiAgCQkJ ICAgICB1bnNpZ25lZCBpbnQgaW5kZXgpCj4gIHsKPiAtCWlmICh0YWJsZS0+dGFibGVbaW5kZXhd LnVzZWQpCj4gKwlpZiAoaW5kZXggPCB0YWJsZS0+c2l6ZSAmJiB0YWJsZS0+dGFibGVbaW5kZXhd LnVzZWQpCj4gIAkJcmV0dXJuIHRhYmxlLT50YWJsZVtpbmRleF0uY29udHJvbF92YWx1ZTsKPiAg Cj4gIAlyZXR1cm4gdGFibGUtPnRhYmxlW0k5MTVfTU9DU19QVEVdLmNvbnRyb2xfdmFsdWU7Cj4g IH0KPiAgCj4gLXN0YXRpYyB2b2lkIGluaXRfbW9jc190YWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUsCj4gLQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSAq dGFibGUpCj4gKyNkZWZpbmUgZm9yX2VhY2hfbW9jcyhtb2NzLCB0LCBpKSBcCj4gKwlmb3IgKGkg PSAwOyBcCj4gKwkgICAgIGkgPCAodCktPm5fZW50cmllcyA/IChtb2NzID0gZ2V0X2VudHJ5X2Nv bnRyb2woKHQpLCBpKSksIDEgOiAwO1wKPiArCSAgICAgaSsrKQo+ICsKPiArc3RhdGljIHZvaWQg X19pbml0X21vY3NfdGFibGUoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLAo+ICsJCQkgICAg ICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc190YWJsZSAqdGFibGUsCj4gKwkJCSAgICAgIHUz MiBhZGRyKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSBlbmdpbmUtPnVu Y29yZTsKPiAtCXUzMiB1bnVzZWRfdmFsdWUgPSB0YWJsZS0+dGFibGVbSTkxNV9NT0NTX1BURV0u Y29udHJvbF92YWx1ZTsKPiAgCXVuc2lnbmVkIGludCBpOwo+ICsJdTMyIG1vY3M7Cj4gIAo+IC0J Zm9yIChpID0gMDsgaSA8IHRhYmxlLT5zaXplOyBpKyspCj4gLQkJaW50ZWxfdW5jb3JlX3dyaXRl X2Z3KHVuY29yZSwKPiAtCQkJCSAgICAgIG1vY3NfcmVnaXN0ZXIoZW5naW5lLCBpKSwKPiAtCQkJ CSAgICAgIGdldF9lbnRyeV9jb250cm9sKHRhYmxlLCBpKSk7Cj4gKwlmb3JfZWFjaF9tb2NzKG1v Y3MsIHRhYmxlLCBpKQo+ICsJCWludGVsX3VuY29yZV93cml0ZV9mdyh1bmNvcmUsIF9NTUlPKGFk ZHIgKyBpICogNCksIG1vY3MpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdTMyIG1vY3Nfb2Zmc2V0KGNv bnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArewo+ICsJc3RhdGljIGNvbnN0 IHUzMiBvZmZzZXRbXSA9IHsKPiArCQlbUkNTMF0gID0gIF9fR0VOOV9SQ1MwX01PQ1MwLAo+ICsJ CVtWQ1MwXSAgPSAgX19HRU45X1ZDUzBfTU9DUzAsCj4gKwkJW1ZDUzFdICA9ICBfX0dFTjlfVkNT MV9NT0NTMCwKPiArCQlbVkVDUzBdID0gIF9fR0VOOV9WRUNTMF9NT0NTMCwKPiArCQlbQkNTMF0g ID0gIF9fR0VOOV9CQ1MwX01PQ1MwLAo+ICsJCVtWQ1MyXSAgPSBfX0dFTjExX1ZDUzJfTU9DUzAs Cj4gKwl9Owo+ICsKPiArCUdFTV9CVUdfT04oZW5naW5lLT5pZCA+PSBBUlJBWV9TSVpFKG9mZnNl dCkpOwo+ICsJcmV0dXJuIG9mZnNldFtlbmdpbmUtPmlkXTsKPiArfQo+ICAKPiAtCS8qIEFsbCBy ZW1haW5pbmcgZW50cmllcyBhcmUgdW51c2VkICovCj4gLQlmb3IgKDsgaSA8IHRhYmxlLT5uX2Vu dHJpZXM7IGkrKykKPiAtCQlpbnRlbF91bmNvcmVfd3JpdGVfZncodW5jb3JlLAo+IC0JCQkJICAg ICAgbW9jc19yZWdpc3RlcihlbmdpbmUsIGkpLAo+IC0JCQkJICAgICAgdW51c2VkX3ZhbHVlKTsK PiArc3RhdGljIHZvaWQgaW5pdF9tb2NzX3RhYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSwKPiArCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJsZSkK PiArewo+ICsJX19pbml0X21vY3NfdGFibGUoZW5naW5lLT51bmNvcmUsIHRhYmxlLCBtb2NzX29m ZnNldChlbmdpbmUpKTsKPiAgfQo+ICAKPiAgLyoKPiBAQCAtMzg5LDcgKzM4Niw3IEBAIHN0YXRp YyB2b2lkIGluaXRfbW9jc190YWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4g IHN0YXRpYyB1MTYgZ2V0X2VudHJ5X2wzY2MoY29uc3Qgc3RydWN0IGRybV9pOTE1X21vY3NfdGFi bGUgKnRhYmxlLAo+ICAJCQkgIHVuc2lnbmVkIGludCBpbmRleCkKPiAgewo+IC0JaWYgKHRhYmxl LT50YWJsZVtpbmRleF0udXNlZCkKPiArCWlmIChpbmRleCA8IHRhYmxlLT5zaXplICYmIHRhYmxl LT50YWJsZVtpbmRleF0udXNlZCkKPiAgCQlyZXR1cm4gdGFibGUtPnRhYmxlW2luZGV4XS5sM2Nj X3ZhbHVlOwo+ICAKPiAgCXJldHVybiB0YWJsZS0+dGFibGVbSTkxNV9NT0NTX1BURV0ubDNjY192 YWx1ZTsKPiBAQCAtNDAwLDM3ICszOTcsMjMgQEAgc3RhdGljIGlubGluZSB1MzIgbDNjY19jb21i aW5lKHUxNiBsb3csIHUxNiBoaWdoKQo+ICAJcmV0dXJuIGxvdyB8ICh1MzIpaGlnaCA8PCAxNjsK PiAgfQo+ICAKPiArI2RlZmluZSBmb3JfZWFjaF9sM2NjKGwzY2MsIHQsIGkpIFwKPiArCWZvciAo aSA9IDA7IFwKPiArCSAgICAgaSA8ICgodCktPm5fZW50cmllcyArIDEpIC8gMiA/IFwKPiArCSAg ICAgKGwzY2MgPSBsM2NjX2NvbWJpbmUoZ2V0X2VudHJ5X2wzY2MoKHQpLCAyICogaSksIFwKPiAr CQkJCSAgZ2V0X2VudHJ5X2wzY2MoKHQpLCAyICogaSArIDEpKSksIDEgOiBcCj4gKwkgICAgIDA7 IFwKPiArCSAgICAgaSsrKQo+ICsKPiAgc3RhdGljIHZvaWQgaW5pdF9sM2NjX3RhYmxlKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAgCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1faTkx NV9tb2NzX3RhYmxlICp0YWJsZSkKPiAgewo+ICAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3Jl ID0gZW5naW5lLT51bmNvcmU7Cj4gLQl1MTYgdW51c2VkX3ZhbHVlID0gdGFibGUtPnRhYmxlW0k5 MTVfTU9DU19QVEVdLmwzY2NfdmFsdWU7Cj4gIAl1bnNpZ25lZCBpbnQgaTsKPiArCXUzMiBsM2Nj Owo+ICAKPiAtCWZvciAoaSA9IDA7IGkgPCB0YWJsZS0+c2l6ZSAvIDI7IGkrKykgewo+IC0JCXUx NiBsb3cgPSBnZXRfZW50cnlfbDNjYyh0YWJsZSwgMiAqIGkpOwo+IC0JCXUxNiBoaWdoID0gZ2V0 X2VudHJ5X2wzY2ModGFibGUsIDIgKiBpICsgMSk7Cj4gLQo+IC0JCWludGVsX3VuY29yZV93cml0 ZSh1bmNvcmUsCj4gLQkJCQkgICBHRU45X0xOQ0ZDTU9DUyhpKSwKPiAtCQkJCSAgIGwzY2NfY29t YmluZShsb3csIGhpZ2gpKTsKPiAtCX0KPiAtCj4gLQkvKiBPZGQgdGFibGUgc2l6ZSAtIDEgbGVm dCBvdmVyICovCj4gLQlpZiAodGFibGUtPnNpemUgJiAxKSB7Cj4gLQkJdTE2IGxvdyA9IGdldF9l bnRyeV9sM2NjKHRhYmxlLCAyICogaSk7Cj4gLQo+IC0JCWludGVsX3VuY29yZV93cml0ZSh1bmNv cmUsCj4gLQkJCQkgICBHRU45X0xOQ0ZDTU9DUyhpKSwKPiAtCQkJCSAgIGwzY2NfY29tYmluZShs b3csIHVudXNlZF92YWx1ZSkpOwo+IC0JCWkrKzsKPiAtCX0KPiAtCj4gLQkvKiBBbGwgcmVtYWlu aW5nIGVudHJpZXMgYXJlIGFsc28gdW51c2VkICovCj4gLQlmb3IgKDsgaSA8IHRhYmxlLT5uX2Vu dHJpZXMgLyAyOyBpKyspCj4gLQkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwKPiAtCQkJCSAg IEdFTjlfTE5DRkNNT0NTKGkpLAo+IC0JCQkJICAgbDNjY19jb21iaW5lKHVudXNlZF92YWx1ZSwg dW51c2VkX3ZhbHVlKSk7Cj4gKwlmb3JfZWFjaF9sM2NjKGwzY2MsIHRhYmxlLCBpKQo+ICsJCWlu dGVsX3VuY29yZV93cml0ZV9mdyh1bmNvcmUsIEdFTjlfTE5DRkNNT0NTKGkpLCBsM2NjKTsKPiAg fQo+ICAKPiAgdm9pZCBpbnRlbF9tb2NzX2luaXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKPiBAQCAtNDUxLDExICs0MzQsMTQgQEAgdm9pZCBpbnRlbF9tb2NzX2luaXRf ZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCQlpbml0X2wzY2NfdGFi bGUoZW5naW5lLCAmdGFibGUpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9tb2NzX2lu aXRfZ2xvYmFsKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCj4gK3N0YXRpYyB1MzIgZ2xvYmFsX21vY3Nf b2Zmc2V0KHZvaWQpCj4gK3sKPiArCXJldHVybiBpOTE1X21taW9fcmVnX29mZnNldChHRU4xMl9H TE9CQUxfTU9DUygwKSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGluaXRfZ2xvYmFsX21vY3Mo c3RydWN0IGludGVsX2d0ICpndCkKPiAgewo+IC0Jc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3Jl ID0gZ3QtPnVuY29yZTsKPiAgCXN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlIHRhYmxlOwo+IC0J dW5zaWduZWQgaW50IGluZGV4Owo+ICAKPiAgCS8qCj4gIAkgKiBMTEMgYW5kIGVEUkFNIGNvbnRy b2wgdmFsdWVzIGFyZSBub3QgYXBwbGljYWJsZSB0byBkZ2Z4Cj4gQEAgLTQ2MywyOSArNDQ5LDE0 IEBAIHN0YXRpYyB2b2lkIGludGVsX21vY3NfaW5pdF9nbG9iYWwoc3RydWN0IGludGVsX2d0ICpn dCkKPiAgCWlmIChJU19ER0ZYKGd0LT5pOTE1KSkKPiAgCQlyZXR1cm47Cj4gIAo+IC0JR0VNX0JV R19PTighSEFTX0dMT0JBTF9NT0NTX1JFR0lTVEVSUyhndC0+aTkxNSkpOwo+IC0KPiAgCWlmICgh Z2V0X21vY3Nfc2V0dGluZ3MoZ3QtPmk5MTUsICZ0YWJsZSkpCj4gIAkJcmV0dXJuOwo+ICAKPiAt CWZvciAoaW5kZXggPSAwOyBpbmRleCA8IHRhYmxlLnNpemU7IGluZGV4KyspCj4gLQkJaW50ZWxf dW5jb3JlX3dyaXRlKHVuY29yZSwKPiAtCQkJCSAgIEdFTjEyX0dMT0JBTF9NT0NTKGluZGV4KSwK PiAtCQkJCSAgIHRhYmxlLnRhYmxlW2luZGV4XS5jb250cm9sX3ZhbHVlKTsKPiAtCj4gLQkvKgo+ IC0JICogT2ssIG5vdyBzZXQgdGhlIHVudXNlZCBlbnRyaWVzIHRvIHRoZSBpbnZhbGlkIGVudHJ5 IChpbmRleCAwKS4gVGhlc2UKPiAtCSAqIGVudHJpZXMgYXJlIG9mZmljaWFsbHkgdW5kZWZpbmVk IGFuZCBubyBjb250cmFjdCBmb3IgdGhlIGNvbnRlbnRzIGFuZAo+IC0JICogc2V0dGluZ3MgaXMg Z2l2ZW4gZm9yIHRoZXNlIGVudHJpZXMuCj4gLQkgKi8KPiAtCWZvciAoOyBpbmRleCA8IHRhYmxl Lm5fZW50cmllczsgaW5kZXgrKykKPiAtCQlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLAo+IC0J CQkJICAgR0VOMTJfR0xPQkFMX01PQ1MoaW5kZXgpLAo+IC0JCQkJICAgdGFibGUudGFibGVbSTkx NV9NT0NTX1BURV0uY29udHJvbF92YWx1ZSk7Cj4gKwlfX2luaXRfbW9jc190YWJsZShndC0+dW5j b3JlLCAmdGFibGUsIGdsb2JhbF9tb2NzX29mZnNldCgpKTsKPiAgfQo+ICAKPiAgdm9pZCBpbnRl bF9tb2NzX2luaXQoc3RydWN0IGludGVsX2d0ICpndCkKPiAgewo+ICAJaWYgKEhBU19HTE9CQUxf TU9DU19SRUdJU1RFUlMoZ3QtPmk5MTUpKQo+IC0JCWludGVsX21vY3NfaW5pdF9nbG9iYWwoZ3Qp Owo+ICsJCWluaXRfZ2xvYmFsX21vY3MoZ3QpOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o Cj4gaW5kZXggMmZmY2MyMTY3MGI3Li4wOTYwZWEwYjVhNjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKPiBAQCAtMTE2ODgsMTMgKzExNjg4LDE4IEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUg ewo+ICAvKiBNT0NTIChNZW1vcnkgT2JqZWN0IENvbnRyb2wgU3RhdGUpIHJlZ2lzdGVycyAqLwo+ ICAjZGVmaW5lIEdFTjlfTE5DRkNNT0NTKGkpCV9NTUlPKDB4YjAyMCArIChpKSAqIDQpCS8qIEwz IENhY2hlIENvbnRyb2wgKi8KPiAgCj4gLSNkZWZpbmUgR0VOOV9HRlhfTU9DUyhpKQlfTU1JTygw eGM4MDAgKyAoaSkgKiA0KQkvKiBHcmFwaGljcyBNT0NTIHJlZ2lzdGVycyAqLwo+IC0jZGVmaW5l IEdFTjlfTUZYMF9NT0NTKGkpCV9NTUlPKDB4YzkwMCArIChpKSAqIDQpCS8qIE1lZGlhIDAgTU9D UyByZWdpc3RlcnMgKi8KPiAtI2RlZmluZSBHRU45X01GWDFfTU9DUyhpKQlfTU1JTygweGNhMDAg KyAoaSkgKiA0KQkvKiBNZWRpYSAxIE1PQ1MgcmVnaXN0ZXJzICovCj4gLSNkZWZpbmUgR0VOOV9W RUJPWF9NT0NTKGkpCV9NTUlPKDB4Y2IwMCArIChpKSAqIDQpCS8qIFZpZGVvIE1PQ1MgcmVnaXN0 ZXJzICovCj4gLSNkZWZpbmUgR0VOOV9CTFRfTU9DUyhpKQlfTU1JTygweGNjMDAgKyAoaSkgKiA0 KQkvKiBCbGl0dGVyIE1PQ1MgcmVnaXN0ZXJzICovCj4gLS8qIE1lZGlhIGRlY29kZXIgMiBNT0NT IHJlZ2lzdGVycyAqLwo+IC0jZGVmaW5lIEdFTjExX01GWDJfTU9DUyhpKQlfTU1JTygweDEwMDAw ICsgKGkpICogNCkKPiArI2RlZmluZSBfX0dFTjlfUkNTMF9NT0NTMAkweGM4MDAKPiArI2RlZmlu ZSBHRU45X0dGWF9NT0NTKGkpCV9NTUlPKF9fR0VOOV9SQ1MwX01PQ1MwICsgKGkpICogNCkKPiAr I2RlZmluZSBfX0dFTjlfVkNTMF9NT0NTMAkweGM5MDAKPiArI2RlZmluZSBHRU45X01GWDBfTU9D UyhpKQlfTU1JTyhfX0dFTjlfVkNTMF9NT0NTMCArIChpKSAqIDQpCj4gKyNkZWZpbmUgX19HRU45 X1ZDUzFfTU9DUzAJMHhjYTAwCj4gKyNkZWZpbmUgR0VOOV9NRlgxX01PQ1MoaSkJX01NSU8oX19H RU45X1ZDUzFfTU9DUzAgKyAoaSkgKiA0KQo+ICsjZGVmaW5lIF9fR0VOOV9WRUNTMF9NT0NTMAkw eGNiMDAKPiArI2RlZmluZSBHRU45X1ZFQk9YX01PQ1MoaSkJX01NSU8oX19HRU45X1ZFQ1MwX01P Q1MwICsgKGkpICogNCkKPiArI2RlZmluZSBfX0dFTjlfQkNTMF9NT0NTMAkweGNjMDAKPiArI2Rl ZmluZSBHRU45X0JMVF9NT0NTKGkpCV9NTUlPKF9fR0VOOV9CQ1MwX01PQ1MwICsgKGkpICogNCkK PiArI2RlZmluZSBfX0dFTjExX1ZDUzJfTU9DUzAJMHgxMDAwMAo+ICsjZGVmaW5lIEdFTjExX01G WDJfTU9DUyhpKQlfTU1JTyhfX0dFTjExX1ZDUzJfTU9DUzAgKyAoaSkgKiA0KQo+ICAKPiAgI2Rl ZmluZSBHRU4xMF9TQ1JBVENIX0xOQ0YyCQlfTU1JTygweGIwYTApCj4gICNkZWZpbmUgICBQTUZM VVNIRE9ORV9MTklDUlNEUk9QCSgxIDw8IDIwKQo+IC0tIAo+IDIuMjQuMApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=