From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: Re: [PATCH v2 09/11] drm/i915/gen9+: Program watermarks as a separate step during evasion, v2. Date: Wed, 26 Oct 2016 12:05:25 -0400 Message-ID: <1477497925.24403.1.camel@redhat.com> References: <1477489299-25777-1-git-send-email-maarten.lankhorst@linux.intel.com> <1477489299-25777-10-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 82B216E8C5 for ; Wed, 26 Oct 2016 16:05:27 +0000 (UTC) In-Reply-To: <1477489299-25777-10-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 VGhpcyBhcHByb2FjaCBpcyBwZXJmZWN0IDopLgoKUmV2aWV3ZWQtYnk6IEx5dWRlIDxseXVkZUBy ZWRoYXQuY29tPgoKT24gV2VkLCAyMDE2LTEwLTI2IGF0IDE1OjQxICswMjAwLCBNYWFydGVuIExh bmtob3JzdCB3cm90ZToKPiBUaGUgd2F0ZXJtYXJrIHVwZGF0ZXMgZm9yIFNLTCBzdHlsZSB3YXRl cm1hcmtzIGFyZSBubyBsb25nZXIgZG9uZQo+IGluIHRoZSBwbGFuZSBjYWxsYmFja3MsIGJ1dCBh cmUgbm93IGNhbGxlZCBpbiBhIHNlcGFyYXRlIHdhdGVybWFyawo+IHVwZGF0ZSBmdW5jdGlvbiB0 aGF0J3MgY2FsbGVkIGR1cmluZyB0aGUgc2FtZSB2YmxhbmsgZXZhc2lvbiwKPiBiZWZvcmUgdGhl IHBsYW5lIHVwZGF0ZXMuCj4gCj4gVGhpcyBhbHNvIGdldHMgcmlkIG9mIHRoZSBnbG9iYWwgc2ts X3Jlc3VsdHMsIHdoaWNoIHdhcyByZXF1aXJlZCBmb3IKPiBrZWVwaW5nIHRyYWNrIG9mIHRoZSBj dXJyZW50IGF0b21pYyBjb21taXQuCj4gCj4gQ2hhbmdlcyBzaW5jZSB2MToKPiAtIE1vdmUgbGlu ZSB1bndyYXAgdG8gY29ycmVjdCBwYXRjaC4gKEx5dWRlKQo+IC0gTWFrZSBzdXJlIHdlIGRvbid0 IHJlZ3Jlc3MgSUxLIHdhdGVybWFya3MuIChNYXR0KQo+IC0gUmVwaHJhc2UgY29tbWl0IG1lc3Nh Z2UuIChNYXR0KQo+IAo+IENjOiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29t Pgo+IENjOiBMeXVkZSA8Y3BhdWxAcmVkaGF0LmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVu IExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IC0tLQo+IMKg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaMKgwqDCoMKgwqDCoHzCoMKgNyAtLS0tLS0t Cj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA0MCArKysrKysrKysr KystLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0tLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5owqDCoMKgwqDCoHzCoMKgNyAtLS0tLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jwqDCoMKgwqDCoMKgfCAzNSArKysrKysrKysrKysrKysrLS0tLS0tLS0KPiAt LS0tLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuY8KgwqB8IDE4IC0t LS0tLS0tLS0tLS0tLS0KPiDCoDUgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgNzYg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA3YTQ3N2Q2 YTQ4NmUuLjIyNzk5M2YwZTNmZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0y MDM4LDEzICsyMDM4LDYgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+IMKgCQnCoCovCj4g wqAJCXVpbnQxNl90IHNrbF9sYXRlbmN5WzhdOwo+IMKgCj4gLQkJLyoKPiAtCQnCoCogVGhlIHNr bF93bV92YWx1ZXMgc3RydWN0dXJlIGlzIGEgYml0IHRvbyBiaWcgZm9yCj4gc3RhY2sKPiAtCQnC oCogYWxsb2NhdGlvbiwgc28gd2Uga2VlcCB0aGUgc3RhZ2luZyBzdHJ1Y3Qgd2hlcmUKPiB3ZSBz dG9yZQo+IC0JCcKgKiBpbnRlcm1lZGlhdGUgcmVzdWx0cyBoZXJlIGluc3RlYWQuCj4gLQkJwqAq Lwo+IC0JCXN0cnVjdCBza2xfd21fdmFsdWVzIHNrbF9yZXN1bHRzOwo+IC0KPiDCoAkJLyogY3Vy cmVudCBoYXJkd2FyZSBzdGF0ZSAqLwo+IMKgCQl1bmlvbiB7Cj4gwqAJCQlzdHJ1Y3QgaWxrX3dt X3ZhbHVlcyBodzsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA1 OTJhNmVjMzU0YTcuLmU4MGVjZjg1NzY4YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiBAQCAtMzM4NCw5ICszMzg0LDYgQEAgc3RhdGljIHZvaWQgc2t5bGFrZV91cGRh dGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QKPiBkcm1fcGxhbmUgKnBsYW5lLAo+IMKgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiDCoAlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0KPiA+YmFzZS5j cnRjKTsKPiDCoAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNl LmZiOwo+IC0JY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtID0gJmRldl9wcml2LT53bS5z a2xfcmVzdWx0czsKPiAtCWNvbnN0IHN0cnVjdCBza2xfcGxhbmVfd20gKnBfd20gPQo+IC0JCSZj cnRjX3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbMF07Cj4gwqAJaW50IHBpcGUgPSBpbnRl bF9jcnRjLT5waXBlOwo+IMKgCXUzMiBwbGFuZV9jdGw7Cj4gwqAJdW5zaWduZWQgaW50IHJvdGF0 aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247Cj4gQEAgLTM0MjIsOSArMzQxOSw2IEBA IHN0YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0Cj4gZHJtX3Bs YW5lICpwbGFuZSwKPiDCoAlpbnRlbF9jcnRjLT5hZGp1c3RlZF94ID0gc3JjX3g7Cj4gwqAJaW50 ZWxfY3J0Yy0+YWRqdXN0ZWRfeSA9IHNyY195Owo+IMKgCj4gLQlpZiAod20tPmRpcnR5X3BpcGVz ICYgZHJtX2NydGNfbWFzaygmaW50ZWxfY3J0Yy0+YmFzZSkpCj4gLQkJc2tsX3dyaXRlX3BsYW5l X3dtKGludGVsX2NydGMsIHBfd20sICZ3bS0+ZGRiLCAwKTsKPiAtCj4gwqAJSTkxNV9XUklURShQ TEFORV9DVEwocGlwZSwgMCksIHBsYW5lX2N0bCk7Cj4gwqAJSTkxNV9XUklURShQTEFORV9PRkZT RVQocGlwZSwgMCksIChzcmNfeSA8PCAxNikgfCBzcmNfeCk7Cj4gwqAJSTkxNV9XUklURShQTEFO RV9TVFJJREUocGlwZSwgMCksIHN0cmlkZSk7Cj4gQEAgLTM0NTcsMTggKzM0NTEsOCBAQCBzdGF0 aWMgdm9pZAo+IHNreWxha2VfZGlzYWJsZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnByaW1hcnksCj4gwqAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiDCoAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gwqAJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+IC0Jc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0K PiA+c3RhdGUpOwo+IC0JY29uc3Qgc3RydWN0IHNrbF9wbGFuZV93bSAqcF93bSA9ICZjc3RhdGUt Cj4gPndtLnNrbC5vcHRpbWFsLnBsYW5lc1swXTsKPiDCoAlpbnQgcGlwZSA9IGludGVsX2NydGMt PnBpcGU7Cj4gwqAKPiAtCS8qCj4gLQnCoCogV2Ugb25seSBwb3B1bGF0ZSBza2xfcmVzdWx0cyBv biB3YXRlcm1hcmsgdXBkYXRlcywgYW5kIGlmCj4gdGhlCj4gLQnCoCogcGxhbmUncyB2aXNpYmxp dHkgaXNuJ3QgYWN0dWFsbHkgY2hhbmdpbmcgbmVpdGhlciBpcyBpdHMKPiB3YXRlcm1hcmtzLgo+ IC0JwqAqLwo+IC0JaWYgKCFjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+dmlzaWJsZSkKPiAtCQlza2xf d3JpdGVfcGxhbmVfd20oaW50ZWxfY3J0YywgcF93bSwKPiAtCQkJCcKgwqDCoCZkZXZfcHJpdi0+ d20uc2tsX3Jlc3VsdHMuZGRiLAo+IDApOwo+IC0KPiDCoAlJOTE1X1dSSVRFKFBMQU5FX0NUTChw aXBlLCAwKSwgMCk7Cj4gwqAJSTkxNV9XUklURShQTEFORV9TVVJGKHBpcGUsIDApLCAwKTsKPiDC oAlQT1NUSU5HX1JFQUQoUExBTkVfU1VSRihwaXBlLCAwKSk7Cj4gQEAgLTEwODQwLDE2ICsxMDgy NCw5IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX2N1cnNvcihzdHJ1Y3QKPiBkcm1fY3J0YyAq Y3J0YywgdTMyIGJhc2UsCj4gwqAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsK PiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4g wqAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ IC0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUo Y3J0Yy0KPiA+c3RhdGUpOwo+IC0JY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtID0gJmRl dl9wcml2LT53bS5za2xfcmVzdWx0czsKPiAtCWNvbnN0IHN0cnVjdCBza2xfcGxhbmVfd20gKnBf d20gPQo+IC0JCSZjc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1tQTEFORV9DVVJTT1JdOwo+ IMKgCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiDCoAl1aW50MzJfdCBjbnRsID0gMDsK PiDCoAo+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSAmJiB3bS0+ZGlydHlfcGlwZXMg Jgo+IGRybV9jcnRjX21hc2soY3J0YykpCj4gLQkJc2tsX3dyaXRlX2N1cnNvcl93bShpbnRlbF9j cnRjLCBwX3dtLCAmd20tPmRkYik7Cj4gLQo+IMKgCWlmIChwbGFuZV9zdGF0ZSAmJiBwbGFuZV9z dGF0ZS0+YmFzZS52aXNpYmxlKSB7Cj4gwqAJCWNudGwgPSBNQ1VSU09SX0dBTU1BX0VOQUJMRTsK PiDCoAkJc3dpdGNoIChwbGFuZV9zdGF0ZS0+YmFzZS5jcnRjX3cpIHsKPiBAQCAtMTQ0NTksOCAr MTQ0MzYsMTcgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdAo+ IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+IMKgCQkJaW50ZWxfY2hlY2tfY3B1X2ZpZm9fdW5k ZXJydW5zKGRldl9wcml2KTsKPiDCoAkJCWludGVsX2NoZWNrX3BjaF9maWZvX3VuZGVycnVucyhk ZXZfcHJpdik7Cj4gwqAKPiAtCQkJaWYgKCFjcnRjLT5zdGF0ZS0+YWN0aXZlKQo+IC0JCQkJaW50 ZWxfdXBkYXRlX3dhdGVybWFya3MoY3J0Yyk7Cj4gKwkJCWlmICghY3J0Yy0+c3RhdGUtPmFjdGl2 ZSkgewo+ICsJCQkJLyoKPiArCQkJCcKgKiBNYWtlIHN1cmUgd2UgZG9uJ3QgY2FsbAo+IGluaXRp YWxfd2F0ZXJtYXJrcwo+ICsJCQkJwqAqIGZvciBJTEstc3R5bGUgd2F0ZXJtYXJrIHVwZGF0ZXMu Cj4gKwkJCQnCoCovCj4gKwkJCQlpZiAoSEFTX0RESShkZXZfcHJpdikgJiYgZGV2X3ByaXYtCj4g PmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzKQo+ICsJCQkJCWRldl9wcml2LQo+ID5kaXNwbGF5 LmluaXRpYWxfd2F0ZXJtYXJrcyhpbnRlbF9zdGF0ZSwKPiArCQkJCQkJCQkJCj4gwqDCoMKgwqDC oHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpKTsKPiArCQkJCWVsc2UKPiArCQkJCQlp bnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhjcnRjCj4gKTsKPiArCQkJfQo+IMKgCQl9Cj4gwqAJfQo+ IMKgCj4gQEAgLTE0NjMxLDcgKzE0NjE3LDYgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29t bWl0KHN0cnVjdAo+IGRybV9kZXZpY2UgKmRldiwKPiDCoAo+IMKgCWRybV9hdG9taWNfaGVscGVy X3N3YXBfc3RhdGUoc3RhdGUsIHRydWUpOwo+IMKgCWRldl9wcml2LT53bS5kaXN0cnVzdF9iaW9z X3dtID0gZmFsc2U7Cj4gLQlkZXZfcHJpdi0+d20uc2tsX3Jlc3VsdHMgPSBpbnRlbF9zdGF0ZS0+ d21fcmVzdWx0czsKPiDCoAlpbnRlbF9zaGFyZWRfZHBsbF9jb21taXQoc3RhdGUpOwo+IMKgCWlu dGVsX2F0b21pY190cmFja19mYnMoc3RhdGUpOwo+IMKgCj4gQEAgLTE0OTM5LDcgKzE0OTI0LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0Cj4gZHJtX2NydGMg KmNydGMsCj4gwqAJaW50ZWxfcGlwZV91cGRhdGVfc3RhcnQoaW50ZWxfY3J0Yyk7Cj4gwqAKPiDC oAlpZiAobW9kZXNldCkKPiAtCQlyZXR1cm47Cj4gKwkJZ290byBvdXQ7Cj4gwqAKPiDCoAlpZiAo Y3J0Yy0+c3RhdGUtPmNvbG9yX21nbXRfY2hhbmdlZCB8fAo+IHRvX2ludGVsX2NydGNfc3RhdGUo Y3J0Yy0+c3RhdGUpLT51cGRhdGVfcGlwZSkgewo+IMKgCQlpbnRlbF9jb2xvcl9zZXRfY3NjKGNy dGMtPnN0YXRlKTsKPiBAQCAtMTQ5NTEsNiArMTQ5MzYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9i ZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QKPiBkcm1fY3J0YyAqY3J0YywKPiDCoAllbHNlIGlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCj4gwqAJCXNrbF9kZXRhY2hfc2NhbGVycyhpbnRlbF9j cnRjKTsKPiDCoAo+ICtvdXQ6Cj4gwqAJaWYgKGRldl9wcml2LT5kaXNwbGF5LmF0b21pY19ldmFk ZV93YXRlcm1hcmtzKQo+IMKgCQlkZXZfcHJpdi0KPiA+ZGlzcGxheS5hdG9taWNfZXZhZGVfd2F0 ZXJtYXJrcyh0b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX2NydGNfc3RhdGUKPiAtPnN0YXRlKSwg aW50ZWxfY3N0YXRlKTsKPiDCoH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXgg NzdhMGE3M2UzN2IwLi4yY2Q3YzVmZDllYmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+IEBAIC0xNzQ3LDEzICsxNzQ3LDYgQEAgYm9vbCBza2xfZGRiX2FsbG9jYXRpb25fZXF1YWxz KGNvbnN0IHN0cnVjdAo+IHNrbF9kZGJfYWxsb2NhdGlvbiAqb2xkLAo+IMKgCQkJwqDCoMKgwqDC oMKgwqBlbnVtIHBpcGUgcGlwZSk7Cj4gwqBib29sIHNrbF9kZGJfYWxsb2NhdGlvbl9vdmVybGFw cyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gwqAJCQkJwqBzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0Yyk7Cj4gLXZvaWQgc2tsX3dyaXRlX2N1cnNvcl93bShzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiAtCQkJwqBjb25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICp3 bSwKPiAtCQkJwqBjb25zdCBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIpOwo+IC12b2lk IHNrbF93cml0ZV9wbGFuZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiAtCQkJ Y29uc3Qgc3RydWN0IHNrbF9wbGFuZV93bSAqd20sCj4gLQkJCWNvbnN0IHN0cnVjdCBza2xfZGRi X2FsbG9jYXRpb24gKmRkYiwKPiAtCQkJaW50IHBsYW5lKTsKPiDCoHVpbnQzMl90IGlsa19waXBl X3BpeGVsX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUKPiAqcGlwZV9jb25maWcp Owo+IMKgYm9vbCBpbGtfZGlzYWJsZV9scF93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiDC oGludCBzYW5pdGl6ZV9yYzZfb3B0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgaW50Cj4gZW5hYmxlX3JjNik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCBm ZTRiYzk3ZWQ1NmEuLmUyNTQxNTM5OTY3YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ IEBAIC00MjAxLDI2ICs0MjAxLDM1IEBAIHNrbF9jb21wdXRlX3dtKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlCj4gKnN0YXRlKQo+IMKgCXJldHVybiAwOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyB2b2lk IHNrbF9ldmFkZV9jcnRjX3dtKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+IC0J CQnCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQo+ICtzdGF0aWMg dm9pZCBza2xfZXZhZGVfY3J0Y193bShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwK PiBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQo+IMKgewo+IMKgCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhjc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gwqAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0KPiA+YmFzZS5k ZXYpOwo+IMKgCXN0cnVjdCBza2xfcGlwZV93bSAqcGlwZV93bSA9ICZjc3RhdGUtPndtLnNrbC5v cHRpbWFsOwo+ICsJY29uc3Qgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiID0gJnN0YXRl LQo+ID53bV9yZXN1bHRzLmRkYjsKPiDCoAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4g KwlpbnQgcGxhbmU7Cj4gKwo+ICsJaWYgKCEoc3RhdGUtPndtX3Jlc3VsdHMuZGlydHlfcGlwZXMg JiBkcm1fY3J0Y19tYXNrKCZjcnRjLQo+ID5iYXNlKSkpCj4gKwkJcmV0dXJuOwo+IMKgCj4gwqAJ STkxNV9XUklURShQSVBFX1dNX0xJTkVUSU1FKHBpcGUpLCBwaXBlX3dtLT5saW5ldGltZSk7Cj4g Kwo+ICsJZm9yIChwbGFuZSA9IDA7IHBsYW5lIDwgaW50ZWxfbnVtX3BsYW5lcyhjcnRjKTsgcGxh bmUrKykKPiArCQlza2xfd3JpdGVfcGxhbmVfd20oY3J0YywgJnBpcGVfd20tPnBsYW5lc1twbGFu ZV0sCj4gZGRiLCBwbGFuZSk7Cj4gKwo+ICsJc2tsX3dyaXRlX2N1cnNvcl93bShjcnRjLCAmcGlw ZV93bS0+cGxhbmVzW1BMQU5FX0NVUlNPUl0sCj4gZGRiKTsKPiDCoH0KPiDCoAo+IC1zdGF0aWMg dm9pZCBza2xfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiArc3RhdGljIHZvaWQg c2tsX2luaXRpYWxfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gKwkJCcKg wqDCoHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCj4gwqB7Cj4gKwlzdHJ1Y3QgZHJt X2NydGMgKmNydGMgPSBjc3RhdGUtPmJhc2UuY3J0YzsKPiDCoAlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gwqAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGNydGMtPmRldjsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7Cj4gLQlzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqcmVzdWx0cyA9ICZkZXZf cHJpdi0+d20uc2tsX3Jlc3VsdHM7Cj4gKwlzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqcmVzdWx0cyA9 ICZzdGF0ZS0+d21fcmVzdWx0czsKPiDCoAlzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqaHdfdmFscyA9 ICZkZXZfcHJpdi0+d20uc2tsX2h3Owo+IC0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0 ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0KPiA+c3RhdGUpOwo+IC0Jc3RydWN0IHNrbF9w aXBlX3dtICpwaXBlX3dtID0gJmNzdGF0ZS0+d20uc2tsLm9wdGltYWw7Cj4gwqAJZW51bSBwaXBl IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+IMKgCj4gwqAJaWYgKChyZXN1bHRzLT5kaXJ0eV9w aXBlcyAmIGRybV9jcnRjX21hc2soY3J0YykpID09IDApCj4gQEAgLTQyMzQsMTYgKzQyNDMsOCBA QCBzdGF0aWMgdm9pZCBza2xfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0Ywo+ICpjcnRjKQo+IMKg CcKgKiB0aGUgcGlwZSdzIHNodXQgb2ZmLCBqdXN0IGRvIHNvIGhlcmUuIEFscmVhZHkgYWN0aXZl Cj4gcGlwZXMgd2lsbCBoYXZlCj4gwqAJwqAqIHRoZWlyIHdhdGVybWFya3MgdXBkYXRlZCBvbmNl IHdlIHVwZGF0ZSB0aGVpciBwbGFuZXMuCj4gwqAJwqAqLwo+IC0JaWYgKGNydGMtPnN0YXRlLT5h Y3RpdmVfY2hhbmdlZCkgewo+IC0JCWludCBwbGFuZTsKPiAtCj4gLQkJZm9yIChwbGFuZSA9IDA7 IHBsYW5lIDwKPiBpbnRlbF9udW1fcGxhbmVzKGludGVsX2NydGMpOyBwbGFuZSsrKQo+IC0JCQlz a2xfd3JpdGVfcGxhbmVfd20oaW50ZWxfY3J0YywgJnBpcGVfd20tCj4gPnBsYW5lc1twbGFuZV0s Cj4gLQkJCQkJwqDCoMKgJnJlc3VsdHMtPmRkYiwgcGxhbmUpOwo+IC0KPiAtCQlza2xfd3JpdGVf Y3Vyc29yX3dtKGludGVsX2NydGMsICZwaXBlX3dtLQo+ID5wbGFuZXNbUExBTkVfQ1VSU09SXSwK PiAtCQkJCcKgwqDCoMKgJnJlc3VsdHMtPmRkYik7Cj4gLQl9Cj4gKwlpZiAoY3N0YXRlLT5iYXNl LmFjdGl2ZV9jaGFuZ2VkKQo+ICsJCXNrbF9ldmFkZV9jcnRjX3dtKHN0YXRlLCBjc3RhdGUpOwo+ IMKgCj4gwqAJc2tsX2NvcHlfd21fZm9yX3BpcGUoaHdfdmFscywgcmVzdWx0cywgcGlwZSk7Cj4g wqAKPiBAQCAtNzc1MSw3ICs3NzUyLDcgQEAgdm9pZCBpbnRlbF9pbml0X3BtKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gwqAJLyogRm9yIEZJRk8gd2F0ZXJtYXJrIHVwZGF0ZXMgKi8KPiDCoAlp ZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgewo+IMKgCQlza2xfc2V0dXBfd21fbGF0ZW5j eShkZXYpOwo+IC0JCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV93bSA9IHNrbF91cGRhdGVfd207 Cj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzID0KPiBza2xfaW5pdGlh bF93bTsKPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuYXRvbWljX2V2YWRlX3dhdGVybWFya3MgPQo+ IHNrbF9ldmFkZV9jcnRjX3dtOwo+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX2dsb2Jh bF93YXRlcm1hcmtzID0KPiBza2xfY29tcHV0ZV93bTsKPiDCoAl9IGVsc2UgaWYgKEhBU19QQ0hf U1BMSVQoZGV2X3ByaXYpKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nwcml0ZS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IGlu ZGV4IDQzZDAzNTA4NTZlNy4uMDBkMTdkNjgzZjY3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfc3ByaXRlLmMKPiBAQCAtMjAzLDEzICsyMDMsOCBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVj dCBkcm1fcGxhbmUgKmRybV9wbGFuZSwKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gwqAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFu ZSA9IHRvX2ludGVsX3BsYW5lKGRybV9wbGFuZSk7Cj4gwqAJc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYjsKPiAtCWNvbnN0IHN0cnVjdCBza2xfd21fdmFs dWVzICp3bSA9ICZkZXZfcHJpdi0+d20uc2tsX3Jlc3VsdHM7Cj4gLQlzdHJ1Y3QgZHJtX2NydGMg KmNydGMgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGM7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gwqAJY29uc3QgaW50IHBpcGUgPSBpbnRl bF9wbGFuZS0+cGlwZTsKPiDCoAljb25zdCBpbnQgcGxhbmUgPSBpbnRlbF9wbGFuZS0+cGxhbmUg KyAxOwo+IC0JY29uc3Qgc3RydWN0IHNrbF9wbGFuZV93bSAqcF93bSA9Cj4gLQkJJmNydGNfc3Rh dGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1twbGFuZV07Cj4gwqAJdTMyIHBsYW5lX2N0bDsKPiDC oAljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0 YXRlLQo+ID5ja2V5Owo+IMKgCXUzMiBzdXJmX2FkZHIgPSBwbGFuZV9zdGF0ZS0+bWFpbi5vZmZz ZXQ7Cj4gQEAgLTIzMyw5ICsyMjgsNiBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxh bmUgKmRybV9wbGFuZSwKPiDCoAo+IMKgCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX3JvdGF0 aW9uKHJvdGF0aW9uKTsKPiDCoAo+IC0JaWYgKHdtLT5kaXJ0eV9waXBlcyAmIGRybV9jcnRjX21h c2soY3J0YykpCj4gLQkJc2tsX3dyaXRlX3BsYW5lX3dtKGludGVsX2NydGMsIHBfd20sICZ3bS0+ ZGRiLAo+IHBsYW5lKTsKPiAtCj4gwqAJaWYgKGtleS0+ZmxhZ3MpIHsKPiDCoAkJSTkxNV9XUklU RShQTEFORV9LRVlWQUwocGlwZSwgcGxhbmUpLCBrZXktCj4gPm1pbl92YWx1ZSk7Cj4gwqAJCUk5 MTVfV1JJVEUoUExBTkVfS0VZTUFYKHBpcGUsIHBsYW5lKSwga2V5LQo+ID5tYXhfdmFsdWUpOwo+ IEBAIC0yOTEsMTkgKzI4Myw5IEBAIHNrbF9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KmRwbGFuZSwKPiBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gwqAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGRwbGFuZS0+ZGV2Owo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGV2KTsKPiDCoAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0g dG9faW50ZWxfcGxhbmUoZHBsYW5lKTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3Rh dGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtCj4gPnN0YXRlKTsKPiDCoAljb25zdCBpbnQg cGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwo+IMKgCWNvbnN0IGludCBwbGFuZSA9IGludGVsX3Bs YW5lLT5wbGFuZSArIDE7Cj4gwqAKPiAtCS8qCj4gLQnCoCogV2Ugb25seSBwb3B1bGF0ZSBza2xf cmVzdWx0cyBvbiB3YXRlcm1hcmsgdXBkYXRlcywgYW5kIGlmCj4gdGhlCj4gLQnCoCogcGxhbmUn cyB2aXNpYmxpdHkgaXNuJ3QgYWN0dWFsbHkgY2hhbmdpbmcgbmVpdGhlciBpcyBpdHMKPiB3YXRl cm1hcmtzLgo+IC0JwqAqLwo+IC0JaWYgKCFkcGxhbmUtPnN0YXRlLT52aXNpYmxlKQo+IC0JCXNr bF93cml0ZV9wbGFuZV93bSh0b19pbnRlbF9jcnRjKGNydGMpLAo+IC0JCQkJwqDCoMKgJmNzdGF0 ZS0KPiA+d20uc2tsLm9wdGltYWwucGxhbmVzW3BsYW5lXSwKPiAtCQkJCcKgwqDCoCZkZXZfcHJp di0+d20uc2tsX3Jlc3VsdHMuZGRiLAo+IHBsYW5lKTsKPiAtCj4gwqAJSTkxNV9XUklURShQTEFO RV9DVEwocGlwZSwgcGxhbmUpLCAwKTsKPiDCoAo+IMKgCUk5MTVfV1JJVEUoUExBTkVfU1VSRihw aXBlLCBwbGFuZSksIDApOwotLSAKQ2hlZXJzLAoJTHl1ZGUKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==