From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: Re: [PATCH 7/8] drm/i915/gen9+: Program watermarks as a separate step during evasion Date: Wed, 12 Oct 2016 13:15:26 -0400 Message-ID: <1476292526.4130.6.camel@redhat.com> References: <1476278901-15750-1-git-send-email-maarten.lankhorst@linux.intel.com> <1476278901-15750-8-git-send-email-maarten.lankhorst@linux.intel.com> <1476291858.4130.3.camel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id DBABB6E8D8 for ; Wed, 12 Oct 2016 17:15:28 +0000 (UTC) In-Reply-To: <1476291858.4130.3.camel@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org QWNjaWRlbnRhbGx5IHNlbnQgb3JpZ2luYWwgdmlldyB0d2ljZSBhbmQgZm91bmQgb25lIG1vcmUg aXNzdWUgYWZ0ZXIKbG9va2luZyBhdCB0aGUgcmVzdCBvZiB0aGVtLCBzb3JyeSBhYm91dCB0aGF0 IQoKT24gV2VkLCAyMDE2LTEwLTEyIGF0IDEzOjA0IC0wNDAwLCBMeXVkZSB3cm90ZToKPiBMb3Zp bmcgdGhpcyBwYXRjaCBzbyBmYXIhIFdvdWxkIGl0IGJlIHBvc3NpYmxlIHRvIGdldCB0aGlzIHNw bGl0IGludG8KPiB0d28gc2VwYXJhdGUgcGF0Y2hlcyB0aG91Z2g/IE9uZSBmb3IgcmVtb3Zpbmcg c2tsX3Jlc3VsdHMgYW5kIG9uZSBmb3IKPiBwcm9ncmFtbWluZyB3YXRlcm1hcmtzIGFzIGEgc2Vw YXJhdGUgc3RlcC4KPiAKPiBPbiBXZWQsIDIwMTYtMTAtMTIgYXQgMTU6MjggKzAyMDAsIE1hYXJ0 ZW4gTGFua2hvcnN0IHdyb3RlOgo+ID4gCj4gPiBJbnN0ZWFkIG9mIHJ1bm5pbmcgdGhlIHdhdGVy bWFyayB1cGRhdGVzIGZyb20gdGhlIGNhbGxiYWNrcyBydW4KPiA+IHRoZW0gZnJvbSBhIHNlcGFy YXRlIGhvb2sgYXRvbWljX2V2YWRlX3dhdGVybWFya3MuCj4gPiAKPiA+IFRoaXMgYWxzbyBnZXRz IHJpZCBvZiB0aGUgZ2xvYmFsIHNrbF9yZXN1bHRzLCB3aGljaCB3YXMgcmVxdWlyZWQKPiA+IGZv cgo+ID4ga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCBhdG9taWMgY29tbWl0Lgo+ID4gCj4g PiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGlu dXguaW50ZWwuY29tCj4gPiA+Cj4gPiAtLS0KPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaMKgwqDCoMKgwqDCoHzCoMKgNyAtLS0tLS0tCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyB8IDM2ICsrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+ID4gLS0K PiA+IC0tLS0tLS0tCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5owqDCoMKg wqDCoHzCoMKgNyAtLS0tLS0tCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmPC oMKgwqDCoMKgwqB8IDM4ICsrKysrKysrKysrKysrKysrKy0tLS0tLQo+ID4gLS0tLS0tLS0tLS0t Cj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jwqDCoHwgMTggLS0tLS0t LS0tLS0tLS0tLS0KPiA+IMKgNSBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCA3OCBk ZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gaW5kZXgg MDk1ODhjNTgxNDhmLi4yOGU0NGNiNjExYjggMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gPiBAQCAtMjAyNywxMyArMjAyNyw2IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsK PiA+IMKgCQnCoCovCj4gPiDCoAkJdWludDE2X3Qgc2tsX2xhdGVuY3lbOF07Cj4gPiDCoAo+ID4g LQkJLyoKPiA+IC0JCcKgKiBUaGUgc2tsX3dtX3ZhbHVlcyBzdHJ1Y3R1cmUgaXMgYSBiaXQgdG9v IGJpZwo+ID4gZm9yCj4gPiBzdGFjawo+ID4gLQkJwqAqIGFsbG9jYXRpb24sIHNvIHdlIGtlZXAg dGhlIHN0YWdpbmcgc3RydWN0IHdoZXJlCj4gPiB3ZSBzdG9yZQo+ID4gLQkJwqAqIGludGVybWVk aWF0ZSByZXN1bHRzIGhlcmUgaW5zdGVhZC4KPiA+IC0JCcKgKi8KPiA+IC0JCXN0cnVjdCBza2xf d21fdmFsdWVzIHNrbF9yZXN1bHRzOwo+ID4gLQo+ID4gwqAJCS8qIGN1cnJlbnQgaGFyZHdhcmUg c3RhdGUgKi8KPiA+IMKgCQl1bmlvbiB7Cj4gPiDCoAkJCXN0cnVjdCBpbGtfd21fdmFsdWVzIGh3 Owo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IGluZGV4IDM0MDg2 MTgyNmM0Ni4uZDNkN2Q5ZGMxNGE4IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiA+IEBAIC0zMzc3LDkgKzMzNzcsNiBAQCBzdGF0aWMgdm9pZAo+ID4gc2t5bGFr ZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QKPiA+IGRybV9wbGFuZSAqcGxhbmUsCj4gPiDC oAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiDC oAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0KPiA+ID4gCj4gPiA+IGJhc2UuY3J0Yyk7Cj4gPiDCoAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOwo+ID4gLQljb25zdCBzdHJ1Y3Qgc2tsX3dtX3Zh bHVlcyAqd20gPSAmZGV2X3ByaXYtCj4gPiA+d20uc2tsX3Jlc3VsdHM7Cj4gPiAtCWNvbnN0IHN0 cnVjdCBza2xfcGxhbmVfd20gKnBfd20gPQo+ID4gLQkJJmNydGNfc3RhdGUtPndtLnNrbC5vcHRp bWFsLnBsYW5lc1swXTsKPiA+IMKgCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiA+IMKg CXUzMiBwbGFuZV9jdGw7Cj4gPiDCoAl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0 ZS0+YmFzZS5yb3RhdGlvbjsKPiA+IEBAIC0zNDE1LDkgKzM0MTIsNiBAQCBzdGF0aWMgdm9pZAo+ ID4gc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QKPiA+IGRybV9wbGFuZSAqcGxh bmUsCj4gPiDCoAlpbnRlbF9jcnRjLT5hZGp1c3RlZF94ID0gc3JjX3g7Cj4gPiDCoAlpbnRlbF9j cnRjLT5hZGp1c3RlZF95ID0gc3JjX3k7Cj4gPiDCoAo+ID4gLQlpZiAod20tPmRpcnR5X3BpcGVz ICYgZHJtX2NydGNfbWFzaygmaW50ZWxfY3J0Yy0+YmFzZSkpCj4gPiAtCQlza2xfd3JpdGVfcGxh bmVfd20oaW50ZWxfY3J0YywgcF93bSwgJndtLT5kZGIsIDApOwo+ID4gLQo+ID4gwqAJSTkxNV9X UklURShQTEFORV9DVEwocGlwZSwgMCksIHBsYW5lX2N0bCk7Cj4gPiDCoAlJOTE1X1dSSVRFKFBM QU5FX09GRlNFVChwaXBlLCAwKSwgKHNyY195IDw8IDE2KSB8IHNyY194KTsKPiA+IMKgCUk5MTVf V1JJVEUoUExBTkVfU1RSSURFKHBpcGUsIDApLCBzdHJpZGUpOwo+ID4gQEAgLTM0NTAsMTggKzM0 NDQsOCBAQCBzdGF0aWMgdm9pZAo+ID4gc2t5bGFrZV9kaXNhYmxlX3ByaW1hcnlfcGxhbmUoc3Ry dWN0IGRybV9wbGFuZSAqcHJpbWFyeSwKPiA+IMKgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjLT5kZXY7Cj4gPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7Cj4gPiDCoAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Yyk7Cj4gPiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPQo+ID4g dG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLQo+ID4gPiAKPiA+ID4gc3RhdGUpOwo+ID4gLQljb25z dCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICpwX3dtID0gJmNzdGF0ZS0KPiA+ID4gCj4gPiA+IHdtLnNr bC5vcHRpbWFsLnBsYW5lc1swXTsKPiA+IMKgCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsK PiA+IMKgCj4gPiAtCS8qCj4gPiAtCcKgKiBXZSBvbmx5IHBvcHVsYXRlIHNrbF9yZXN1bHRzIG9u IHdhdGVybWFyayB1cGRhdGVzLCBhbmQKPiA+IGlmCj4gPiB0aGUKPiA+IC0JwqAqIHBsYW5lJ3Mg dmlzaWJsaXR5IGlzbid0IGFjdHVhbGx5IGNoYW5naW5nIG5laXRoZXIgaXMKPiA+IGl0cwo+ID4g d2F0ZXJtYXJrcy4KPiA+IC0JwqAqLwo+ID4gLQlpZiAoIWNydGMtPnByaW1hcnktPnN0YXRlLT52 aXNpYmxlKQo+ID4gLQkJc2tsX3dyaXRlX3BsYW5lX3dtKGludGVsX2NydGMsIHBfd20sCj4gPiAt CQkJCcKgwqDCoCZkZXZfcHJpdi0+d20uc2tsX3Jlc3VsdHMuZGRiLAo+ID4gMCk7Cj4gPiAtCj4g PiDCoAlJOTE1X1dSSVRFKFBMQU5FX0NUTChwaXBlLCAwKSwgMCk7Cj4gPiDCoAlJOTE1X1dSSVRF KFBMQU5FX1NVUkYocGlwZSwgMCksIDApOwo+ID4gwqAJUE9TVElOR19SRUFEKFBMQU5FX1NVUkYo cGlwZSwgMCkpOwo+ID4gQEAgLTEwODI0LDE2ICsxMDgwOCw5IEBAIHN0YXRpYyB2b2lkIGk5eHhf dXBkYXRlX2N1cnNvcihzdHJ1Y3QKPiA+IGRybV9jcnRjICpjcnRjLCB1MzIgYmFzZSwKPiA+IMKg CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gPiDCoAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiDCoAlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gPiAtCXN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjc3RhdGUgPQo+ID4gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLQo+ID4g PiAKPiA+ID4gc3RhdGUpOwo+ID4gLQljb25zdCBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20gPSAm ZGV2X3ByaXYtCj4gPiA+d20uc2tsX3Jlc3VsdHM7Cj4gPiAtCWNvbnN0IHN0cnVjdCBza2xfcGxh bmVfd20gKnBfd20gPQo+ID4gLQkJJmNzdGF0ZS0+d20uc2tsLm9wdGltYWwucGxhbmVzW1BMQU5F X0NVUlNPUl07Cj4gPiDCoAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gPiDCoAl1aW50 MzJfdCBjbnRsID0gMDsKPiA+IMKgCj4gPiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkg JiYgd20tPmRpcnR5X3BpcGVzICYKPiA+IGRybV9jcnRjX21hc2soY3J0YykpCj4gPiAtCQlza2xf d3JpdGVfY3Vyc29yX3dtKGludGVsX2NydGMsIHBfd20sICZ3bS0+ZGRiKTsKPiA+IC0KPiA+IMKg CWlmIChwbGFuZV9zdGF0ZSAmJiBwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlKSB7Cj4gPiDCoAkJ Y250bCA9IE1DVVJTT1JfR0FNTUFfRU5BQkxFOwo+ID4gwqAJCXN3aXRjaCAocGxhbmVfc3RhdGUt PmJhc2UuY3J0Y193KSB7Cj4gPiBAQCAtMTQ0MzYsOCArMTQ0MTMsMTMgQEAgc3RhdGljIHZvaWQK PiA+IGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QKPiA+IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlKQo+ID4gwqAJCQlpbnRlbF9jaGVja19jcHVfZmlmb191bmRlcnJ1bnMoZGV2X3ByaXYp Owo+ID4gwqAJCQlpbnRlbF9jaGVja19wY2hfZmlmb191bmRlcnJ1bnMoZGV2X3ByaXYpOwo+ID4g wqAKPiA+IC0JCQlpZiAoIWNydGMtPnN0YXRlLT5hY3RpdmUpCj4gPiAtCQkJCWludGVsX3VwZGF0 ZV93YXRlcm1hcmtzKGNydGMpOwo+ID4gKwkJCWlmICghY3J0Yy0+c3RhdGUtPmFjdGl2ZSkgewo+ ID4gKwkJCQlpZiAoZGV2X3ByaXYtCj4gPiA+IAo+ID4gPiBkaXNwbGF5LmluaXRpYWxfd2F0ZXJt YXJrcykKPiA+ICsJCQkJCWRldl9wcml2LQo+ID4gPiAKPiA+ID4gZGlzcGxheS5pbml0aWFsX3dh dGVybWFya3MoaW50ZWxfc3RhdGUsCj4gPiArCQkJCQkJCQkJCj4gPiDCoMKgwqDCoMKgdG9faW50 ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSkpOwo+ID4gKwkJCQllbHNlCj4gPiArCQkJCQlpbnRl bF91cGRhdGVfd2F0ZXJtYXJrcyhjcgo+ID4gdGMKPiA+ICk7Cj4gPiArCQkJfQo+ID4gwqAJCX0K PiA+IMKgCX0KPiA+IMKgCj4gPiBAQCAtMTQ1OTksNyArMTQ1ODEsNiBAQCBzdGF0aWMgaW50IGlu dGVsX2F0b21pY19jb21taXQoc3RydWN0Cj4gPiBkcm1fZGV2aWNlICpkZXYsCj4gPiDCoAo+ID4g wqAJZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZShzdGF0ZSwgdHJ1ZSk7Cj4gPiDCoAlkZXZf cHJpdi0+d20uZGlzdHJ1c3RfYmlvc193bSA9IGZhbHNlOwo+ID4gLQlkZXZfcHJpdi0+d20uc2ts X3Jlc3VsdHMgPSBpbnRlbF9zdGF0ZS0+d21fcmVzdWx0czsKPiA+IMKgCWludGVsX3NoYXJlZF9k cGxsX2NvbW1pdChzdGF0ZSk7Cj4gPiDCoAlpbnRlbF9hdG9taWNfdHJhY2tfZmJzKHN0YXRlKTsK PiA+IMKgCj4gPiBAQCAtMTQ5MTMsNyArMTQ4OTQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9iZWdp bl9jcnRjX2NvbW1pdChzdHJ1Y3QKPiA+IGRybV9jcnRjICpjcnRjLAo+ID4gwqAJaW50ZWxfcGlw ZV91cGRhdGVfc3RhcnQoaW50ZWxfY3J0Yyk7Cj4gPiDCoAo+ID4gwqAJaWYgKG1vZGVzZXQpCj4g PiAtCQlyZXR1cm47Cj4gPiArCQlnb3RvIG91dDsKPiA+IMKgCj4gPiDCoAlpZiAoY3J0Yy0+c3Rh dGUtPmNvbG9yX21nbXRfY2hhbmdlZCB8fAo+ID4gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5z dGF0ZSktPnVwZGF0ZV9waXBlKSB7Cj4gPiDCoAkJaW50ZWxfY29sb3Jfc2V0X2NzYyhjcnRjLT5z dGF0ZSk7Cj4gPiBAQCAtMTQ5MjUsNiArMTQ5MDYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9iZWdp bl9jcnRjX2NvbW1pdChzdHJ1Y3QKPiA+IGRybV9jcnRjICpjcnRjLAo+ID4gwqAJZWxzZSBpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+ID4gwqAJCXNrbF9kZXRhY2hfc2NhbGVycyhpbnRl bF9jcnRjKTsKPiA+IMKgCj4gPiArb3V0Ogo+ID4gwqAJaWYgKGRldl9wcml2LT5kaXNwbGF5LmF0 b21pY19ldmFkZV93YXRlcm1hcmtzKQo+ID4gwqAJCWRldl9wcml2LQo+ID4gPiAKPiA+ID4gZGlz cGxheS5hdG9taWNfZXZhZGVfd2F0ZXJtYXJrcyh0b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX2Ny dGNfc3QKPiA+ID4gYXRlCj4gPiAtPnN0YXRlKSwgaW50ZWxfY3N0YXRlKTsKPiA+IMKgfQo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCA5ZjA0ZTI2YzQzNjUuLjE3Y2Yx ZWU4M2JmYiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTE3NjEs MTMgKzE3NjEsNiBAQCBib29sIHNrbF9kZGJfYWxsb2NhdGlvbl9lcXVhbHMoY29uc3Qgc3RydWN0 Cj4gPiBza2xfZGRiX2FsbG9jYXRpb24gKm9sZCwKPiA+IMKgCQkJwqDCoMKgwqDCoMKgwqBlbnVt IHBpcGUgcGlwZSk7Cj4gPiDCoGJvb2wgc2tsX2RkYl9hbGxvY2F0aW9uX292ZXJsYXBzKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+IMKgCQkJCcKgc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMpOwo+ID4gLXZvaWQgc2tsX3dyaXRlX2N1cnNvcl93bShzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YywKPiA+IC0JCQnCoGNvbnN0IHN0cnVjdCBza2xfcGxhbmVfd20gKndt LAo+ID4gLQkJCcKgY29uc3Qgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiKTsKPiA+IC12 b2lkIHNrbF93cml0ZV9wbGFuZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiA+ IC0JCQljb25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICp3bSwKPiA+IC0JCQljb25zdCBzdHJ1Y3Qg c2tsX2RkYl9hbGxvY2F0aW9uICpkZGIsCj4gPiAtCQkJaW50IHBsYW5lKTsKPiA+IMKgdWludDMy X3QgaWxrX3BpcGVfcGl4ZWxfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+ID4g KnBpcGVfY29uZmlnKTsKPiA+IMKgYm9vbCBpbGtfZGlzYWJsZV9scF93bShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKPiA+IMKgaW50IHNhbml0aXplX3JjNl9vcHRpb24oc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBpbnQKPiA+IGVuYWJsZV9yYzYpOwo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYwo+ID4gaW5kZXggYmUzZGQ4Y2RjN2FlLi4xOGM2MmQxZWVhMTkgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gPiBAQCAtNDE3OSwyNyArNDE3OSwzNSBAQCBz a2xfY29tcHV0ZV93bShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZQo+ID4gKnN0YXRlKQo+ID4gwqAJ cmV0dXJuIDA7Cj4gPiDCoH0KPiA+IMKgCj4gPiAtc3RhdGljIHZvaWQgc2tsX2V2YWRlX2NydGNf d20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gPiAtCQkJwqDCoMKgwqDCoMKg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKPiA+ICtzdGF0aWMgdm9pZCBza2xfZXZh ZGVfY3J0Y193bShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCj4gPiDCoHsKPiA+IMKgCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0Yyhjc3RhdGUtCj4gPiA+YmFzZS5jcnRjKTsKPiA+IMKgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtCj4gPiA+IAo+ ID4gPiBiYXNlLmRldik7Cj4gPiDCoAlzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20gPSAmY3N0 YXRlLT53bS5za2wub3B0aW1hbDsKPiA+ICsJY29uc3Qgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlv biAqZGRiID0gJnN0YXRlLQo+ID4gPiAKPiA+ID4gd21fcmVzdWx0cy5kZGI7Cj4gPiDCoAllbnVt IHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gPiArCWludCBwbGFuZTsKPiA+ICsKPiA+ICsJaWYg KCEoc3RhdGUtPndtX3Jlc3VsdHMuZGlydHlfcGlwZXMgJiBkcm1fY3J0Y19tYXNrKCZjcnRjLQo+ ID4gPiAKPiA+ID4gYmFzZSkpKQo+ID4gKwkJcmV0dXJuOwo+ID4gwqAKPiA+IC0JSTkxNV9XUklU RShQSVBFX1dNX0xJTkVUSU1FKHBpcGUpLAo+ID4gLQkJwqDCoMKgcGlwZV93bS0+bGluZXRpbWUp Owo+ID4gKwlJOTE1X1dSSVRFKFBJUEVfV01fTElORVRJTUUocGlwZSksIHBpcGVfd20tPmxpbmV0 aW1lKTsKCkxpdHRsZSBiaXQgb2YgcmViYXNlIGRlYnJpcz8gTWlnaHQgYXMgd2VsbCBqdXN0IGZp eCB0aGlzIGluIHBhdGNoIDUuCgpXaXRoIHRoZSBjaGFuZ2VzIEkgbWVudGlvbmVkOgoKUmV2aWV3 ZWQtYnk6IEx5dWRlIDxjcGF1bEByZWRoYXQuY29tPgoKPiA+ICsKPiA+ICsJZm9yIChwbGFuZSA9 IDA7IHBsYW5lIDwgaW50ZWxfbnVtX3BsYW5lcyhjcnRjKTsgcGxhbmUrKykKPiA+ICsJCXNrbF93 cml0ZV9wbGFuZV93bShjcnRjLCAmcGlwZV93bS0+cGxhbmVzW3BsYW5lXSwKPiA+IGRkYiwgcGxh bmUpOwo+ID4gKwo+ID4gKwlza2xfd3JpdGVfY3Vyc29yX3dtKGNydGMsICZwaXBlX3dtLT5wbGFu ZXNbUExBTkVfQ1VSU09SXSwKPiA+IGRkYik7Cj4gPiDCoH0KPiA+IMKgCj4gPiAtc3RhdGljIHZv aWQgc2tsX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiArc3RhdGljIHZvaWQg c2tsX2luaXRpYWxfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gPiArCQkJ wqDCoMKgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKPiA+IMKgewo+ID4gKwlzdHJ1 Y3QgZHJtX2NydGMgKmNydGMgPSBjc3RhdGUtPmJhc2UuY3J0YzsKPiA+IMKgCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiA+IMKgCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiAtCXN0cnVjdCBza2xfd21fdmFsdWVzICpy ZXN1bHRzID0gJmRldl9wcml2LT53bS5za2xfcmVzdWx0czsKPiA+ICsJc3RydWN0IHNrbF93bV92 YWx1ZXMgKnJlc3VsdHMgPSAmc3RhdGUtPndtX3Jlc3VsdHM7Cj4gPiDCoAlzdHJ1Y3Qgc2tsX3dt X3ZhbHVlcyAqaHdfdmFscyA9ICZkZXZfcHJpdi0+d20uc2tsX2h3Owo+ID4gLQlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlID0KPiA+IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0KPiA+ ID4gCj4gPiA+IHN0YXRlKTsKPiA+IC0Jc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dtID0gJmNz dGF0ZS0+d20uc2tsLm9wdGltYWw7Cj4gPiDCoAllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMt PnBpcGU7Cj4gPiDCoAo+ID4gwqAJaWYgKChyZXN1bHRzLT5kaXJ0eV9waXBlcyAmIGRybV9jcnRj X21hc2soY3J0YykpID09IDApCj4gPiBAQCAtNDIxMywxNiArNDIyMSw4IEBAIHN0YXRpYyB2b2lk IHNrbF91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjCj4gPiAqY3J0YykKPiA+IMKgCcKgKiB0aGUg cGlwZSdzIHNodXQgb2ZmLCBqdXN0IGRvIHNvIGhlcmUuIEFscmVhZHkgYWN0aXZlCj4gPiBwaXBl cyB3aWxsIGhhdmUKPiA+IMKgCcKgKiB0aGVpciB3YXRlcm1hcmtzIHVwZGF0ZWQgb25jZSB3ZSB1 cGRhdGUgdGhlaXIgcGxhbmVzLgo+ID4gwqAJwqAqLwo+ID4gLQlpZiAoY3J0Yy0+c3RhdGUtPmFj dGl2ZV9jaGFuZ2VkKSB7Cj4gPiAtCQlpbnQgcGxhbmU7Cj4gPiAtCj4gPiAtCQlmb3IgKHBsYW5l ID0gMDsgcGxhbmUgPAo+ID4gaW50ZWxfbnVtX3BsYW5lcyhpbnRlbF9jcnRjKTsgcGxhbmUrKykK PiA+IC0JCQlza2xfd3JpdGVfcGxhbmVfd20oaW50ZWxfY3J0YywgJnBpcGVfd20tCj4gPiA+IAo+ ID4gPiBwbGFuZXNbcGxhbmVdLAo+ID4gLQkJCQkJwqDCoMKgJnJlc3VsdHMtPmRkYiwgcGxhbmUp Owo+ID4gLQo+ID4gLQkJc2tsX3dyaXRlX2N1cnNvcl93bShpbnRlbF9jcnRjLCAmcGlwZV93bS0K PiA+ID4gCj4gPiA+IHBsYW5lc1tQTEFORV9DVVJTT1JdLAo+ID4gLQkJCQnCoMKgwqDCoCZyZXN1 bHRzLT5kZGIpOwo+ID4gLQl9Cj4gPiArCWlmIChjc3RhdGUtPmJhc2UuYWN0aXZlX2NoYW5nZWQp Cj4gPiArCQlza2xfZXZhZGVfY3J0Y193bShzdGF0ZSwgY3N0YXRlKTsKPiA+IMKgCj4gPiDCoAlz a2xfY29weV93bV9mb3JfcGlwZShod192YWxzLCByZXN1bHRzLCBwaXBlKTsKPiA+IMKgCj4gPiBA QCAtNzcyNyw3ICs3NzI3LDcgQEAgdm9pZCBpbnRlbF9pbml0X3BtKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4gPiDCoAkvKiBGb3IgRklGTyB3YXRlcm1hcmsgdXBkYXRlcyAqLwo+ID4gwqAJaWYg KElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsKPiA+IMKgCQlza2xfc2V0dXBfd21fbGF0ZW5j eShkZXYpOwo+ID4gLQkJZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX3dtID0gc2tsX3VwZGF0ZV93 bTsKPiA+ICsJCWRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyA9Cj4gPiBza2xf aW5pdGlhbF93bTsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5hdG9taWNfZXZhZGVfd2F0ZXJt YXJrcyA9Cj4gPiBza2xfZXZhZGVfY3J0Y193bTsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5j b21wdXRlX2dsb2JhbF93YXRlcm1hcmtzID0KPiA+IHNrbF9jb21wdXRlX3dtOwo+ID4gwqAJfSBl bHNlIGlmIChIQVNfUENIX1NQTElUKGRldikpIHsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYwo+ID4gaW5kZXggMGZiNzc1YjRjOTNlLi4zNjY5MDBkY2RlMzQgMTAwNjQ0Cj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+IEBAIC0yMDMsMTMgKzIwMyw4IEBA IHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAo+ID4gwqAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gwqAJc3Ry dWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9Cj4gPiB0b19pbnRlbF9wbGFuZShkcm1fcGxh bmUpOwo+ID4gwqAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFz ZS5mYjsKPiA+IC0JY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtID0gJmRldl9wcml2LQo+ ID4gPndtLnNrbF9yZXN1bHRzOwo+ID4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjcnRjX3N0 YXRlLT5iYXNlLmNydGM7Cj4gPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjKTsKPiA+IMKgCWNvbnN0IGludCBwaXBlID0gaW50ZWxfcGxhbmUtPnBp cGU7Cj4gPiDCoAljb25zdCBpbnQgcGxhbmUgPSBpbnRlbF9wbGFuZS0+cGxhbmUgKyAxOwo+ID4g LQljb25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICpwX3dtID0KPiA+IC0JCSZjcnRjX3N0YXRlLT53 bS5za2wub3B0aW1hbC5wbGFuZXNbcGxhbmVdOwo+ID4gwqAJdTMyIHBsYW5lX2N0bDsKPiA+IMKg CWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPQo+ID4gJnBsYW5l X3N0YXRlLQo+ID4gPiAKPiA+ID4gY2tleTsKPiA+IMKgCXUzMiBzdXJmX2FkZHIgPSBwbGFuZV9z dGF0ZS0+bWFpbi5vZmZzZXQ7Cj4gPiBAQCAtMjMzLDkgKzIyOCw2IEBAIHNrbF91cGRhdGVfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAo+ID4gwqAKPiA+IMKgCXBsYW5lX2N0bCB8 PSBza2xfcGxhbmVfY3RsX3JvdGF0aW9uKHJvdGF0aW9uKTsKPiA+IMKgCj4gPiAtCWlmICh3bS0+ ZGlydHlfcGlwZXMgJiBkcm1fY3J0Y19tYXNrKGNydGMpKQo+ID4gLQkJc2tsX3dyaXRlX3BsYW5l X3dtKGludGVsX2NydGMsIHBfd20sICZ3bS0+ZGRiLAo+ID4gcGxhbmUpOwo+ID4gLQo+ID4gwqAJ aWYgKGtleS0+ZmxhZ3MpIHsKPiA+IMKgCQlJOTE1X1dSSVRFKFBMQU5FX0tFWVZBTChwaXBlLCBw bGFuZSksIGtleS0KPiA+ID4gCj4gPiA+IG1pbl92YWx1ZSk7Cj4gPiDCoAkJSTkxNV9XUklURShQ TEFORV9LRVlNQVgocGlwZSwgcGxhbmUpLCBrZXktCj4gPiA+IAo+ID4gPiBtYXhfdmFsdWUpOwo+ ID4gQEAgLTI5MSwxOSArMjgzLDkgQEAgc2tsX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFu ZSAqZHBsYW5lLAo+ID4gc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ID4gwqAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGRwbGFuZS0+ZGV2Owo+ID4gwqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gwqAJc3RydWN0IGludGVsX3BsYW5lICppbnRl bF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKGRwbGFuZSk7Cj4gPiAtCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjc3RhdGUgPQo+ID4gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLQo+ID4gPiAKPiA+ ID4gc3RhdGUpOwo+ID4gwqAJY29uc3QgaW50IHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlwZTsKPiA+ IMKgCWNvbnN0IGludCBwbGFuZSA9IGludGVsX3BsYW5lLT5wbGFuZSArIDE7Cj4gPiDCoAo+ID4g LQkvKgo+ID4gLQnCoCogV2Ugb25seSBwb3B1bGF0ZSBza2xfcmVzdWx0cyBvbiB3YXRlcm1hcmsg dXBkYXRlcywgYW5kCj4gPiBpZgo+ID4gdGhlCj4gPiAtCcKgKiBwbGFuZSdzIHZpc2libGl0eSBp c24ndCBhY3R1YWxseSBjaGFuZ2luZyBuZWl0aGVyIGlzCj4gPiBpdHMKPiA+IHdhdGVybWFya3Mu Cj4gPiAtCcKgKi8KPiA+IC0JaWYgKCFkcGxhbmUtPnN0YXRlLT52aXNpYmxlKQo+ID4gLQkJc2ts X3dyaXRlX3BsYW5lX3dtKHRvX2ludGVsX2NydGMoY3J0YyksCj4gPiAtCQkJCcKgwqDCoCZjc3Rh dGUtCj4gPiA+IAo+ID4gPiB3bS5za2wub3B0aW1hbC5wbGFuZXNbcGxhbmVdLAo+ID4gLQkJCQnC oMKgwqAmZGV2X3ByaXYtPndtLnNrbF9yZXN1bHRzLmRkYiwKPiA+IHBsYW5lKTsKPiA+IC0KPiA+ IMKgCUk5MTVfV1JJVEUoUExBTkVfQ1RMKHBpcGUsIHBsYW5lKSwgMCk7Cj4gPiDCoAo+ID4gwqAJ STkxNV9XUklURShQTEFORV9TVVJGKHBpcGUsIHBsYW5lKSwgMCk7Ci0tIApDaGVlcnMsCglMeXVk ZQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK