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:03:10 -0400 Message-ID: <1476291790.4130.1.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> 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 9AF9C6E365 for ; Wed, 12 Oct 2016 17:03:12 +0000 (UTC) In-Reply-To: <1476278901-15750-8-git-send-email-maarten.lankhorst@linux.intel.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 TG92aW5nIHRoaXMgcGF0Y2ggc28gZmFyISBXb3VsZCBpdCBiZSBwb3NzaWJsZSB0byBnZXQgdGhp cyBzcGxpdCBpbnRvCnR3byBzZXBhcmF0ZSBwYXRjaGVzIHRob3VnaD8gT25lIGZvciByZW1vdmlu ZyBza2xfcmVzdWx0cyBhbmQgb25lIGZvcgpwcm9ncmFtbWluZyB3YXRlcm1hcmtzIGFzIGEgc2Vw YXJhdGUgc3RlcC4KCk9uIFdlZCwgMjAxNi0xMC0xMiBhdCAxNToyOCArMDIwMCwgTWFhcnRlbiBM YW5raG9yc3Qgd3JvdGU6Cj4gSW5zdGVhZCBvZiBydW5uaW5nIHRoZSB3YXRlcm1hcmsgdXBkYXRl cyBmcm9tIHRoZSBjYWxsYmFja3MgcnVuCj4gdGhlbSBmcm9tIGEgc2VwYXJhdGUgaG9vayBhdG9t aWNfZXZhZGVfd2F0ZXJtYXJrcy4KPiAKPiBUaGlzIGFsc28gZ2V0cyByaWQgb2YgdGhlIGdsb2Jh bCBza2xfcmVzdWx0cywgd2hpY2ggd2FzIHJlcXVpcmVkIGZvcgo+IGtlZXBpbmcgdHJhY2sgb2Yg dGhlIGN1cnJlbnQgYXRvbWljIGNvbW1pdC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExh bmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IC0tLQo+IMKgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaMKgwqDCoMKgwqDCoHzCoMKgNyAtLS0tLS0tCj4g wqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAzNiArKysrKysrKystLS0t LS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaMKgwqDCoMKgwqB8wqDCoDcgLS0tLS0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uY8KgwqDCoMKgwqDCoHwgMzggKysrKysrKysrKysrKysrKysrLS0tLS0tCj4gLS0tLS0t LS0tLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuY8KgwqB8IDE4IC0t LS0tLS0tLS0tLS0tLS0tCj4gwqA1IGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDc4 IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggMDk1ODhj NTgxNDhmLi4yOGU0NGNiNjExYjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAt MjAyNywxMyArMjAyNyw2IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiDCoAkJwqAqLwo+ IMKgCQl1aW50MTZfdCBza2xfbGF0ZW5jeVs4XTsKPiDCoAo+IC0JCS8qCj4gLQkJwqAqIFRoZSBz a2xfd21fdmFsdWVzIHN0cnVjdHVyZSBpcyBhIGJpdCB0b28gYmlnIGZvcgo+IHN0YWNrCj4gLQkJ wqAqIGFsbG9jYXRpb24sIHNvIHdlIGtlZXAgdGhlIHN0YWdpbmcgc3RydWN0IHdoZXJlCj4gd2Ug c3RvcmUKPiAtCQnCoCogaW50ZXJtZWRpYXRlIHJlc3VsdHMgaGVyZSBpbnN0ZWFkLgo+IC0JCcKg Ki8KPiAtCQlzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyBza2xfcmVzdWx0czsKPiAtCj4gwqAJCS8qIGN1 cnJlbnQgaGFyZHdhcmUgc3RhdGUgKi8KPiDCoAkJdW5pb24gewo+IMKgCQkJc3RydWN0IGlsa193 bV92YWx1ZXMgaHc7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXgg MzQwODYxODI2YzQ2Li5kM2Q3ZDlkYzE0YTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gQEAgLTMzNzcsOSArMzM3Nyw2IEBAIHN0YXRpYyB2b2lkIHNreWxha2VfdXBk YXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0Cj4gZHJtX3BsYW5lICpwbGFuZSwKPiDCoAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gwqAJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtCj4gPmJhc2Uu Y3J0Yyk7Cj4gwqAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFz ZS5mYjsKPiAtCWNvbnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSA9ICZkZXZfcHJpdi0+d20u c2tsX3Jlc3VsdHM7Cj4gLQljb25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICpwX3dtID0KPiAtCQkm Y3J0Y19zdGF0ZS0+d20uc2tsLm9wdGltYWwucGxhbmVzWzBdOwo+IMKgCWludCBwaXBlID0gaW50 ZWxfY3J0Yy0+cGlwZTsKPiDCoAl1MzIgcGxhbmVfY3RsOwo+IMKgCXVuc2lnbmVkIGludCByb3Rh dGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOwo+IEBAIC0zNDE1LDkgKzM0MTIsNiBA QCBzdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdAo+IGRybV9w bGFuZSAqcGxhbmUsCj4gwqAJaW50ZWxfY3J0Yy0+YWRqdXN0ZWRfeCA9IHNyY194Owo+IMKgCWlu dGVsX2NydGMtPmFkanVzdGVkX3kgPSBzcmNfeTsKPiDCoAo+IC0JaWYgKHdtLT5kaXJ0eV9waXBl cyAmIGRybV9jcnRjX21hc2soJmludGVsX2NydGMtPmJhc2UpKQo+IC0JCXNrbF93cml0ZV9wbGFu ZV93bShpbnRlbF9jcnRjLCBwX3dtLCAmd20tPmRkYiwgMCk7Cj4gLQo+IMKgCUk5MTVfV1JJVEUo UExBTkVfQ1RMKHBpcGUsIDApLCBwbGFuZV9jdGwpOwo+IMKgCUk5MTVfV1JJVEUoUExBTkVfT0ZG U0VUKHBpcGUsIDApLCAoc3JjX3kgPDwgMTYpIHwgc3JjX3gpOwo+IMKgCUk5MTVfV1JJVEUoUExB TkVfU1RSSURFKHBpcGUsIDApLCBzdHJpZGUpOwo+IEBAIC0zNDUwLDE4ICszNDQ0LDggQEAgc3Rh dGljIHZvaWQKPiBza3lsYWtlX2Rpc2FibGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpwcmltYXJ5LAo+IMKgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gwqAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IMKgCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAtCXN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMt Cj4gPnN0YXRlKTsKPiAtCWNvbnN0IHN0cnVjdCBza2xfcGxhbmVfd20gKnBfd20gPSAmY3N0YXRl LQo+ID53bS5za2wub3B0aW1hbC5wbGFuZXNbMF07Cj4gwqAJaW50IHBpcGUgPSBpbnRlbF9jcnRj LT5waXBlOwo+IMKgCj4gLQkvKgo+IC0JwqAqIFdlIG9ubHkgcG9wdWxhdGUgc2tsX3Jlc3VsdHMg b24gd2F0ZXJtYXJrIHVwZGF0ZXMsIGFuZCBpZgo+IHRoZQo+IC0JwqAqIHBsYW5lJ3MgdmlzaWJs aXR5IGlzbid0IGFjdHVhbGx5IGNoYW5naW5nIG5laXRoZXIgaXMgaXRzCj4gd2F0ZXJtYXJrcy4K PiAtCcKgKi8KPiAtCWlmICghY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPnZpc2libGUpCj4gLQkJc2ts X3dyaXRlX3BsYW5lX3dtKGludGVsX2NydGMsIHBfd20sCj4gLQkJCQnCoMKgwqAmZGV2X3ByaXYt PndtLnNrbF9yZXN1bHRzLmRkYiwKPiAwKTsKPiAtCj4gwqAJSTkxNV9XUklURShQTEFORV9DVEwo cGlwZSwgMCksIDApOwo+IMKgCUk5MTVfV1JJVEUoUExBTkVfU1VSRihwaXBlLCAwKSwgMCk7Cj4g wqAJUE9TVElOR19SRUFEKFBMQU5FX1NVUkYocGlwZSwgMCkpOwo+IEBAIC0xMDgyNCwxNiArMTA4 MDgsOSBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9jdXJzb3Ioc3RydWN0Cj4gZHJtX2NydGMg KmNydGMsIHUzMiBiYXNlLAo+IMKgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7 Cj4gwqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ IMKgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsK PiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRl KGNydGMtCj4gPnN0YXRlKTsKPiAtCWNvbnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSA9ICZk ZXZfcHJpdi0+d20uc2tsX3Jlc3VsdHM7Cj4gLQljb25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICpw X3dtID0KPiAtCQkmY3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbUExBTkVfQ1VSU09SXTsK PiDCoAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gwqAJdWludDMyX3QgY250bCA9IDA7 Cj4gwqAKPiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkgJiYgd20tPmRpcnR5X3BpcGVz ICYKPiBkcm1fY3J0Y19tYXNrKGNydGMpKQo+IC0JCXNrbF93cml0ZV9jdXJzb3Jfd20oaW50ZWxf Y3J0YywgcF93bSwgJndtLT5kZGIpOwo+IC0KPiDCoAlpZiAocGxhbmVfc3RhdGUgJiYgcGxhbmVf c3RhdGUtPmJhc2UudmlzaWJsZSkgewo+IMKgCQljbnRsID0gTUNVUlNPUl9HQU1NQV9FTkFCTEU7 Cj4gwqAJCXN3aXRjaCAocGxhbmVfc3RhdGUtPmJhc2UuY3J0Y193KSB7Cj4gQEAgLTE0NDM2LDgg KzE0NDEzLDEzIEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QK PiBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiDCoAkJCWludGVsX2NoZWNrX2NwdV9maWZvX3Vu ZGVycnVucyhkZXZfcHJpdik7Cj4gwqAJCQlpbnRlbF9jaGVja19wY2hfZmlmb191bmRlcnJ1bnMo ZGV2X3ByaXYpOwo+IMKgCj4gLQkJCWlmICghY3J0Yy0+c3RhdGUtPmFjdGl2ZSkKPiAtCQkJCWlu dGVsX3VwZGF0ZV93YXRlcm1hcmtzKGNydGMpOwo+ICsJCQlpZiAoIWNydGMtPnN0YXRlLT5hY3Rp dmUpIHsKPiArCQkJCWlmIChkZXZfcHJpdi0KPiA+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3Mp Cj4gKwkJCQkJZGV2X3ByaXYtCj4gPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzKGludGVsX3N0 YXRlLAo+ICsJCQkJCQkJCQkKPiDCoMKgwqDCoMKgdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5z dGF0ZSkpOwo+ICsJCQkJZWxzZQo+ICsJCQkJCWludGVsX3VwZGF0ZV93YXRlcm1hcmtzKGNydGMK PiApOwo+ICsJCQl9Cj4gwqAJCX0KPiDCoAl9Cj4gwqAKPiBAQCAtMTQ1OTksNyArMTQ1ODEsNiBA QCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0Cj4gZHJtX2RldmljZSAqZGV2 LAo+IMKgCj4gwqAJZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZShzdGF0ZSwgdHJ1ZSk7Cj4g wqAJZGV2X3ByaXYtPndtLmRpc3RydXN0X2Jpb3Nfd20gPSBmYWxzZTsKPiAtCWRldl9wcml2LT53 bS5za2xfcmVzdWx0cyA9IGludGVsX3N0YXRlLT53bV9yZXN1bHRzOwo+IMKgCWludGVsX3NoYXJl ZF9kcGxsX2NvbW1pdChzdGF0ZSk7Cj4gwqAJaW50ZWxfYXRvbWljX3RyYWNrX2ZicyhzdGF0ZSk7 Cj4gwqAKPiBAQCAtMTQ5MTMsNyArMTQ4OTQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9iZWdpbl9j cnRjX2NvbW1pdChzdHJ1Y3QKPiBkcm1fY3J0YyAqY3J0YywKPiDCoAlpbnRlbF9waXBlX3VwZGF0 ZV9zdGFydChpbnRlbF9jcnRjKTsKPiDCoAo+IMKgCWlmIChtb2Rlc2V0KQo+IC0JCXJldHVybjsK PiArCQlnb3RvIG91dDsKPiDCoAo+IMKgCWlmIChjcnRjLT5zdGF0ZS0+Y29sb3JfbWdtdF9jaGFu Z2VkIHx8Cj4gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSktPnVwZGF0ZV9waXBlKSB7 Cj4gwqAJCWludGVsX2NvbG9yX3NldF9jc2MoY3J0Yy0+c3RhdGUpOwo+IEBAIC0xNDkyNSw2ICsx NDkwNiw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2JlZ2luX2NydGNfY29tbWl0KHN0cnVjdAo+IGRy bV9jcnRjICpjcnRjLAo+IMKgCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPiDC oAkJc2tsX2RldGFjaF9zY2FsZXJzKGludGVsX2NydGMpOwo+IMKgCj4gK291dDoKPiDCoAlpZiAo ZGV2X3ByaXYtPmRpc3BsYXkuYXRvbWljX2V2YWRlX3dhdGVybWFya3MpCj4gwqAJCWRldl9wcml2 LQo+ID5kaXNwbGF5LmF0b21pY19ldmFkZV93YXRlcm1hcmtzKHRvX2ludGVsX2F0b21pY19zdGF0 ZShvbGRfY3J0Y19zdGF0ZQo+IC0+c3RhdGUpLCBpbnRlbF9jc3RhdGUpOwo+IMKgfQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCA5ZjA0ZTI2YzQzNjUuLjE3Y2YxZWU4M2JmYiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTE3NjEsMTMgKzE3NjEsNiBAQCBi b29sIHNrbF9kZGJfYWxsb2NhdGlvbl9lcXVhbHMoY29uc3Qgc3RydWN0Cj4gc2tsX2RkYl9hbGxv Y2F0aW9uICpvbGQsCj4gwqAJCQnCoMKgwqDCoMKgwqDCoGVudW0gcGlwZSBwaXBlKTsKPiDCoGJv b2wgc2tsX2RkYl9hbGxvY2F0aW9uX292ZXJsYXBzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSwKPiDCoAkJCQnCoHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKTsKPiAtdm9pZCBz a2xfd3JpdGVfY3Vyc29yX3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+IC0JCQnC oGNvbnN0IHN0cnVjdCBza2xfcGxhbmVfd20gKndtLAo+IC0JCQnCoGNvbnN0IHN0cnVjdCBza2xf ZGRiX2FsbG9jYXRpb24gKmRkYik7Cj4gLXZvaWQgc2tsX3dyaXRlX3BsYW5lX3dtKHN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjLAo+IC0JCQljb25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICp3 bSwKPiAtCQkJY29uc3Qgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiLAo+IC0JCQlpbnQg cGxhbmUpOwo+IMKgdWludDMyX3QgaWxrX3BpcGVfcGl4ZWxfcmF0ZShjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZQo+ICpwaXBlX2NvbmZpZyk7Cj4gwqBib29sIGlsa19kaXNhYmxlX2xwX3dt KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IMKgaW50IHNhbml0aXplX3JjNl9vcHRpb24oc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQKPiBlbmFibGVfcmM2KTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IGJlM2RkOGNkYzdhZS4uMThjNjJkMWVlYTE5IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTQxNzksMjcgKzQxNzksMzUgQEAgc2ts X2NvbXB1dGVfd20oc3RydWN0IGRybV9hdG9taWNfc3RhdGUKPiAqc3RhdGUpCj4gwqAJcmV0dXJu IDA7Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIHZvaWQgc2tsX2V2YWRlX2NydGNfd20oc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gLQkJCcKgwqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjc3RhdGUpCj4gK3N0YXRpYyB2b2lkIHNrbF9ldmFkZV9jcnRjX3dtKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj c3RhdGUpCj4gwqB7Cj4gwqAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNzdGF0ZS0+YmFzZS5jcnRjKTsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KHN0YXRlLQo+ID5iYXNlLmRldik7Cj4gwqAJc3RydWN0IHNrbF9waXBlX3dt ICpwaXBlX3dtID0gJmNzdGF0ZS0+d20uc2tsLm9wdGltYWw7Cj4gKwljb25zdCBzdHJ1Y3Qgc2ts X2RkYl9hbGxvY2F0aW9uICpkZGIgPSAmc3RhdGUtCj4gPndtX3Jlc3VsdHMuZGRiOwo+IMKgCWVu dW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiArCWludCBwbGFuZTsKPiArCj4gKwlpZiAoIShz dGF0ZS0+d21fcmVzdWx0cy5kaXJ0eV9waXBlcyAmIGRybV9jcnRjX21hc2soJmNydGMtCj4gPmJh c2UpKSkKPiArCQlyZXR1cm47Cj4gwqAKPiAtCUk5MTVfV1JJVEUoUElQRV9XTV9MSU5FVElNRShw aXBlKSwKPiAtCQnCoMKgwqBwaXBlX3dtLT5saW5ldGltZSk7Cj4gKwlJOTE1X1dSSVRFKFBJUEVf V01fTElORVRJTUUocGlwZSksIHBpcGVfd20tPmxpbmV0aW1lKTsKPiArCj4gKwlmb3IgKHBsYW5l ID0gMDsgcGxhbmUgPCBpbnRlbF9udW1fcGxhbmVzKGNydGMpOyBwbGFuZSsrKQo+ICsJCXNrbF93 cml0ZV9wbGFuZV93bShjcnRjLCAmcGlwZV93bS0+cGxhbmVzW3BsYW5lXSwKPiBkZGIsIHBsYW5l KTsKPiArCj4gKwlza2xfd3JpdGVfY3Vyc29yX3dtKGNydGMsICZwaXBlX3dtLT5wbGFuZXNbUExB TkVfQ1VSU09SXSwKPiBkZGIpOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyB2b2lkIHNrbF91cGRhdGVf d20oc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICtzdGF0aWMgdm9pZCBza2xfaW5pdGlhbF93bShz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiArCQkJwqDCoMKgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNzdGF0ZSkKPiDCoHsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNz dGF0ZS0+YmFzZS5jcnRjOwo+IMKgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjKTsKPiDCoAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2 Owo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK PiAtCXN0cnVjdCBza2xfd21fdmFsdWVzICpyZXN1bHRzID0gJmRldl9wcml2LT53bS5za2xfcmVz dWx0czsKPiArCXN0cnVjdCBza2xfd21fdmFsdWVzICpyZXN1bHRzID0gJnN0YXRlLT53bV9yZXN1 bHRzOwo+IMKgCXN0cnVjdCBza2xfd21fdmFsdWVzICpod192YWxzID0gJmRldl9wcml2LT53bS5z a2xfaHc7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlID0gdG9faW50ZWxfY3J0 Y19zdGF0ZShjcnRjLQo+ID5zdGF0ZSk7Cj4gLQlzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20g PSAmY3N0YXRlLT53bS5za2wub3B0aW1hbDsKPiDCoAllbnVtIHBpcGUgcGlwZSA9IGludGVsX2Ny dGMtPnBpcGU7Cj4gwqAKPiDCoAlpZiAoKHJlc3VsdHMtPmRpcnR5X3BpcGVzICYgZHJtX2NydGNf bWFzayhjcnRjKSkgPT0gMCkKPiBAQCAtNDIxMywxNiArNDIyMSw4IEBAIHN0YXRpYyB2b2lkIHNr bF91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjCj4gKmNydGMpCj4gwqAJwqAqIHRoZSBwaXBlJ3Mg c2h1dCBvZmYsIGp1c3QgZG8gc28gaGVyZS4gQWxyZWFkeSBhY3RpdmUKPiBwaXBlcyB3aWxsIGhh dmUKPiDCoAnCoCogdGhlaXIgd2F0ZXJtYXJrcyB1cGRhdGVkIG9uY2Ugd2UgdXBkYXRlIHRoZWly IHBsYW5lcy4KPiDCoAnCoCovCj4gLQlpZiAoY3J0Yy0+c3RhdGUtPmFjdGl2ZV9jaGFuZ2VkKSB7 Cj4gLQkJaW50IHBsYW5lOwo+IC0KPiAtCQlmb3IgKHBsYW5lID0gMDsgcGxhbmUgPAo+IGludGVs X251bV9wbGFuZXMoaW50ZWxfY3J0Yyk7IHBsYW5lKyspCj4gLQkJCXNrbF93cml0ZV9wbGFuZV93 bShpbnRlbF9jcnRjLCAmcGlwZV93bS0KPiA+cGxhbmVzW3BsYW5lXSwKPiAtCQkJCQnCoMKgwqAm cmVzdWx0cy0+ZGRiLCBwbGFuZSk7Cj4gLQo+IC0JCXNrbF93cml0ZV9jdXJzb3Jfd20oaW50ZWxf Y3J0YywgJnBpcGVfd20tCj4gPnBsYW5lc1tQTEFORV9DVVJTT1JdLAo+IC0JCQkJwqDCoMKgwqAm cmVzdWx0cy0+ZGRiKTsKPiAtCX0KPiArCWlmIChjc3RhdGUtPmJhc2UuYWN0aXZlX2NoYW5nZWQp Cj4gKwkJc2tsX2V2YWRlX2NydGNfd20oc3RhdGUsIGNzdGF0ZSk7Cj4gwqAKPiDCoAlza2xfY29w eV93bV9mb3JfcGlwZShod192YWxzLCByZXN1bHRzLCBwaXBlKTsKPiDCoAo+IEBAIC03NzI3LDcg Kzc3MjcsNyBAQCB2b2lkIGludGVsX2luaXRfcG0oc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiDC oAkvKiBGb3IgRklGTyB3YXRlcm1hcmsgdXBkYXRlcyAqLwo+IMKgCWlmIChJTlRFTF9JTkZPKGRl diktPmdlbiA+PSA5KSB7Cj4gwqAJCXNrbF9zZXR1cF93bV9sYXRlbmN5KGRldik7Cj4gLQkJZGV2 X3ByaXYtPmRpc3BsYXkudXBkYXRlX3dtID0gc2tsX3VwZGF0ZV93bTsKPiArCQlkZXZfcHJpdi0+ ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3MgPQo+IHNrbF9pbml0aWFsX3dtOwo+IMKgCQlkZXZf cHJpdi0+ZGlzcGxheS5hdG9taWNfZXZhZGVfd2F0ZXJtYXJrcyA9Cj4gc2tsX2V2YWRlX2NydGNf d207Cj4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmNvbXB1dGVfZ2xvYmFsX3dhdGVybWFya3MgPQo+ IHNrbF9jb21wdXRlX3dtOwo+IMKgCX0gZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXYpKSB7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IDBmYjc3NWI0YzkzZS4uMzY2 OTAwZGNkZTM0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBAQCAtMjAz LDEzICsyMDMsOCBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFu ZSwKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7 Cj4gwqAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKGRy bV9wbGFuZSk7Cj4gwqAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+ YmFzZS5mYjsKPiAtCWNvbnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSA9ICZkZXZfcHJpdi0+ d20uc2tsX3Jlc3VsdHM7Cj4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjcnRjX3N0YXRlLT5i YXNlLmNydGM7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Yyk7Cj4gwqAJY29uc3QgaW50IHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlwZTsKPiDCoAlj b25zdCBpbnQgcGxhbmUgPSBpbnRlbF9wbGFuZS0+cGxhbmUgKyAxOwo+IC0JY29uc3Qgc3RydWN0 IHNrbF9wbGFuZV93bSAqcF93bSA9Cj4gLQkJJmNydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBs YW5lc1twbGFuZV07Cj4gwqAJdTMyIHBsYW5lX2N0bDsKPiDCoAljb25zdCBzdHJ1Y3QgZHJtX2lu dGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLQo+ID5ja2V5Owo+IMKgCXUz MiBzdXJmX2FkZHIgPSBwbGFuZV9zdGF0ZS0+bWFpbi5vZmZzZXQ7Cj4gQEAgLTIzMyw5ICsyMjgs NiBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZSwKPiDCoAo+ IMKgCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX3JvdGF0aW9uKHJvdGF0aW9uKTsKPiDCoAo+ IC0JaWYgKHdtLT5kaXJ0eV9waXBlcyAmIGRybV9jcnRjX21hc2soY3J0YykpCj4gLQkJc2tsX3dy aXRlX3BsYW5lX3dtKGludGVsX2NydGMsIHBfd20sICZ3bS0+ZGRiLAo+IHBsYW5lKTsKPiAtCj4g wqAJaWYgKGtleS0+ZmxhZ3MpIHsKPiDCoAkJSTkxNV9XUklURShQTEFORV9LRVlWQUwocGlwZSwg cGxhbmUpLCBrZXktCj4gPm1pbl92YWx1ZSk7Cj4gwqAJCUk5MTVfV1JJVEUoUExBTkVfS0VZTUFY KHBpcGUsIHBsYW5lKSwga2V5LQo+ID5tYXhfdmFsdWUpOwo+IEBAIC0yOTEsMTkgKzI4Myw5IEBA IHNrbF9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwKPiBzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCj4gwqAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRwbGFuZS0+ZGV2Owo+ IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiDC oAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUoZHBsYW5l KTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0 YXRlKGNydGMtCj4gPnN0YXRlKTsKPiDCoAljb25zdCBpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5w aXBlOwo+IMKgCWNvbnN0IGludCBwbGFuZSA9IGludGVsX3BsYW5lLT5wbGFuZSArIDE7Cj4gwqAK PiAtCS8qCj4gLQnCoCogV2Ugb25seSBwb3B1bGF0ZSBza2xfcmVzdWx0cyBvbiB3YXRlcm1hcmsg dXBkYXRlcywgYW5kIGlmCj4gdGhlCj4gLQnCoCogcGxhbmUncyB2aXNpYmxpdHkgaXNuJ3QgYWN0 dWFsbHkgY2hhbmdpbmcgbmVpdGhlciBpcyBpdHMKPiB3YXRlcm1hcmtzLgo+IC0JwqAqLwo+IC0J aWYgKCFkcGxhbmUtPnN0YXRlLT52aXNpYmxlKQo+IC0JCXNrbF93cml0ZV9wbGFuZV93bSh0b19p bnRlbF9jcnRjKGNydGMpLAo+IC0JCQkJwqDCoMKgJmNzdGF0ZS0KPiA+d20uc2tsLm9wdGltYWwu cGxhbmVzW3BsYW5lXSwKPiAtCQkJCcKgwqDCoCZkZXZfcHJpdi0+d20uc2tsX3Jlc3VsdHMuZGRi LAo+IHBsYW5lKTsKPiAtCj4gwqAJSTkxNV9XUklURShQTEFORV9DVEwocGlwZSwgcGxhbmUpLCAw KTsKPiDCoAo+IMKgCUk5MTVfV1JJVEUoUExBTkVfU1VSRihwaXBlLCBwbGFuZSksIDApOwotLSAK Q2hlZXJzLAoJTHl1ZGUKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==