From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Disable SAGV on pre plane update. Date: Thu, 22 Feb 2018 22:00:47 +0200 Message-ID: <20180222200047.GD5453@intel.com> References: <20180222192858.4101-1-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id B69AB6E0D5 for ; Thu, 22 Feb 2018 20:01:16 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180222192858.4101-1-rodrigo.vivi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org, Azhar Shaikh List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBGZWIgMjIsIDIwMTggYXQgMTE6Mjg6NThBTSAtMDgwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IEFjY29yZGluZyB0byBTcGVjICJSZXF1aXJlbWVudCBiZWZvcmUgcGxhbmUgZW5hYmxp bmcgb3IKPiBjb25maWd1cmF0aW9uIGNoYW5nZTogRGlzYWJsZSBTQUdWIGlmIGFueSBlbmFibGVk IHBsYW5lIHdpbGwgbm90Cj4gYmUgYWJsZSB0byBlbmFibGUgd2F0ZXJtYXJrcyBmb3IgbWVtb3J5 IGxhdGVuY3kgPj0gU0FHViBibG9jawo+IHRpbWUsIG9yIGFueSB0cmFuc2NvZGVyIGlzIGludGVy bGFjZWQuIEVsc2UsIGVuYWJsZSBTQUdWLiIKPiAKPiBDdXJyZW50bHkgd2UgYXJlIG9ubHkgZW5h YmxpbmcgYW5kIGRpc2FibGluZyBTQUdWIG9uIGZ1bGwKPiBtb2Rlc2V0LiBJZiB3ZSBlbmQgdXAg Y2hhbmdpbmcgcGxhbmUgY29uZmlndXJhdGlvbnMgYW5kCj4gc2FndiByZW1haW5zIGVuYWJsZWQg d2hlbiBsYXRlbmN5IGlzIGhpZ2hlciB0aGFuIHNhZ3YgYmxvY2sKPiB0aW1lIHRoZSBtYWNoaW5l IGNhbiBoYW5nLgo+IAo+IEFsc28gd2UgYXJlIGNvbXB1dGluZyB0aGUgbGF0ZW5jeSB2YWx1ZXMg aW4gZGlmZmVyZW50IHBsYWNlcwo+IGFuZCBmb2xsb3dpbmcgZGlmZmVyZW50IGNvbmRpdGlvbnMv cnVsZXMuCj4gCj4gU28gbGV0J3MgbW92ZSB0aGUgY2FuX2VuYWJsZV9zYWd2IGNoZWNrIHRvIGJl IGluc2lkZQo+IHNrbF9jb21wdXRlX3dtIGFuZCBkaXNhYmxlIGFuZCBlbmFibGUgb24ge3ByZSxw b3N0fSBwbGFuZQo+IHVwZGF0ZXMuCj4gCj4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVz a3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDk3NQo+IENjOiBNYWFydGVuIExhbmtob3JzdCA8 bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IENjOiBBemhhciBTaGFpa2ggPGF6 aGFyLnNoYWlraEBpbnRlbC5jb20+Cj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdv LnZpdmlAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgfCAxOCArKysrKy0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o ICAgICB8ICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICB8IDY0 ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAzIGZpbGVzIGNoYW5nZWQs IDMyIGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiBpbmRleCA2NWM4NDg3YmU3YzcuLjAwODI1NDU3OWJlMSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNTA5MCw2ICs1MDkwLDggQEAg c3RhdGljIGJvb2wgaHN3X3Bvc3RfdXBkYXRlX2VuYWJsZV9pcHMoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKm9sZF9jcnRjX3MKPiAgc3RhdGljIHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91 cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQo+ICB7Cj4gIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJh c2UuY3J0Yyk7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIAlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlID0gb2xkX2NydGNfc3RhdGUtPmJhc2Uu c3RhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQo+ICAJCWlu dGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUodG9faW50ZWxfYXRvbWljX3N0YXRlKG9sZF9z dGF0ZSksCj4gQEAgLTUxMjAsNiArNTEyMiw5IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bvc3RfcGxh bmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKPiAgCQkg ICAgICFvbGRfcHJpbWFyeV9zdGF0ZS0+YmFzZS52aXNpYmxlKSkKPiAgCQkJaW50ZWxfcG9zdF9l bmFibGVfcHJpbWFyeSgmY3J0Yy0+YmFzZSwgcGlwZV9jb25maWcpOwo+ICAJfQo+ICsKPiArCWlm IChwaXBlX2NvbmZpZy0+c2FndikKPiArCQlpbnRlbF9lbmFibGVfc2FndihkZXZfcHJpdik7CgpV bmZvcnR1bmF0ZWx5IGEgc2luZ2xlIHBpcGUgY2FuJ3QgbWFrZSBhIHVuaWxhdGVyYWwgZGVjaXNp b24gdG8KZW5hYmxlIHNhZ3YuIFRoZSBvdGhlciBwaXBlcyBtdXN0IGJlIGRpc2FibGVkIGZpcnN0 LiBBbmQgd2UgY2FuJ3QgdXNlCnN0YXRlLT5hY3RpdmVfY3J0Y3MgZm9yIHRoaXMgaW4gbm9uLW1v ZGVzZXQgY29tbWl0cyBzaW5jZSB0aGF0J3Mgb25seQp2YWxpZCBkdXJpbmcgYSBtb2Rlc2V0LgoK Y3hzciBoYXMgdGhlIHNhbWUgcHJvYmxlbSBwcmV0dHkgbXVjaC4gQ3VycmVudGx5IHRoYXQncyBo YW5kbGVkIHNvbWV3aGF0CmhhY2tpbHkgZnJvbSBmb29fbWVyZ2Vfd20oKSB0byBkaXNhYmxlIGN4 c3Igd2hlbiBtdWx0aXBsZSBwaXBlcyBhcmUKYWN0aXZlLiBCdXQgSSB0aGluayBhIGJldHRlciBp ZGVhIG1pZ2h0IGJlIHRvIG1haW50YWluIGEgYml0bWFzayBvZgpwaXBlcyBhbGxvd2luZyBjeHNy IGluIGRldl9wcml2LiBBbmQgdGhlbiBoYXZlIGVuYWJsZS9kaXNhYmxlIGhvb2tzCnRoYXQgZ2V0 IGNhbGxlZCBmb3IgZWFjaCBwaXBlIGZyb20gdGhlIGNvbW1pdCBwYXRoIHRvIG1hbmlwdWxhdGUg dGhlCmJpdG1hc2sgYW5kIGJhc2VkIG9uIHdoYXQgdGhlIGJpdG1hc2sgZW5kcyB1cCBsb29raW5n IGVpdGhlciBlbmFibGUgb3IKZGlzYWJsZSBjeHNyLiBUaGF0IGlkZWEgY291bGQgYmUgdXNlZCBm b3Igc2FndiBhcyB3ZWxsIEkgc3VwcG9zZS4KCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGludGVs X3ByZV9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRl LAo+IEBAIC01MjA1LDYgKzUyMTAsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBk YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiAgCQkJCQkJICAg ICBwaXBlX2NvbmZpZyk7Cj4gIAllbHNlIGlmIChwaXBlX2NvbmZpZy0+dXBkYXRlX3dtX3ByZSkK PiAgCQlpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhjcnRjKTsKPiArCj4gKwlpZiAoIXBpcGVfY29u ZmlnLT5zYWd2KQo+ICsJCWludGVsX2Rpc2FibGVfc2FndihkZXZfcHJpdik7Cj4gIH0KPiAgCj4g IHN0YXRpYyB2b2lkIGludGVsX2NydGNfZGlzYWJsZV9wbGFuZXMoc3RydWN0IGRybV9jcnRjICpj cnRjLCB1bnNpZ25lZCBwbGFuZV9tYXNrKQo+IEBAIC0xMjM2NiwxMyArMTIzNzQsNiBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlKQo+ICAKPiAgCQlpbnRlbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZkZXZfcHJpdi0+Y2Rj bGsuYWN0dWFsKTsKPiAgCj4gLQkJLyoKPiAtCQkgKiBTS0wgd29ya2Fyb3VuZDogYnNwZWMgcmVj b21tZW5kcyB3ZSBkaXNhYmxlIHRoZSBTQUdWIHdoZW4gd2UKPiAtCQkgKiBoYXZlIG1vcmUgdGhl biBvbmUgcGlwZSBlbmFibGVkCj4gLQkJICovCj4gLQkJaWYgKCFpbnRlbF9jYW5fZW5hYmxlX3Nh Z3Yoc3RhdGUpKQo+IC0JCQlpbnRlbF9kaXNhYmxlX3NhZ3YoZGV2X3ByaXYpOwo+IC0KPiAgCQlp bnRlbF9tb2Rlc2V0X3ZlcmlmeV9kaXNhYmxlZChkZXYsIHN0YXRlKTsKPiAgCX0KPiAgCj4gQEAg LTEyNDMxLDkgKzEyNDMyLDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWls KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCWlmIChpbnRlbF9zdGF0ZS0+bW9k ZXNldCkKPiAgCQlpbnRlbF92ZXJpZnlfcGxhbmVzKGludGVsX3N0YXRlKTsKPiAgCj4gLQlpZiAo aW50ZWxfc3RhdGUtPm1vZGVzZXQgJiYgaW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0YXRlKSkKPiAt CQlpbnRlbF9lbmFibGVfc2FndihkZXZfcHJpdik7Cj4gLQo+ICAJZHJtX2F0b21pY19oZWxwZXJf Y29tbWl0X2h3X2RvbmUoc3RhdGUpOwo+ICAKPiAgCWlmIChpbnRlbF9zdGF0ZS0+bW9kZXNldCkg ewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggMTUzNWJmYjdlYTQwLi40YzEwYThh OTRkNzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC03MTIsNiArNzEyLDcg QEAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgewo+ICAJYm9vbCB1cGRhdGVfcGlwZTsgLyogY2Fu IGEgZmFzdCBtb2Rlc2V0IGJlIHBlcmZvcm1lZD8gKi8KPiAgCWJvb2wgZGlzYWJsZV9jeHNyOwo+ ICAJYm9vbCB1cGRhdGVfd21fcHJlLCB1cGRhdGVfd21fcG9zdDsgLyogd2F0ZXJtYXJrcyBhcmUg dXBkYXRlZCAqLwo+ICsJYm9vbCBzYWd2OyAvKiBEaXNhYmxlIFNBR1Ygb24gYW55IGxhdGVuY3kg aGlnaGVyIHRoYW4gaXRzIGJsb2NrIHRpbWUgKi8KPiAgCWJvb2wgZmJfY2hhbmdlZDsgLyogZmIg b24gYW55IG9mIHRoZSBwbGFuZXMgaXMgY2hhbmdlZCAqLwo+ICAJYm9vbCBmaWZvX2NoYW5nZWQ7 IC8qIEZJRk8gc3BsaXQgaXMgY2hhbmdlZCAqLwo+ICAKPiBAQCAtMjAwMSw3ICsyMDAyLDcgQEAg dm9pZCBza2xfcGlwZV93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJ CQkgICAgICBzdHJ1Y3Qgc2tsX3BpcGVfd20gKm91dCk7Cj4gIHZvaWQgZzR4X3dtX3Nhbml0aXpl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQgdmx2X3dtX3Nhbml0 aXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gLWJvb2wgaW50ZWxfY2Fu X2VuYWJsZV9zYWd2KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gK2Jvb2wgaW50 ZWxfY2FuX2VuYWJsZV9zYWd2KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLCB1MzIg bGF0ZW5jeSk7Cj4gIGludCBpbnRlbF9lbmFibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpOwo+ICBpbnQgaW50ZWxfZGlzYWJsZV9zYWd2KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7Cj4gIGJvb2wgc2tsX3dtX2xldmVsX2VxdWFscyhjb25zdCBzdHJ1 Y3Qgc2tsX3dtX2xldmVsICpsMSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCAyMWRh YzZlYmMyMDIuLjczMWIzODA4YTYyZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBA IC0zNjgxLDE2ICszNjgxLDEzIEBAIGludGVsX2Rpc2FibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtYm9vbCBpbnRlbF9j YW5fZW5hYmxlX3NhZ3Yoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICtib29sIGlu dGVsX2Nhbl9lbmFibGVfc2FndihzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0 ZSwgdTMyIGxhdGVuY3kpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ ZGV2Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX3N0YXRlLT5iYXNlLmRldjsK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAt CXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWlj X3N0YXRlKHN0YXRlKTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwo+IC0Jc3RydWN0IGlu dGVsX3BsYW5lICpwbGFuZTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGU7Cj4g IAllbnVtIHBpcGUgcGlwZTsKPiAtCWludCBsZXZlbCwgbGF0ZW5jeTsKPiAgCWludCBzYWd2X2Js b2NrX3RpbWVfdXM7Cj4gIAo+ICAJaWYgKCFpbnRlbF9oYXNfc2FndihkZXZfcHJpdikpCj4gQEAg LTM3MDMsNiArMzcwMCw5IEBAIGJvb2wgaW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCWVsc2UKPiAgCQlzYWd2X2Jsb2NrX3RpbWVfdXMgPSAx MDsKPiAgCj4gKwlpZiAobGF0ZW5jeSA8IHNhZ3ZfYmxvY2tfdGltZV91cykKPiArCQlyZXR1cm4g ZmFsc2U7Cj4gKwo+ICAJLyoKPiAgCSAqIFNLTCsgd29ya2Fyb3VuZDogYnNwZWMgcmVjb21tZW5k cyB3ZSBkaXNhYmxlIHRoZSBTQUdWIHdoZW4gd2UgaGF2ZQo+ICAJICogbW9yZSB0aGVuIG9uZSBw aXBlIGVuYWJsZWQKPiBAQCAtMzcyMiwzNSArMzcyMiw2IEBAIGJvb2wgaW50ZWxfY2FuX2VuYWJs ZV9zYWd2KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCWlmIChjcnRjLT5iYXNl LnN0YXRlLT5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpCj4g IAkJcmV0dXJuIGZhbHNlOwo+ICAKPiAtCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2 LCBjcnRjLCBwbGFuZSkgewo+IC0JCXN0cnVjdCBza2xfcGxhbmVfd20gKndtID0KPiAtCQkJJmNz dGF0ZS0+d20uc2tsLm9wdGltYWwucGxhbmVzW3BsYW5lLT5pZF07Cj4gLQo+IC0JCS8qIFNraXAg dGhpcyBwbGFuZSBpZiBpdCdzIG5vdCBlbmFibGVkICovCj4gLQkJaWYgKCF3bS0+d21bMF0ucGxh bmVfZW4pCj4gLQkJCWNvbnRpbnVlOwo+IC0KPiAtCQkvKiBGaW5kIHRoZSBoaWdoZXN0IGVuYWJs ZWQgd20gbGV2ZWwgZm9yIHRoaXMgcGxhbmUgKi8KPiAtCQlmb3IgKGxldmVsID0gaWxrX3dtX21h eF9sZXZlbChkZXZfcHJpdik7Cj4gLQkJICAgICAhd20tPndtW2xldmVsXS5wbGFuZV9lbjsgLS1s ZXZlbCkKPiAtCQkgICAgIHsgfQo+IC0KPiAtCQlsYXRlbmN5ID0gZGV2X3ByaXYtPndtLnNrbF9s YXRlbmN5W2xldmVsXTsKPiAtCj4gLQkJaWYgKHNrbF9uZWVkc19tZW1vcnlfYndfd2EoaW50ZWxf c3RhdGUpICYmCj4gLQkJICAgIHBsYW5lLT5iYXNlLnN0YXRlLT5mYi0+bW9kaWZpZXIgPT0KPiAt CQkgICAgSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQpCj4gLQkJCWxhdGVuY3kgKz0gMTU7Cj4gLQo+ IC0JCS8qCj4gLQkJICogSWYgYW55IG9mIHRoZSBwbGFuZXMgb24gdGhpcyBwaXBlIGRvbid0IGVu YWJsZSB3bSBsZXZlbHMgdGhhdAo+IC0JCSAqIGluY3VyIG1lbW9yeSBsYXRlbmNpZXMgaGlnaGVy IHRoYW4gc2Fndl9ibG9ja190aW1lX3VzIHdlCj4gLQkJICogY2FuJ3QgZW5hYmxlIHRoZSBTQUdW Lgo+IC0JCSAqLwo+IC0JCWlmIChsYXRlbmN5IDwgc2Fndl9ibG9ja190aW1lX3VzKQo+IC0JCQly ZXR1cm4gZmFsc2U7Cj4gLQl9Cj4gLQo+ICAJcmV0dXJuIHRydWU7Cj4gIH0KPiAgCj4gQEAgLTQ1 MDEsNyArNDQ3Miw4IEBAIHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJY29uc3Qgc3RydWN0IHNrbF93 bV9wYXJhbXMgKndwLAo+ICAJCQkJdWludDE2X3QgKm91dF9ibG9ja3MsIC8qIG91dCAqLwo+ICAJ CQkJdWludDhfdCAqb3V0X2xpbmVzLCAvKiBvdXQgKi8KPiAtCQkJCWJvb2wgKmVuYWJsZWQgLyog b3V0ICovKQo+ICsJCQkJYm9vbCAqZW5hYmxlZCwgLyogb3V0ICovCj4gKwkJCQlib29sICpzYWd2 IC8qIG91dCAqLykKPiAgewo+ICAJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRl ID0gJmludGVsX3BzdGF0ZS0+YmFzZTsKPiAgCXVpbnQzMl90IGxhdGVuY3kgPSBkZXZfcHJpdi0+ d20uc2tsX2xhdGVuY3lbbGV2ZWxdOwo+IEBAIC00NTI4LDYgKzQ1MDAsOCBAQCBzdGF0aWMgaW50 IHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiAgCWlmIChhcHBseV9tZW1vcnlfYndfd2EgJiYgd3AtPnhfdGlsZWQpCj4gIAkJbGF0 ZW5jeSArPSAxNTsKPiAgCj4gKwkqc2FndiA9IGludGVsX2Nhbl9lbmFibGVfc2FndihzdGF0ZSwg bGF0ZW5jeSk7Cj4gKwo+ICAJbWV0aG9kMSA9IHNrbF93bV9tZXRob2QxKGRldl9wcml2LCB3cC0+ cGxhbmVfcGl4ZWxfcmF0ZSwKPiAgCQkJCSB3cC0+Y3BwLCBsYXRlbmN5LCB3cC0+ZGJ1Zl9ibG9j a19zaXplKTsKPiAgCW1ldGhvZDIgPSBza2xfd21fbWV0aG9kMih3cC0+cGxhbmVfcGl4ZWxfcmF0 ZSwKPiBAQCAtNDYyOSw3ICs0NjAzLDggQEAgc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGNvbnN0IHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkgICAgICBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqaW50ZWxfcHN0YXRlLAo+ICAJCSAgICAgIGNvbnN0IHN0cnVjdCBza2xfd21fcGFyYW1z ICp3bV9wYXJhbXMsCj4gLQkJICAgICAgc3RydWN0IHNrbF9wbGFuZV93bSAqd20pCj4gKwkJICAg ICAgc3RydWN0IHNrbF9wbGFuZV93bSAqd20sCj4gKwkJICAgICAgYm9vbCAqc2FndikKPiAgewo+ ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNzdGF0ZS0+ YmFzZS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gaW50ZWxfcHN0YXRlLT5i YXNlLnBsYW5lOwo+IEBAIC00NjU1LDcgKzQ2MzAsOCBAQCBza2xfY29tcHV0ZV93bV9sZXZlbHMo Y29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJCSAgIHdtX3Bh cmFtcywKPiAgCQkJCQkgICAmcmVzdWx0LT5wbGFuZV9yZXNfYiwKPiAgCQkJCQkgICAmcmVzdWx0 LT5wbGFuZV9yZXNfbCwKPiAtCQkJCQkgICAmcmVzdWx0LT5wbGFuZV9lbik7Cj4gKwkJCQkJICAg JnJlc3VsdC0+cGxhbmVfZW4sCj4gKwkJCQkJICAgc2Fndik7Cj4gIAkJaWYgKHJldCkKPiAgCQkJ cmV0dXJuIHJldDsKPiAgCX0KPiBAQCAtNDc0Myw3ICs0NzE5LDggQEAgc3RhdGljIHZvaWQgc2ts X2NvbXB1dGVfdHJhbnNpdGlvbl93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ ICAKPiAgc3RhdGljIGludCBza2xfYnVpbGRfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3N0YXRlLAo+ICAJCQkgICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiwKPiAt CQkJICAgICBzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20pCj4gKwkJCSAgICAgc3RydWN0IHNr bF9waXBlX3dtICpwaXBlX3dtLAo+ICsJCQkgICAgIGJvb2wgKnNhZ3YpCj4gIHsKPiAgCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2Owo+ICAJc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gJmNzdGF0ZS0+YmFzZTsKPiBAQCAtNDc3Nyw3ICs0 NzU0LDcgQEAgc3RhdGljIGludCBza2xfYnVpbGRfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3N0YXRlLAo+ICAJCQlyZXR1cm4gcmV0Owo+ICAKPiAgCQlyZXQgPSBza2xfY29tcHV0 ZV93bV9sZXZlbHMoZGV2X3ByaXYsIGRkYiwgY3N0YXRlLAo+IC0JCQkJCSAgICBpbnRlbF9wc3Rh dGUsICZ3bV9wYXJhbXMsIHdtKTsKPiArCQkJCQkgICAgaW50ZWxfcHN0YXRlLCAmd21fcGFyYW1z LCB3bSwgc2Fndik7Cj4gIAkJaWYgKHJldCkKPiAgCQkJcmV0dXJuIHJldDsKPiAgCQlza2xfY29t cHV0ZV90cmFuc2l0aW9uX3dtKGNzdGF0ZSwgJndtX3BhcmFtcywgJndtLT53bVswXSwKPiBAQCAt NDg5OSwxMiArNDg3NiwxMyBAQCBzdGF0aWMgaW50IHNrbF91cGRhdGVfcGlwZV93bShzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiAgCQkJICAgICAgY29uc3Qgc3RydWN0IHNrbF9waXBl X3dtICpvbGRfcGlwZV93bSwKPiAgCQkJICAgICAgc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dt LCAvKiBvdXQgKi8KPiAgCQkJICAgICAgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiLCAv KiBvdXQgKi8KPiAtCQkJICAgICAgYm9vbCAqY2hhbmdlZCAvKiBvdXQgKi8pCj4gKwkJCSAgICAg IGJvb2wgKmNoYW5nZWQgLyogb3V0ICovLAo+ICsJCQkgICAgICBib29sICpzYWd2IC8qIG91dCAq LykKPiAgewo+ICAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NzdGF0ZSA9IHRvX2lu dGVsX2NydGNfc3RhdGUoY3N0YXRlKTsKPiAgCWludCByZXQ7Cj4gIAo+IC0JcmV0ID0gc2tsX2J1 aWxkX3BpcGVfd20oaW50ZWxfY3N0YXRlLCBkZGIsIHBpcGVfd20pOwo+ICsJcmV0ID0gc2tsX2J1 aWxkX3BpcGVfd20oaW50ZWxfY3N0YXRlLCBkZGIsIHBpcGVfd20sIHNhZ3YpOwo+ICAJaWYgKHJl dCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiBAQCAtNTA5OSw2ICs1MDc3LDcgQEAgc2tsX2NvbXB1 dGVfd20oc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IHN0YXRlLT5kZXY7Cj4gIAlzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd207Cj4g IAlib29sIGNoYW5nZWQgPSBmYWxzZTsKPiArCWJvb2wgc2FndiA9IHRydWU7Cj4gIAlpbnQgcmV0 LCBpOwo+ICAKPiAgCS8qCj4gQEAgLTUxNDcsNyArNTEyNiw3IEBAIHNrbF9jb21wdXRlX3dtKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCj4gIAkJcGlwZV93bSA9ICZpbnRlbF9j c3RhdGUtPndtLnNrbC5vcHRpbWFsOwo+ICAJCXJldCA9IHNrbF91cGRhdGVfcGlwZV93bShjc3Rh dGUsIG9sZF9waXBlX3dtLCBwaXBlX3dtLAo+IC0JCQkJCSAmcmVzdWx0cy0+ZGRiLCAmY2hhbmdl ZCk7Cj4gKwkJCQkJICZyZXN1bHRzLT5kZGIsICZjaGFuZ2VkLCAmc2Fndik7Cj4gIAkJaWYgKHJl dCkKPiAgCQkJcmV0dXJuIHJldDsKPiAgCj4gQEAgLTUxNTksNiArNTEzOCw3IEBAIHNrbF9jb21w dXRlX3dtKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCQkJY29udGludWU7Cj4g IAo+ICAJCWludGVsX2NzdGF0ZS0+dXBkYXRlX3dtX3ByZSA9IHRydWU7Cj4gKwkJaW50ZWxfY3N0 YXRlLT5zYWd2ICY9IHNhZ3Y7Cj4gIAl9Cj4gIAo+ICAJc2tsX3ByaW50X3dtX2NoYW5nZXMoc3Rh dGUpOwo+IC0tIAo+IDIuMTMuNgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==