From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 1/6] drm/i915: Add a new "remapped" gtt_view Date: Tue, 15 Jan 2019 15:43:41 +0200 Message-ID: <20190115134341.GI20097@intel.com> References: <20190111194704.23900-1-ville.syrjala@linux.intel.com> <20190111194704.23900-2-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2626E89823 for ; Tue, 15 Jan 2019 13:43:45 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKYW4gMTQsIDIwMTkgYXQgMDk6NTU6MTBBTSArMDAwMCwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4gCj4gT24gMTEvMDEvMjAxOSAxOTo0NiwgVmlsbGUgU3lyamFsYSB3cm90ZToKPiA+ IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4g PiAKPiA+IFRvIG92ZXJjb21lIGRpc3BsYXkgZW5naW5lIHN0cmlkZSBsaW1pdHMgd2UnbGwgd2Fu dCB0byByZW1hcCB0aGUKPiA+IHBhZ2VzIGluIHRoZSBHVFQuIFRvIHRoYXQgZW5kIHdlIG5lZWQg YSBuZXcgZ3R0X3ZpZXcgdHlwZSB3aGljaAo+ID4gaXMganVzdCBsaWtlIHRoZSAicm90YXRlZCIg dHlwZSBleGNlcHQgbm90IHJvdGF0ZWQuCj4gCj4gSSB0aGluayBJIGFza2VkIHRoaXMgYmVmb3Jl LCBzbyBzb3JyeSBpZiB5b3UgYWxzbyBhbnN3ZXJlZCBpdCAtIHdoYXQgCj4gYWJvdXQgcm90YXRl ZCBzZXR1cHMgd2hpY2ggZ28gb3ZlciBkaXNwbGF5IGVuZ2luZSBzdHJpZGUgbGltaXRzPwoKV2Ug YWxyZWFkeSBoYXZlIHRoZSBjb2RlIHRvIGRvIHRoZSByb3RhdGVkIG1hcHBpbmcuCgo+IAo+ID4g djI6IFVzZSBpbnRlbF9yZW1hcHBlZF9wbGFuZV9pbmZvIGJhc2UgdHlwZQo+ID4gICAgICBzL3Vu dXNlZC91bnVzZWRfbWJ6LyAoQ2hyaXMpCj4gPiAgICAgIFNlcGFyYXRlIEJVSUxEX0JVR19PTigp cyAoQ2hyaXMpCj4gPiAgICAgIFVzZSBJOTE1X0dUVF9QQUdFX1NJWkUgKENocmlzKQo+ID4gdjM6 IFVzZSBpOTE1X2dlbV9vYmplY3RfZ2V0X2RtYV9hZGRyZXNzKCkgKENocmlzKQo+ID4gICAgICBU cmltIHRoZSBzZyAoVHZydGtvKQo+ID4gdjQ6IEFjdHVhbGx5IHRyaW0gdGhpcyB0aW1lLiBMaW1p dCB0aGUgbWF4IGxlbmd0aAo+ID4gICAgICB0byBvbmUgcm93IG9mIHBhZ2VzIHRvIGtlZXAgdGhp bmdzIHNpbXBsZQo+ID4gCj4gPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24u Y28udWs+Cj4gPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4LmludGVs LmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgICAgICAgfCAxMiArKysrCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggICAgICAgICAgIHwgIDQgKysKPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyAgICAgICAgICAgfCAxNyArKysrLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYyAgICAgICB8IDg4ICsrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oICAgICAgIHwgMjUgKysrKystLQo+ID4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jICAgICAgICAgICB8ICA2ICstCj4gPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmggICAgICAgICAgIHwgIDMgKwo+ID4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICB8IDExICsrKwo+ID4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICB8ICAxICsKPiA+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfdm1hLmMgfCAgNiArLQo+ID4gICAxMCBmaWxl cyBjaGFuZ2VkLCAxNjMgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiBpbmRleCBkNDYwZWY1MjJkOWMuLmNhYjc3 NzE3OTlhZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gQEAg LTE5Niw2ICsxOTYsMTggQEAgZGVzY3JpYmVfb2JqKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiA+ICAgCQkJCQkgICB2bWEtPmdndHRfdmlldy5y b3RhdGVkLnBsYW5lWzFdLm9mZnNldCk7Cj4gPiAgIAkJCQlicmVhazsKPiA+ICAgCj4gPiArCQkJ Y2FzZSBJOTE1X0dHVFRfVklFV19SRU1BUFBFRDoKPiA+ICsJCQkJc2VxX3ByaW50ZihtLCAiLCBy ZW1hcHBlZCBbKCV1eCV1LCBzdHJpZGU9JXUsIG9mZnNldD0ldSksICgldXgldSwgc3RyaWRlPSV1 LCBvZmZzZXQ9JXUpXSIsCj4gPiArCQkJCQkgICB2bWEtPmdndHRfdmlldy5yZW1hcHBlZC5wbGFu ZVswXS53aWR0aCwKPiA+ICsJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBd LmhlaWdodCwKPiA+ICsJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBdLnN0 cmlkZSwKPiA+ICsJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBdLm9mZnNl dCwKPiA+ICsJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzFdLndpZHRoLAo+ ID4gKwkJCQkJICAgdm1hLT5nZ3R0X3ZpZXcucmVtYXBwZWQucGxhbmVbMV0uaGVpZ2h0LAo+ID4g KwkJCQkJICAgdm1hLT5nZ3R0X3ZpZXcucmVtYXBwZWQucGxhbmVbMV0uc3RyaWRlLAo+ID4gKwkJ CQkJICAgdm1hLT5nZ3R0X3ZpZXcucmVtYXBwZWQucGxhbmVbMV0ub2Zmc2V0KTsKPiA+ICsJCQkJ YnJlYWs7Cj4gPiArCj4gPiAgIAkJCWRlZmF1bHQ6Cj4gPiAgIAkJCQlNSVNTSU5HX0NBU0Uodm1h LT5nZ3R0X3ZpZXcudHlwZSk7Cj4gPiAgIAkJCQlicmVhazsKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+ID4gaW5kZXggNWRmMjZjY2RhOGE0Li5jZWY3NmNmMzQzYzQgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBAQCAtMjg0NSw2ICsyODQ1LDEwIEBAIGk5MTVfZ2VtX29i amVjdF9nZXRfZGlydHlfcGFnZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ID4g ICAJCQkgICAgICAgdW5zaWduZWQgaW50IG4pOwo+ID4gICAKPiA+ICAgZG1hX2FkZHJfdAo+ID4g K2k5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3NfbGVuKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmosCj4gPiArCQkJCSAgICB1bnNpZ25lZCBsb25nIG4sCj4gPiArCQkJCSAgICB1 bnNpZ25lZCBpbnQgKmxlbik7Cj4gPiArZG1hX2FkZHJfdAo+ID4gICBpOTE1X2dlbV9vYmplY3Rf Z2V0X2RtYV9hZGRyZXNzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gPiAgIAkJ CQl1bnNpZ25lZCBsb25nIG4pOwo+ID4gICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ID4g aW5kZXggZWE4NWRhMzkzNjYyLi5mNjVkODFmNGYzZDcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jCj4gPiBAQCAtNjA0MSwxNiArNjA0MSwyOSBAQCBpOTE1X2dlbV9vYmplY3RfZ2V0 X2RpcnR5X3BhZ2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiA+ICAgfQo+ID4g ICAKPiA+ICAgZG1hX2FkZHJfdAo+ID4gLWk5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3Mo c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiA+IC0JCQkJdW5zaWduZWQgbG9uZyBu KQo+ID4gK2k5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3NfbGVuKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmosCj4gPiArCQkJCSAgICB1bnNpZ25lZCBsb25nIG4sCj4gPiArCQkJ CSAgICB1bnNpZ25lZCBpbnQgKmxlbikKPiA+ICAgewo+ID4gICAJc3RydWN0IHNjYXR0ZXJsaXN0 ICpzZzsKPiA+ICAgCXVuc2lnbmVkIGludCBvZmZzZXQ7Cj4gPiAgIAo+ID4gICAJc2cgPSBpOTE1 X2dlbV9vYmplY3RfZ2V0X3NnKG9iaiwgbiwgJm9mZnNldCk7Cj4gPiArCj4gPiArCWlmIChsZW4p Cj4gPiArCQkqbGVuID0gc2dfZG1hX2xlbihzZykgLSAob2Zmc2V0IDw8IFBBR0VfU0hJRlQpOwo+ ID4gKwo+ID4gICAJcmV0dXJuIHNnX2RtYV9hZGRyZXNzKHNnKSArIChvZmZzZXQgPDwgUEFHRV9T SElGVCk7Cj4gPiAgIH0KPiA+ICAgCj4gPiArZG1hX2FkZHJfdAo+ID4gK2k5MTVfZ2VtX29iamVj dF9nZXRfZG1hX2FkZHJlc3Moc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiA+ICsJ CQkJdW5zaWduZWQgbG9uZyBuKQo+ID4gK3sKPiA+ICsJcmV0dXJuIGk5MTVfZ2VtX29iamVjdF9n ZXRfZG1hX2FkZHJlc3NfbGVuKG9iaiwgbiwgTlVMTCk7Cj4gPiArfQo+ID4gKwo+ID4gKwo+ID4g ICBpbnQgaTkxNV9nZW1fb2JqZWN0X2F0dGFjaF9waHlzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosIGludCBhbGlnbikKPiA+ICAgewo+ID4gICAJc3RydWN0IHNnX3RhYmxlICpwYWdl czsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gPiBpbmRleCBhODgwN2ZiZWQw YWEuLmJlNWRiYmIxYjZmZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu Ywo+ID4gQEAgLTM2MDUsNiArMzYwNSw4OSBAQCBpbnRlbF9yb3RhdGVfcGFnZXMoc3RydWN0IGlu dGVsX3JvdGF0aW9uX2luZm8gKnJvdF9pbmZvLAo+ID4gICAJcmV0dXJuIEVSUl9QVFIocmV0KTsK PiA+ICAgfQo+ID4gICAKPiA+ICtzdGF0aWMgc3RydWN0IHNjYXR0ZXJsaXN0ICoKPiA+ICtyZW1h cF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCB1bnNpZ25lZCBpbnQgb2Zm c2V0LAo+ID4gKwkgICAgdW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0LAo+ ID4gKwkgICAgdW5zaWduZWQgaW50IHN0cmlkZSwKPiA+ICsJICAgIHN0cnVjdCBzZ190YWJsZSAq c3QsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2cpCj4gPiArewo+ID4gKwl1bnNpZ25lZCBpbnQgcm93 Owo+ID4gKwo+ID4gKwlmb3IgKHJvdyA9IDA7IHJvdyA8IGhlaWdodDsgcm93KyspIHsKPiA+ICsJ CXVuc2lnbmVkIGludCBsZWZ0ID0gd2lkdGggKiBJOTE1X0dUVF9QQUdFX1NJWkU7Cj4gPiArCj4g PiArCQl3aGlsZSAobGVmdCkgewo+ID4gKwkJCWRtYV9hZGRyX3QgYWRkcjsKPiA+ICsJCQl1bnNp Z25lZCBpbnQgbGVuZ3RoOwo+ID4gKwo+ID4gKwkJCS8qIFdlIGRvbid0IG5lZWQgdGhlIHBhZ2Vz LCBidXQgbmVlZCB0byBpbml0aWFsaXplCj4gPiArCQkJICogdGhlIGVudHJpZXMgc28gdGhlIHNn IGxpc3QgY2FuIGJlIGhhcHBpbHkgdHJhdmVyc2VkLgo+ID4gKwkJCSAqIFRoZSBvbmx5IHRoaW5n IHdlIG5lZWQgYXJlIERNQSBhZGRyZXNzZXMuCj4gPiArCQkJICovCj4gPiArCj4gPiArCQkJYWRk ciA9IGk5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3NfbGVuKG9iaiwgb2Zmc2V0LCAmbGVu Z3RoKTsKPiA+ICsKPiA+ICsJCQlsZW5ndGggPSBtaW4obGVmdCwgbGVuZ3RoKTsKPiA+ICsKPiA+ ICsJCQlzdC0+bmVudHMrKzsKPiA+ICsKPiA+ICsJCQlzZ19zZXRfcGFnZShzZywgTlVMTCwgbGVu Z3RoLCAwKTsKPiA+ICsJCQlzZ19kbWFfYWRkcmVzcyhzZykgPSBhZGRyOwo+ID4gKwkJCXNnX2Rt YV9sZW4oc2cpID0gbGVuZ3RoOwo+ID4gKwkJCXNnID0gc2dfbmV4dChzZyk7Cj4gPiArCj4gPiAr CQkJb2Zmc2V0ICs9IGxlbmd0aCAvIEk5MTVfR1RUX1BBR0VfU0laRTsKPiA+ICsJCQlsZWZ0IC09 IGxlbmd0aDsKPiA+ICsJCX0KPiA+ICsKPiA+ICsJCW9mZnNldCArPSBzdHJpZGUgLSB3aWR0aDsK PiA+ICsJfQo+ID4gKwo+ID4gKwlyZXR1cm4gc2c7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBu b2lubGluZSBzdHJ1Y3Qgc2dfdGFibGUgKgo+ID4gK2ludGVsX3JlbWFwX3BhZ2VzKHN0cnVjdCBp bnRlbF9yZW1hcHBlZF9pbmZvICpyZW1faW5mbywKPiA+ICsJCSAgc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaikKPiA+ICt7Cj4gPiArCXVuc2lnbmVkIGludCBzaXplID0gaW50ZWxfcmVt YXBwZWRfaW5mb19zaXplKHJlbV9pbmZvKTsKPiA+ICsJc3RydWN0IHNnX3RhYmxlICpzdDsKPiA+ ICsJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKPiA+ICsJaW50IHJldCA9IC1FTk9NRU07Cj4gPiAr CWludCBpOwo+ID4gKwo+ID4gKwkvKiBBbGxvY2F0ZSB0YXJnZXQgU0cgbGlzdC4gKi8KPiA+ICsJ c3QgPSBrbWFsbG9jKHNpemVvZigqc3QpLCBHRlBfS0VSTkVMKTsKPiA+ICsJaWYgKCFzdCkKPiA+ ICsJCWdvdG8gZXJyX3N0X2FsbG9jOwo+ID4gKwo+ID4gKwlyZXQgPSBzZ19hbGxvY190YWJsZShz dCwgc2l6ZSwgR0ZQX0tFUk5FTCk7Cj4gPiArCWlmIChyZXQpCj4gPiArCQlnb3RvIGVycl9zZ19h bGxvYzsKPiA+ICsKPiA+ICsJc3QtPm5lbnRzID0gMDsKPiA+ICsJc2cgPSBzdC0+c2dsOwo+ID4g Kwo+ID4gKwlmb3IgKGkgPSAwIDsgaSA8IEFSUkFZX1NJWkUocmVtX2luZm8tPnBsYW5lKTsgaSsr KSB7Cj4gPiArCQlzZyA9IHJlbWFwX3BhZ2VzKG9iaiwgcmVtX2luZm8tPnBsYW5lW2ldLm9mZnNl dCwKPiA+ICsJCQkJIHJlbV9pbmZvLT5wbGFuZVtpXS53aWR0aCwgcmVtX2luZm8tPnBsYW5lW2ld LmhlaWdodCwKPiA+ICsJCQkJIHJlbV9pbmZvLT5wbGFuZVtpXS5zdHJpZGUsIHN0LCBzZyk7Cj4g PiArCX0KPiA+ICsKPiA+ICsJaTkxNV9zZ190cmltKHN0KTsKPiA+ICsKPiA+ICsJcmV0dXJuIHN0 Owo+ID4gKwo+ID4gK2Vycl9zZ19hbGxvYzoKPiA+ICsJa2ZyZWUoc3QpOwo+ID4gK2Vycl9zdF9h bGxvYzoKPiA+ICsKPiA+ICsJRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRvIGNyZWF0ZSByZW1h cHBlZCBtYXBwaW5nIGZvciBvYmplY3Qgc2l6ZSAlenUhICgldXgldSB0aWxlcywgJXUgcGFnZXMp XG4iLAo+ID4gKwkJCSBvYmotPmJhc2Uuc2l6ZSwgcmVtX2luZm8tPnBsYW5lWzBdLndpZHRoLCBy ZW1faW5mby0+cGxhbmVbMF0uaGVpZ2h0LCBzaXplKTsKPiA+ICsKPiA+ICsJcmV0dXJuIEVSUl9Q VFIocmV0KTsKPiA+ICt9Cj4gPiArCj4gPiAgIHN0YXRpYyBub2lubGluZSBzdHJ1Y3Qgc2dfdGFi bGUgKgo+ID4gICBpbnRlbF9wYXJ0aWFsX3BhZ2VzKGNvbnN0IHN0cnVjdCBpOTE1X2dndHRfdmll dyAqdmlldywKPiA+ICAgCQkgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiA+ IEBAIC0zNjgzLDYgKzM3NjYsMTEgQEAgaTkxNV9nZXRfZ2d0dF92bWFfcGFnZXMoc3RydWN0IGk5 MTVfdm1hICp2bWEpCj4gPiAgIAkJCWludGVsX3JvdGF0ZV9wYWdlcygmdm1hLT5nZ3R0X3ZpZXcu cm90YXRlZCwgdm1hLT5vYmopOwo+ID4gICAJCWJyZWFrOwo+ID4gICAKPiA+ICsJY2FzZSBJOTE1 X0dHVFRfVklFV19SRU1BUFBFRDoKPiA+ICsJCXZtYS0+cGFnZXMgPQo+ID4gKwkJCWludGVsX3Jl bWFwX3BhZ2VzKCZ2bWEtPmdndHRfdmlldy5yZW1hcHBlZCwgdm1hLT5vYmopOwo+ID4gKwkJYnJl YWs7Cj4gPiArCj4gPiAgIAljYXNlIEk5MTVfR0dUVF9WSUVXX1BBUlRJQUw6Cj4gPiAgIAkJdm1h LT5wYWdlcyA9IGludGVsX3BhcnRpYWxfcGFnZXMoJnZtYS0+Z2d0dF92aWV3LCB2bWEtPm9iaik7 Cj4gPiAgIAkJYnJlYWs7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+ID4gaW5k ZXggZTIzNjBmMTY0MjdhLi44ZjI2YjQyOTIwODQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmgKPiA+IEBAIC0xNjIsMTEgKzE2MiwxOCBAQCB0eXBlZGVmIHU2NCBnZW44 X3BwZ3R0X3BtbDRlX3Q7Cj4gPiAgIAo+ID4gICBzdHJ1Y3Qgc2dfdGFibGU7Cj4gPiAgIAo+ID4g K3N0cnVjdCBpbnRlbF9yZW1hcHBlZF9wbGFuZV9pbmZvIHsKPiA+ICsJLyogaW4gZ3R0IHBhZ2Vz ICovCj4gPiArCXVuc2lnbmVkIGludCB3aWR0aCwgaGVpZ2h0LCBzdHJpZGUsIG9mZnNldDsKPiA+ ICt9IF9fcGFja2VkOwo+ID4gKwo+ID4gK3N0cnVjdCBpbnRlbF9yZW1hcHBlZF9pbmZvIHsKPiA+ ICsJc3RydWN0IGludGVsX3JlbWFwcGVkX3BsYW5lX2luZm8gcGxhbmVbMl07Cj4gPiArCXVuc2ln bmVkIGludCB1bnVzZWRfbWJ6Owo+ID4gK30gX19wYWNrZWQ7Cj4gPiArCj4gPiAgIHN0cnVjdCBp bnRlbF9yb3RhdGlvbl9pbmZvIHsKPiA+IC0Jc3RydWN0IGludGVsX3JvdGF0aW9uX3BsYW5lX2lu Zm8gewo+ID4gLQkJLyogdGlsZXMgKi8KPiA+IC0JCXVuc2lnbmVkIGludCB3aWR0aCwgaGVpZ2h0 LCBzdHJpZGUsIG9mZnNldDsKPiA+IC0JfSBwbGFuZVsyXTsKPiA+ICsJc3RydWN0IGludGVsX3Jl bWFwcGVkX3BsYW5lX2luZm8gcGxhbmVbMl07Cj4gPiAgIH0gX19wYWNrZWQ7Cj4gPiAgIAo+ID4g ICBzdHJ1Y3QgaW50ZWxfcGFydGlhbF9pbmZvIHsKPiA+IEBAIC0xNzgsMTIgKzE4NSwyMCBAQCBl bnVtIGk5MTVfZ2d0dF92aWV3X3R5cGUgewo+ID4gICAJSTkxNV9HR1RUX1ZJRVdfTk9STUFMID0g MCwKPiA+ICAgCUk5MTVfR0dUVF9WSUVXX1JPVEFURUQgPSBzaXplb2Yoc3RydWN0IGludGVsX3Jv dGF0aW9uX2luZm8pLAo+ID4gICAJSTkxNV9HR1RUX1ZJRVdfUEFSVElBTCA9IHNpemVvZihzdHJ1 Y3QgaW50ZWxfcGFydGlhbF9pbmZvKSwKPiA+ICsJSTkxNV9HR1RUX1ZJRVdfUkVNQVBQRUQgPSBz aXplb2Yoc3RydWN0IGludGVsX3JlbWFwcGVkX2luZm8pLAo+ID4gICB9Owo+ID4gICAKPiA+ICAg c3RhdGljIGlubGluZSB2b2lkIGFzc2VydF9pOTE1X2dlbV9ndHRfdHlwZXModm9pZCkKPiA+ICAg ewo+ID4gICAJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbykg IT0gOCpzaXplb2YodW5zaWduZWQgaW50KSk7Cj4gPiAgIAlCVUlMRF9CVUdfT04oc2l6ZW9mKHN0 cnVjdCBpbnRlbF9wYXJ0aWFsX2luZm8pICE9IHNpemVvZih1NjQpICsgc2l6ZW9mKHVuc2lnbmVk IGludCkpOwo+ID4gKwlCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCBpbnRlbF9yZW1hcHBlZF9p bmZvKSAhPSA5KnNpemVvZih1bnNpZ25lZCBpbnQpKTsKPiA+ICsKPiA+ICsJLyogQ2hlY2sgdGhh dCByb3RhdGlvbi9yZW1hcHBlZCBzaGFyZXMgb2Zmc2V0cyBmb3Igc2ltcGxpY2l0eSAqLwo+ID4g KwlCVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGludGVsX3JlbWFwcGVkX2luZm8sIHBsYW5l WzBdKSAhPQo+ID4gKwkJICAgICBvZmZzZXRvZihzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbywg cGxhbmVbMF0pKTsKPiA+ICsJQlVJTERfQlVHX09OKG9mZnNldG9mZW5kKHN0cnVjdCBpbnRlbF9y ZW1hcHBlZF9pbmZvLCBwbGFuZVsxXSkgIT0KPiA+ICsJCSAgICAgb2Zmc2V0b2ZlbmQoc3RydWN0 IGludGVsX3JvdGF0aW9uX2luZm8sIHBsYW5lWzFdKSk7Cj4gPiAgIAo+ID4gICAJLyogQXMgd2Ug ZW5jb2RlIHRoZSBzaXplIG9mIGVhY2ggYnJhbmNoIGluc2lkZSB0aGUgdW5pb24gaW50byBpdHMg dHlwZSwKPiA+ICAgCSAqIHdlIGhhdmUgdG8gYmUgY2FyZWZ1bCB0aGF0IGVhY2ggYnJhbmNoIGhh cyBhIHVuaXF1ZSBzaXplLgo+ID4gQEAgLTE5Miw2ICsyMDcsNyBAQCBzdGF0aWMgaW5saW5lIHZv aWQgYXNzZXJ0X2k5MTVfZ2VtX2d0dF90eXBlcyh2b2lkKQo+ID4gICAJY2FzZSBJOTE1X0dHVFRf VklFV19OT1JNQUw6Cj4gPiAgIAljYXNlIEk5MTVfR0dUVF9WSUVXX1BBUlRJQUw6Cj4gPiAgIAlj YXNlIEk5MTVfR0dUVF9WSUVXX1JPVEFURUQ6Cj4gPiArCWNhc2UgSTkxNV9HR1RUX1ZJRVdfUkVN QVBQRUQ6Cj4gPiAgIAkJLyogZ2NjIGNvbXBsYWlucyBpZiB0aGVzZSBhcmUgaWRlbnRpY2FsIGNh c2VzICovCj4gPiAgIAkJYnJlYWs7Cj4gPiAgIAl9Cj4gPiBAQCAtMjAzLDYgKzIxOSw3IEBAIHN0 cnVjdCBpOTE1X2dndHRfdmlldyB7Cj4gPiAgIAkJLyogTWVtYmVycyBuZWVkIHRvIGNvbnRhaW4g bm8gaG9sZXMvcGFkZGluZyAqLwo+ID4gICAJCXN0cnVjdCBpbnRlbF9wYXJ0aWFsX2luZm8gcGFy dGlhbDsKPiA+ICAgCQlzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyByb3RhdGVkOwo+ID4gKwkJ c3RydWN0IGludGVsX3JlbWFwcGVkX2luZm8gcmVtYXBwZWQ7Cj4gPiAgIAl9Owo+ID4gICB9Owo+ ID4gICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwo+ID4gaW5kZXggNWI0ZDc4Y2RiNGNhLi45 YTAzOWMzNmRjMGMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Zt YS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCj4gPiBAQCAtMTY0 LDYgKzE2NCw5IEBAIHZtYV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwK PiA+ICAgCQl9IGVsc2UgaWYgKHZpZXctPnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCkg ewo+ID4gICAJCQl2bWEtPnNpemUgPSBpbnRlbF9yb3RhdGlvbl9pbmZvX3NpemUoJnZpZXctPnJv dGF0ZWQpOwo+ID4gICAJCQl2bWEtPnNpemUgPDw9IFBBR0VfU0hJRlQ7Cj4gPiArCQl9IGVsc2Ug aWYgKHZpZXctPnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfUkVNQVBQRUQpIHsKPiA+ICsJCQl2bWEt PnNpemUgPSBpbnRlbF9yZW1hcHBlZF9pbmZvX3NpemUoJnZpZXctPnJlbWFwcGVkKTsKPiA+ICsJ CQl2bWEtPnNpemUgPDw9IFBBR0VfU0hJRlQ7Cj4gPiAgIAkJfQo+ID4gICAJfQo+ID4gICAKPiA+ IEBAIC00NjQsNyArNDY3LDggQEAgdm9pZCBfX2k5MTVfdm1hX3NldF9tYXBfYW5kX2ZlbmNlYWJs ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiA+ICAgCSAqIEV4cGxpY2l0bHkgZGlzYWJsZSBmb3Ig cm90YXRlZCBWTUEgc2luY2UgdGhlIGRpc3BsYXkgZG9lcyBub3QKPiA+ICAgCSAqIG5lZWQgdGhl IGZlbmNlIGFuZCB0aGUgVk1BIGlzIG5vdCBhY2Nlc3NpYmxlIHRvIG90aGVyIHVzZXJzLgo+ID4g ICAJICovCj4gPiAtCWlmICh2bWEtPmdndHRfdmlldy50eXBlID09IEk5MTVfR0dUVF9WSUVXX1JP VEFURUQpCj4gPiArCWlmICh2bWEtPmdndHRfdmlldy50eXBlID09IEk5MTVfR0dUVF9WSUVXX1JP VEFURUQgfHwKPiA+ICsJICAgIHZtYS0+Z2d0dF92aWV3LnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdf UkVNQVBQRUQpCj4gPiAgIAkJcmV0dXJuOwo+ID4gICAKPiA+ICAgCWZlbmNlYWJsZSA9ICh2bWEt Pm5vZGUuc2l6ZSA+PSB2bWEtPmZlbmNlX3NpemUgJiYKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEu aAo+ID4gaW5kZXggNGY3YzFjNzU5OWY0Li42NGNmMDI5YzAyOGEgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3ZtYS5oCj4gPiBAQCAtMjY1LDggKzI2NSwxMSBAQCBpOTE1X3ZtYV9jb21wYXJl KHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAo+ID4gICAJICovCj4gPiAgIAlCVUlMRF9CVUdfT04oSTkx NV9HR1RUX1ZJRVdfTk9STUFMID49IEk5MTVfR0dUVF9WSUVXX1BBUlRJQUwpOwo+ID4gICAJQlVJ TERfQlVHX09OKEk5MTVfR0dUVF9WSUVXX1BBUlRJQUwgPj0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRF RCk7Cj4gPiArCUJVSUxEX0JVR19PTihJOTE1X0dHVFRfVklFV19ST1RBVEVEID49IEk5MTVfR0dU VF9WSUVXX1JFTUFQUEVEKTsKPiA+ICAgCUJVSUxEX0JVR19PTihvZmZzZXRvZih0eXBlb2YoKnZp ZXcpLCByb3RhdGVkKSAhPQo+ID4gICAJCSAgICAgb2Zmc2V0b2YodHlwZW9mKCp2aWV3KSwgcGFy dGlhbCkpOwo+ID4gKwlCVUlMRF9CVUdfT04ob2Zmc2V0b2YodHlwZW9mKCp2aWV3KSwgcm90YXRl ZCkgIT0KPiA+ICsJCSAgICAgb2Zmc2V0b2YodHlwZW9mKCp2aWV3KSwgcmVtYXBwZWQpKTsKPiA+ ICAgCXJldHVybiBtZW1jbXAoJnZtYS0+Z2d0dF92aWV3LnBhcnRpYWwsICZ2aWV3LT5wYXJ0aWFs LCB2aWV3LT50eXBlKTsKPiA+ICAgfQo+ID4gICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiA+IGluZGV4IDVkYzBkZTg5YzQ5ZS4uYzE3YTE3MjNhNTg5IDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IEBAIC0xOTQyLDYgKzE5NDIsMTcg QEAgdW5zaWduZWQgaW50IGludGVsX3JvdGF0aW9uX2luZm9fc2l6ZShjb25zdCBzdHJ1Y3QgaW50 ZWxfcm90YXRpb25faW5mbyAqcm90X2luZm8KPiA+ICAgCXJldHVybiBzaXplOwo+ID4gICB9Cj4g PiAgIAo+ID4gK3Vuc2lnbmVkIGludCBpbnRlbF9yZW1hcHBlZF9pbmZvX3NpemUoY29uc3Qgc3Ry dWN0IGludGVsX3JlbWFwcGVkX2luZm8gKnJlbV9pbmZvKQo+ID4gK3sKPiA+ICsJdW5zaWduZWQg aW50IHNpemUgPSAwOwo+ID4gKwlpbnQgaTsKPiA+ICsKPiA+ICsJZm9yIChpID0gMCA7IGkgPCBB UlJBWV9TSVpFKHJlbV9pbmZvLT5wbGFuZSk7IGkrKykKPiA+ICsJCXNpemUgKz0gcmVtX2luZm8t PnBsYW5lW2ldLndpZHRoICogcmVtX2luZm8tPnBsYW5lW2ldLmhlaWdodDsKPiA+ICsKPiA+ICsJ cmV0dXJuIHNpemU7Cj4gPiArfQo+ID4gKwo+ID4gICBzdGF0aWMgdm9pZAo+ID4gICBpbnRlbF9m aWxsX2ZiX2dndHRfdmlldyhzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcsCj4gPiAgIAkJCWNv bnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgKPiA+IGluZGV4IDNiMDUxZmRkMGZjZS4uN2I5Yjc2ZDU4OTVlIDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gPiBAQCAtMTYwMSw2ICsxNjAxLDcgQEAgdW5zaWduZWQgaW50 IGludGVsX2ZiX3h5X3RvX2xpbmVhcihpbnQgeCwgaW50IHksCj4gPiAgIHZvaWQgaW50ZWxfYWRk X2ZiX29mZnNldHMoaW50ICp4LCBpbnQgKnksCj4gPiAgIAkJCSAgY29uc3Qgc3RydWN0IGludGVs X3BsYW5lX3N0YXRlICpzdGF0ZSwgaW50IHBsYW5lKTsKPiA+ICAgdW5zaWduZWQgaW50IGludGVs X3JvdGF0aW9uX2luZm9fc2l6ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyAqcm90 X2luZm8pOwo+ID4gK3Vuc2lnbmVkIGludCBpbnRlbF9yZW1hcHBlZF9pbmZvX3NpemUoY29uc3Qg c3RydWN0IGludGVsX3JlbWFwcGVkX2luZm8gKnJlbV9pbmZvKTsKPiA+ICAgYm9vbCBpbnRlbF9o YXNfcGVuZGluZ19mYl91bnBpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ ID4gICB2b2lkIGludGVsX21hcmtfYnVzeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwo+ID4gICB2b2lkIGludGVsX21hcmtfaWRsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9pOTE1X3ZtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfdm1hLmMK PiA+IGluZGV4IGZmYTc0MjkwZTA1NC4uNGZjNDljMjdmMTNjIDEwMDY0NAo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfdm1hLmMKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3ZtYS5jCj4gPiBAQCAtMzk1LDggKzM5NSw4IEBA IGFzc2VydF9yb3RhdGVkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gPiAgIAly ZXR1cm4gc2c7Cj4gPiAgIH0KPiA+ICAgCj4gPiAtc3RhdGljIHVuc2lnbmVkIGludCByb3RhdGVk X3NpemUoY29uc3Qgc3RydWN0IGludGVsX3JvdGF0aW9uX3BsYW5lX2luZm8gKmEsCj4gPiAtCQkJ CSBjb25zdCBzdHJ1Y3QgaW50ZWxfcm90YXRpb25fcGxhbmVfaW5mbyAqYikKPiA+ICtzdGF0aWMg dW5zaWduZWQgaW50IHJvdGF0ZWRfc2l6ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfcGxh bmVfaW5mbyAqYSwKPiA+ICsJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9yZW1hcHBlZF9wbGFuZV9p bmZvICpiKQo+ID4gICB7Cj4gPiAgIAlyZXR1cm4gYS0+d2lkdGggKiBhLT5oZWlnaHQgKyBiLT53 aWR0aCAqIGItPmhlaWdodDsKPiA+ICAgfQo+ID4gQEAgLTQwNiw3ICs0MDYsNyBAQCBzdGF0aWMg aW50IGlndF92bWFfcm90YXRlKHZvaWQgKmFyZykKPiA+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1ID0gYXJnOwo+ID4gICAJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0gPSAm aTkxNS0+Z2d0dC52bTsKPiA+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4g PiAtCWNvbnN0IHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9wbGFuZV9pbmZvIHBsYW5lc1tdID0gewo+ ID4gKwljb25zdCBzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfcGxhbmVfaW5mbyBwbGFuZXNbXSA9IHsK PiAKPiBXaHkgdGhpcz8KCkp1c3QgYSBuZXcgbmFtZSB0byBiZXR0ZXIgcmVmbGVjdCB0aGUgd2lk ZW5lZCBzY29wZSBvZiB0aGUgc3RydWN0LgoKPiAKPiA+ICAgCQl7IC53aWR0aCA9IDEsIC5oZWln aHQgPSAxLCAuc3RyaWRlID0gMSB9LAo+ID4gICAJCXsgLndpZHRoID0gMiwgLmhlaWdodCA9IDIs IC5zdHJpZGUgPSAyIH0sCj4gPiAgIAkJeyAud2lkdGggPSA0LCAuaGVpZ2h0ID0gNCwgLnN0cmlk ZSA9IDQgfSwKPiA+IAo+IAo+IFJlZ2FyZHMsCj4gCj4gVHZydGtvCgotLSAKVmlsbGUgU3lyasOk bMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=