From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/5] drm/i915: Always pin the fence for scanout on gen2/3 and primary planes Date: Fri, 17 Nov 2017 15:21:35 +0200 Message-ID: <20171117132135.GI10981@intel.com> References: <20171116191451.28823-1-ville.syrjala@linux.intel.com> <20171116204923.umwm27l4r2kcldqe@intel.com> 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 C571B6EA3E for ; Fri, 17 Nov 2017 13:21:39 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20171116204923.umwm27l4r2kcldqe@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, "Pandiyan, Dhinakaran" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMTYsIDIwMTcgYXQgMTI6NDk6MjNQTSAtMDgwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IE9uIFRodSwgTm92IDE2LCAyMDE3IGF0IDA3OjE0OjQ3UE0gKzAwMDAsIFZpbGxlIFN5 cmphbGEgd3JvdGU6Cj4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgo+ID4gCj4gPiBUaGUgY3VycmVudCBjb2RlIGlzIHRyeWluZyB0byBiZSBs YXp5IHdpdGggZmVuY2VzIG9uIHNjYW5vdXQgYnVmZmVycy4KPiA+IFRoYXQgbG9va3MgYnJva2Vu IGZvciBzZXZlcmFsIHJlYXNvbnM6Cj4gPiAqIGdlbjIvMyBhbHdheXMgbmVlZCBhIGZlbmNlIGZv ciB0aWxlZCBzY2Fub3V0Cj4gPiAqIHRoZSB1bnBpbiBkb2Vzbid0IGtub3cgd2hldGhlciB3ZSBw aW5uZWQgdGhlIGZlbmNlIG9yIG5vdCBzbyBpdAo+ID4gICBtYXkgdW5waW4gc29tZXRoaW5nIHdl IGRvbid0IG93bgo+ID4gKiBGQkMgR1RUIHRyYWNraW5nIG5lZWRzIGEgZmVuY2UgKG5vdCBzdXJl IHdlIGhhdmUgcHJvcGVyIGZhbGxiYWNrCj4gPiAgIGZvciB3aGVuIHRoZXJlIGlzIG5vIGZlbmNl KQo+IAo+IE9oaCEgSSB3b25kZXIgaWYgdGhpcyB3b3VsZCBhbHNvIHNvbHZlIGZldyBvZiBvbGQg UFNSIGNhc2VzLi4uIFBTUiByZS11c2VzCj4gRkJDIEdUVCB0cmFja2luZy4uLgoKVGhhdCB3aG9s ZSBjb25jZXB0IHNlZW1zIGEgYml0IGJyb2tlbi4gQUZBSUNTIHdlIGhhdmUgbm8gImlzIEZCQyBl bmFibGVkCm9uIHRoZSBhcHByb3ByaWF0ZSBwbGFuZT8iIGNoZWNrcyBpbiB0aGUgUFNSIGNvZGUu IEknbSBub3QgcXVpdGUgc3VyZQpob3cgaXQgd291bGQgaGFuZGxlIG11bHRpcGxlIHBsYW5lcyBl aXRoZXIuIEkgZ3Vlc3Mgd2Ugc2hvdWxkIGJlCmRpc2FibGluZyBQU1Igd2hlbiBtdWx0aXBsZSBw bGFuZXMgYXJlIGVuYWJsZWQ/Cgo+IAo+IEFuZCAiZmFsbGJhY2siIGZvciBib3RoIGlzIHRoZSBm cm9udGJ1ZmZlcl90cmFja2luZwoKSSdtIG5vdCBzdXJlIGhvdyBmcm9uYnVmZmVyIHRyYWNraW5n IGhhbmRsZXMgR1RUIG1tYXBzLiBJIHRob3VnaHQgaXQKZGlkbid0IGV2ZW4gdHJ5LiBJZiBJJ20g bWlzdGFrZW4gdGhlbiBJJ20gdGhpbmtpbmcgd2Ugc2hvdWxkIHBlcmhhcHMKZXZlbiBzdG9wIHVz aW5nIHRoZSBHVFQgdHJhY2tpbmcgZW50aXJlbHkganVzdCB0byBtYWtlIHRoZSB3aG9sZSB0aGlu Zwptb3JlIGNvbnNpc3RlbnQuIEhhdmluZyB0d28gd2F5cyB0byBkbyB0aGUgc2FtZSB0aGluZyBk b2Vzbid0IGFwcGVhbCB0bwptZS4KCj4gCj4gPiAKPiA+IFNvIHRvIGZpeCB0aGlzIGFsd2F5cyB1 c2UgYSBmZW5jZSBmb3IgZ2VuMi8zLCBhbmQgZm9yIHByaW1hcnkgcGxhbmVzIG9uCj4gPiBvdGhl ciBwbGF0Zm9ybXMgKGZvciBGQkMpLiBGb3Igc3ByaXRlcyBhbmQgY3Vyc29yIHdlIG5ldmVyIG5l ZWQgYSBmZW5jZQo+ID4gc28gZG9uJ3QgZXZlbiB0cnkgdG8gZ2V0IG9uZS4gIFNpbmNlIHdlIG5v dyBrbm93IHdoZXRoZXIgYSBmZW5jZSB3YXMKPiA+IHBpbm5lZCB3ZSBjYW4gc2FmZWx5IHVucGlu IGl0IHRvby4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggICAgICB8ICAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyAgICAgIHwgIDQgKy0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgNTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4gPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDcgKysrLS0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jICAgfCAxNyArKysrKysrKystLQo+ID4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYyB8ICAyICstCj4gPiAgNiBmaWxlcyBjaGFuZ2Vk LCA2NiBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gPiBpbmRleCAyMTU4YTc1OGExN2QuLjhjNmQwYjdhYzlhNSAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IEBAIC0zNzgzLDcgKzM3ODMsNyBAQCBpbnQgX19t dXN0X2NoZWNrCj4gPiAgaTkxNV9nZW1fb2JqZWN0X3NldF90b19jcHVfZG9tYWluKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIGJvb2wgd3JpdGUpOwo+ID4gIHN0cnVjdCBpOTE1X3Zt YSAqIF9fbXVzdF9jaGVjawo+ID4gIGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlzcGxheV9wbGFu ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ID4gLQkJCQkgICAgIHUzMiBhbGln bm1lbnQsCj4gPiArCQkJCSAgICAgdTMyIGFsaWdubWVudCwgYm9vbCBuZWVkc19mZW5jZSwKPiA+ ICAJCQkJICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcpOwo+ID4gIHZvaWQg aTkxNV9nZW1fb2JqZWN0X3VucGluX2Zyb21fZGlzcGxheV9wbGFuZShzdHJ1Y3QgaTkxNV92bWEg KnZtYSk7Cj4gPiAgaW50IGk5MTVfZ2VtX29iamVjdF9hdHRhY2hfcGh5cyhzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gPiBpbmRleCA2 MWJhMzIxZTk5NzAuLmFmMTgxNjhlNDhlMyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKPiA+IEBAIC0zOTQ0LDcgKzM5NDQsNyBAQCBpbnQgaTkxNV9nZW1fc2V0X2NhY2hpbmdfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiA+ICAgKi8KPiA+ICBzdHJ1 Y3QgaTkxNV92bWEgKgo+ID4gIGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlzcGxheV9wbGFuZShz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ID4gLQkJCQkgICAgIHUzMiBhbGlnbm1l bnQsCj4gPiArCQkJCSAgICAgdTMyIGFsaWdubWVudCwgYm9vbCBuZWVkc19mZW5jZSwKPiA+ICAJ CQkJICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcpCj4gPiAgewo+ID4gIAlz dHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiA+IEBAIC0zOTk3LDcgKzM5OTcsNyBAQCBpOTE1X2dlbV9v YmplY3RfcGluX3RvX2Rpc3BsYXlfcGxhbmUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKPiA+ICAJCSAqIGhhcHB5IHRvIHNjYW5vdXQgZnJvbSBhbnl3aGVyZSB3aXRoaW4gaXRzIGds b2JhbCBhcGVydHVyZS4KPiA+ICAJCSAqLwo+ID4gIAkJZmxhZ3MgPSAwOwo+ID4gLQkJaWYgKEhB U19HTUNIX0RJU1BMQVkoaTkxNSkpCj4gPiArCQlpZiAoSEFTX0dNQ0hfRElTUExBWShpOTE1KSB8 fCBuZWVkc19mZW5jZSkKPiA+ICAJCQlmbGFncyA9IFBJTl9NQVBQQUJMRTsKPiA+ICAJCXZtYSA9 IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihvYmosIHZpZXcsIDAsIGFsaWdubWVudCwgZmxhZ3Mp Owo+ID4gIAl9Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBpbmRleCBl NmZjYmM1YWJjNzUuLjA2NTdlMDNlODcxYSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gPiBAQCAtMjE1NCw4ICsyMTU0LDIxIEBAIHN0YXRpYyB1bnNpZ25lZCBp bnQgaW50ZWxfc3VyZl9hbGlnbm1lbnQoY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIs Cj4gPiAgCX0KPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIGJvb2wgaW50ZWxfcGxhbmVfbmVlZHNf ZmVuY2UoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiA+ICt7 Cj4gPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9z dGF0ZS0+YmFzZS5wbGFuZSk7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihwbGFuZV9zdGF0ZS0+YmFzZS5mYik7Cj4gPiArCj4g PiArCWlmIChpOTE1X2dlbV9vYmplY3RfZ2V0X3RpbGluZyhvYmopID09IEk5MTVfVElMSU5HX05P TkUpCj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiArCj4gPiArCXJldHVybiBJTlRFTF9HRU4oZGV2 X3ByaXYpIDwgNCB8fCBwbGFuZS0+aWQgPT0gUExBTkVfUFJJTUFSWTsKPiA+ICt9Cj4gPiArCj4g PiAgc3RydWN0IGk5MTVfdm1hICoKPiA+IC1pbnRlbF9waW5fYW5kX2ZlbmNlX2ZiX29iaihzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgdW5zaWduZWQgaW50IHJvdGF0aW9uKQo+ID4gK2ludGVs X3Bpbl9hbmRfZmVuY2VfZmJfb2JqKGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ ID4gKwkJCSAgIHVuc2lnbmVkIGludCByb3RhdGlvbiwgYm9vbCBuZWVkc19mZW5jZSkKPiA+ICB7 Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYi0+ZGV2Owo+ID4gIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiBAQCAtMjE4OSwxMSAr MjIwMiwxNiBAQCBpbnRlbF9waW5fYW5kX2ZlbmNlX2ZiX29iaihzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiwgdW5zaWduZWQgaW50IHJvdGF0aW9uKQo+ID4gIAo+ID4gIAlhdG9taWNfaW5jKCZk ZXZfcHJpdi0+Z3B1X2Vycm9yLnBlbmRpbmdfZmJfcGluKTsKPiA+ICAKPiA+IC0Jdm1hID0gaTkx NV9nZW1fb2JqZWN0X3Bpbl90b19kaXNwbGF5X3BsYW5lKG9iaiwgYWxpZ25tZW50LCAmdmlldyk7 Cj4gPiArCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlzcGxheV9wbGFuZShvYmosIGFs aWdubWVudCwKPiA+ICsJCQkJCQkgICBuZWVkc19mZW5jZSwgJnZpZXcpOwo+ID4gIAlpZiAoSVNf RVJSKHZtYSkpCj4gPiAgCQlnb3RvIGVycjsKPiA+ICAKPiA+IC0JaWYgKGk5MTVfdm1hX2lzX21h cF9hbmRfZmVuY2VhYmxlKHZtYSkpIHsKPiA+ICsJaWYgKG5lZWRzX2ZlbmNlKSB7Cj4gPiArCQlp bnQgcmV0Owo+ID4gKwo+ID4gKwkJV0FSTl9PTighaTkxNV92bWFfaXNfbWFwX2FuZF9mZW5jZWFi bGUodm1hKSk7Cj4gPiArCj4gPiAgCQkvKiBJbnN0YWxsIGEgZmVuY2UgZm9yIHRpbGVkIHNjYW4t b3V0LiBQcmUtaTk2NSBhbHdheXMgbmVlZHMgYQo+ID4gIAkJICogZmVuY2UsIHdoZXJlYXMgOTY1 KyBvbmx5IHJlcXVpcmVzIGEgZmVuY2UgaWYgdXNpbmcKPiA+ICAJCSAqIGZyYW1lYnVmZmVyIGNv bXByZXNzaW9uLiAgRm9yIHNpbXBsaWNpdHksIHdlIGFsd2F5cywgd2hlbgo+ID4gQEAgLTIyMTAs NyArMjIyOCwxMSBAQCBpbnRlbF9waW5fYW5kX2ZlbmNlX2ZiX29iaihzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiwgdW5zaWduZWQgaW50IHJvdGF0aW9uKQo+ID4gIAkJICogc29tZXRoaW5nIGFu ZCB0cnkgdG8gcnVuIHRoZSBzeXN0ZW0gaW4gYSAibGVzcyB0aGFuIG9wdGltYWwiCj4gPiAgCQkg KiBtb2RlIHRoYXQgbWF0Y2hlcyB0aGUgdXNlciBjb25maWd1cmF0aW9uLgo+ID4gIAkJICovCj4g PiAtCQlpOTE1X3ZtYV9waW5fZmVuY2Uodm1hKTsKPiA+ICsJCXJldCA9IGk5MTVfdm1hX3Bpbl9m ZW5jZSh2bWEpOwo+ID4gKwkJaWYgKHJldCkgewo+ID4gKwkJCXZtYSA9IEVSUl9QVFIocmV0KTsK PiA+ICsJCQlnb3RvIGVycjsKPiA+ICsJCX0KPiA+ICAJfQo+ID4gIAo+ID4gIAlpOTE1X3ZtYV9n ZXQodm1hKTsKPiA+IEBAIC0yMjIxLDExICsyMjQzLDEyIEBAIGludGVsX3Bpbl9hbmRfZmVuY2Vf ZmJfb2JqKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCB1bnNpZ25lZCBpbnQgcm90YXRpb24p Cj4gPiAgCXJldHVybiB2bWE7Cj4gPiAgfQo+ID4gIAo+ID4gLXZvaWQgaW50ZWxfdW5waW5fZmJf dm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ID4gK3ZvaWQgaW50ZWxfdW5waW5fZmJfdm1hKHN0 cnVjdCBpOTE1X3ZtYSAqdm1hLCBib29sIG5lZWRzX2ZlbmNlKQo+ID4gIHsKPiA+ICAJbG9ja2Rl cF9hc3NlcnRfaGVsZCgmdm1hLT52bS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gPiAgCj4g PiAtCWk5MTVfdm1hX3VucGluX2ZlbmNlKHZtYSk7Cj4gPiArCWlmIChuZWVkc19mZW5jZSkKPiA+ ICsJCWk5MTVfdm1hX3VucGluX2ZlbmNlKHZtYSk7Cj4gPiAgCWk5MTVfZ2VtX29iamVjdF91bnBp bl9mcm9tX2Rpc3BsYXlfcGxhbmUodm1hKTsKPiA+ICAJaTkxNV92bWFfcHV0KHZtYSk7Cj4gPiAg fQo+ID4gQEAgLTI4MTYsNiArMjgzOSw3IEBAIGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmoo c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gPiAgCXN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqaW50ZWxfc3RhdGUgPQo+ID4gIAkJdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3Rh dGUpOwo+ID4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKPiA+ICsJYm9vbCBuZWVkc19m ZW5jZTsKPiA+ICAKPiA+ICAJaWYgKCFwbGFuZV9jb25maWctPmZiKQo+ID4gIAkJcmV0dXJuOwo+ ID4gQEAgLTI4NjksOCArMjg5MywxMCBAQCBpbnRlbF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKHN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ID4gIAo+ID4gIHZhbGlkX2ZiOgo+ID4gIAlt dXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gPiArCW5lZWRzX2ZlbmNlID0gaW50ZWxf cGxhbmVfbmVlZHNfZmVuY2UoaW50ZWxfc3RhdGUpOwo+ID4gIAlpbnRlbF9zdGF0ZS0+dm1hID0K PiA+IC0JCWludGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2JqKGZiLCBwcmltYXJ5LT5zdGF0ZS0+cm90 YXRpb24pOwo+ID4gKwkJaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooZmIsIHByaW1hcnktPnN0 YXRlLT5yb3RhdGlvbiwKPiA+ICsJCQkJCSAgIG5lZWRzX2ZlbmNlKTsKPiA+ICAJbXV0ZXhfdW5s b2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gPiAgCWlmIChJU19FUlIoaW50ZWxfc3RhdGUtPnZt YSkpIHsKPiA+ICAJCURSTV9FUlJPUigiZmFpbGVkIHRvIHBpbiBib290IGZiIG9uIHBpcGUgJWQ6 ICVsaVxuIiwKPiA+IEBAIC0xMjc1Myw5ICsxMjc3OSwxMiBAQCBpbnRlbF9wcmVwYXJlX3BsYW5l X2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gIAo+ID4gIAkJcmV0ID0gaTkxNV9nZW1f b2JqZWN0X2F0dGFjaF9waHlzKG9iaiwgYWxpZ24pOwo+ID4gIAl9IGVsc2Ugewo+ID4gKwkJYm9v bCBuZWVkc19mZW5jZSA9Cj4gPiArCQkJaW50ZWxfcGxhbmVfbmVlZHNfZmVuY2UodG9faW50ZWxf cGxhbmVfc3RhdGUobmV3X3N0YXRlKSk7Cj4gPiAgCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiA+ ICAKPiA+IC0JCXZtYSA9IGludGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2JqKGZiLCBuZXdfc3RhdGUt PnJvdGF0aW9uKTsKPiA+ICsJCXZtYSA9IGludGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2JqKGZiLCBu ZXdfc3RhdGUtPnJvdGF0aW9uLAo+ID4gKwkJCQkJCSBuZWVkc19mZW5jZSk7Cj4gPiAgCQlpZiAo IUlTX0VSUih2bWEpKQo+ID4gIAkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKG5ld19zdGF0ZSktPnZt YSA9IHZtYTsKPiA+ICAJCWVsc2UKPiA+IEBAIC0xMjgwOSw4ICsxMjgzOCwxMSBAQCBpbnRlbF9j bGVhbnVwX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gIAkvKiBTaG91bGQg b25seSBiZSBjYWxsZWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIGludGVsX3ByZXBhcmVfcGxhbmVfZmIo KSEgKi8KPiA+ICAJdm1hID0gZmV0Y2hfYW5kX3plcm8oJnRvX2ludGVsX3BsYW5lX3N0YXRlKG9s ZF9zdGF0ZSktPnZtYSk7Cj4gPiAgCWlmICh2bWEpIHsKPiA+ICsJCWJvb2wgbmVlZHNfZmVuY2Ug PQo+ID4gKwkJCWludGVsX3BsYW5lX25lZWRzX2ZlbmNlKHRvX2ludGVsX3BsYW5lX3N0YXRlKG9s ZF9zdGF0ZSkpOwo+ID4gKwo+ID4gIAkJbXV0ZXhfbG9jaygmcGxhbmUtPmRldi0+c3RydWN0X211 dGV4KTsKPiA+IC0JCWludGVsX3VucGluX2ZiX3ZtYSh2bWEpOwo+ID4gKwkJaW50ZWxfdW5waW5f ZmJfdm1hKHZtYSwgbmVlZHNfZmVuY2UpOwo+ID4gIAkJbXV0ZXhfdW5sb2NrKCZwbGFuZS0+ZGV2 LT5zdHJ1Y3RfbXV0ZXgpOwo+ID4gIAl9Cj4gPiAgfQo+ID4gQEAgLTEzMTUyLDcgKzEzMTg0LDgg QEAgaW50ZWxfbGVnYWN5X2N1cnNvcl91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4g PiAgCQkJZ290byBvdXRfdW5sb2NrOwo+ID4gIAkJfQo+ID4gIAl9IGVsc2Ugewo+ID4gLQkJdm1h ID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooZmIsIG5ld19wbGFuZV9zdGF0ZS0+cm90YXRp b24pOwo+ID4gKwkJdm1hID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooZmIsIG5ld19wbGFu ZV9zdGF0ZS0+cm90YXRpb24sCj4gPiArCQkJCQkJIGZhbHNlKTsKPiA+ICAJCWlmIChJU19FUlIo dm1hKSkgewo+ID4gIAkJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBwaW4gb2JqZWN0XG4iKTsK PiA+ICAKPiA+IEBAIC0xMzE4Myw3ICsxMzIxNiw3IEBAIGludGVsX2xlZ2FjeV9jdXJzb3JfdXBk YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gIAo+ID4gIAlvbGRfdm1hID0gZmV0Y2hf YW5kX3plcm8oJnRvX2ludGVsX3BsYW5lX3N0YXRlKG9sZF9wbGFuZV9zdGF0ZSktPnZtYSk7Cj4g PiAgCWlmIChvbGRfdm1hKQo+ID4gLQkJaW50ZWxfdW5waW5fZmJfdm1hKG9sZF92bWEpOwo+ID4g KwkJaW50ZWxfdW5waW5fZmJfdm1hKG9sZF92bWEsIGZhbHNlKTsKPiA+ICAKPiA+ICBvdXRfdW5s b2NrOgo+ID4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCBlOWI2NmUwY2I2NDcuLmMxM2YxNWVm MzQyYiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTkwNSw3ICs5 MDUsNyBAQCBzdHJ1Y3QgY3hzcl9sYXRlbmN5IHsKPiA+ICAjZGVmaW5lIHRvX2ludGVsX2ZyYW1l YnVmZmVyKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIsIGJhc2Up Cj4gPiAgI2RlZmluZSB0b19pbnRlbF9wbGFuZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGlu dGVsX3BsYW5lLCBiYXNlKQo+ID4gICNkZWZpbmUgdG9faW50ZWxfcGxhbmVfc3RhdGUoeCkgY29u dGFpbmVyX29mKHgsIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSwgYmFzZSkKPiA+IC0jZGVmaW5l IGludGVsX2ZiX29iaih4KSAoeCA/IHRvX2ludGVsX2ZyYW1lYnVmZmVyKHgpLT5vYmogOiBOVUxM KQo+ID4gKyNkZWZpbmUgaW50ZWxfZmJfb2JqKHgpICgoeCkgPyB0b19pbnRlbF9mcmFtZWJ1ZmZl cih4KS0+b2JqIDogTlVMTCkKPiA+ICAKPiA+ICBzdHJ1Y3QgaW50ZWxfaGRtaSB7Cj4gPiAgCWk5 MTVfcmVnX3QgaGRtaV9yZWc7Cj4gPiBAQCAtMTQyMyw4ICsxNDIzLDkgQEAgdm9pZCBpbnRlbF9y ZWxlYXNlX2xvYWRfZGV0ZWN0X3BpcGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK PiA+ICAJCQkJICAgIHN0cnVjdCBpbnRlbF9sb2FkX2RldGVjdF9waXBlICpvbGQsCj4gPiAgCQkJ CSAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7Cj4gPiAgc3RydWN0IGk5 MTVfdm1hICoKPiA+IC1pbnRlbF9waW5fYW5kX2ZlbmNlX2ZiX29iaihzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiwgdW5zaWduZWQgaW50IHJvdGF0aW9uKTsKPiA+IC12b2lkIGludGVsX3VucGlu X2ZiX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7Cj4gPiAraW50ZWxfcGluX2FuZF9mZW5jZV9m Yl9vYmooY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gPiArCQkJICAgdW5zaWdu ZWQgaW50IHJvdGF0aW9uLCBib29sIG5lZWRzX2ZlbmNlKTsKPiA+ICt2b2lkIGludGVsX3VucGlu X2ZiX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgYm9vbCBuZWVkc19mZW5jZSk7Cj4gPiAgc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqCj4gPiAgaW50ZWxfZnJhbWVidWZmZXJfY3JlYXRlKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gPiAgCQkJIHN0cnVjdCBkcm1fbW9kZV9mYl9j bWQyICptb2RlX2NtZCk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKPiA+IGluZGV4 IGI4YWYzNTE4N2QyMi4uNGNiYzdmZGU1ZTMwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZmJkZXYuYwo+ID4gQEAgLTE2NSw2ICsxNjUsMTMgQEAgc3RhdGljIGludCBpbnRlbGZiX2Fs bG9jKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gPiAgCXJldHVybiByZXQ7Cj4gPiAg fQo+ID4gIAo+ID4gK3N0YXRpYyBib29sIGludGVsX2ZiZGV2X25lZWRzX2ZlbmNlKHN0cnVjdCBp bnRlbF9mYmRldiAqaWZiZGV2KQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiA9IGlmYmRldi0+ZmItPm9iajsKPiA+ICsKPiA+ICsJcmV0dXJuIGk5MTVfZ2VtX29i amVjdF9nZXRfdGlsaW5nKG9iaikgIT0gSTkxNV9USUxJTkdfTk9ORTsKPiA+ICt9Cj4gPiArCj4g PiAgc3RhdGljIGludCBpbnRlbGZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVy LAo+ID4gIAkJCSAgc3RydWN0IGRybV9mYl9oZWxwZXJfc3VyZmFjZV9zaXplICpzaXplcykKPiA+ ICB7Cj4gPiBAQCAtMTgwLDYgKzE4Nyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxmYl9jcmVhdGUoc3Ry dWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKPiA+ICAJc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4g PiAgCWJvb2wgcHJlYWxsb2MgPSBmYWxzZTsKPiA+ICAJdm9pZCBfX2lvbWVtICp2YWRkcjsKPiA+ ICsJYm9vbCBuZWVkc19mZW5jZTsKPiA+ICAJaW50IHJldDsKPiA+ICAKPiA+ICAJaWYgKGludGVs X2ZiICYmCj4gPiBAQCAtMjEyLDcgKzIyMCw5IEBAIHN0YXRpYyBpbnQgaW50ZWxmYl9jcmVhdGUo c3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKPiA+ICAJICogVGhpcyBhbHNvIHZhbGlkYXRl cyB0aGF0IGFueSBleGlzdGluZyBmYiBpbmhlcml0ZWQgZnJvbSB0aGUKPiA+ICAJICogQklPUyBp cyBzdWl0YWJsZSBmb3Igb3duIGFjY2Vzcy4KPiA+ICAJICovCj4gPiAtCXZtYSA9IGludGVsX3Bp bl9hbmRfZmVuY2VfZmJfb2JqKCZpZmJkZXYtPmZiLT5iYXNlLCBEUk1fTU9ERV9ST1RBVEVfMCk7 Cj4gPiArCW5lZWRzX2ZlbmNlID0gaW50ZWxfZmJkZXZfbmVlZHNfZmVuY2UoaWZiZGV2KTsKPiA+ ICsJdm1hID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooJmlmYmRldi0+ZmItPmJhc2UsCj4g PiArCQkJCQkgRFJNX01PREVfUk9UQVRFXzAsIG5lZWRzX2ZlbmNlKTsKPiA+ICAJaWYgKElTX0VS Uih2bWEpKSB7Cj4gPiAgCQlyZXQgPSBQVFJfRVJSKHZtYSk7Cj4gPiAgCQlnb3RvIG91dF91bmxv Y2s7Cj4gPiBAQCAtMjc2LDcgKzI4Niw3IEBAIHN0YXRpYyBpbnQgaW50ZWxmYl9jcmVhdGUoc3Ry dWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKPiA+ICAJcmV0dXJuIDA7Cj4gPiAgCj4gPiAgb3V0 X3VucGluOgo+ID4gLQlpbnRlbF91bnBpbl9mYl92bWEodm1hKTsKPiA+ICsJaW50ZWxfdW5waW5f ZmJfdm1hKHZtYSwgbmVlZHNfZmVuY2UpOwo+ID4gIG91dF91bmxvY2s6Cj4gPiAgCWludGVsX3J1 bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKPiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9t dXRleCk7Cj4gPiBAQCAtNTE0LDcgKzUyNCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2ZiZGV2X2Rl c3Ryb3koc3RydWN0IGludGVsX2ZiZGV2ICppZmJkZXYpCj4gPiAgCj4gPiAgCWlmIChpZmJkZXYt PnZtYSkgewo+ID4gIAkJbXV0ZXhfbG9jaygmaWZiZGV2LT5oZWxwZXIuZGV2LT5zdHJ1Y3RfbXV0 ZXgpOwo+ID4gLQkJaW50ZWxfdW5waW5fZmJfdm1hKGlmYmRldi0+dm1hKTsKPiA+ICsJCWludGVs X3VucGluX2ZiX3ZtYShpZmJkZXYtPnZtYSwKPiA+ICsJCQkJICAgaW50ZWxfZmJkZXZfbmVlZHNf ZmVuY2UoaWZiZGV2KSk7Cj4gPiAgCQltdXRleF91bmxvY2soJmlmYmRldi0+aGVscGVyLmRldi0+ c3RydWN0X211dGV4KTsKPiA+ICAJfQo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292 ZXJsYXkuYwo+ID4gaW5kZXggMWIzOTdiNDFjYjRmLi4yYjU0NTI2ZmJmM2MgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwo+ID4gQEAgLTgwMSw3ICs4MDEsNyBAQCBz dGF0aWMgaW50IGludGVsX292ZXJsYXlfZG9fcHV0X2ltYWdlKHN0cnVjdCBpbnRlbF9vdmVybGF5 ICpvdmVybGF5LAo+ID4gIAo+ID4gIAlhdG9taWNfaW5jKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLnBl bmRpbmdfZmJfcGluKTsKPiA+ICAKPiA+IC0Jdm1hID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl90b19k aXNwbGF5X3BsYW5lKG5ld19ibywgMCwgTlVMTCk7Cj4gPiArCXZtYSA9IGk5MTVfZ2VtX29iamVj dF9waW5fdG9fZGlzcGxheV9wbGFuZShuZXdfYm8sIDAsIGZhbHNlLCBOVUxMKTsKPiA+ICAJaWYg KElTX0VSUih2bWEpKSB7Cj4gPiAgCQlyZXQgPSBQVFJfRVJSKHZtYSk7Cj4gPiAgCQlnb3RvIG91 dF9waW5fc2VjdGlvbjsKPiA+IC0tIAo+ID4gMi4xMy42Cj4gPiAKPiA+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBs aXN0Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gClZpbGxlIFN5 cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==