From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v4 3/8] drm/i915: Add a new "remapped" gtt_view Date: Tue, 23 Oct 2018 22:10:48 +0300 Message-ID: <20181023191048.GW9144@intel.com> References: <20180925193714.25280-4-ville.syrjala@linux.intel.com> <20181023160236.9975-1-ville.syrjala@linux.intel.com> <154032101364.9962.14319485296662868186@skylake-alporthouse-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 0AB106E0A4 for ; Tue, 23 Oct 2018 19:10:52 +0000 (UTC) Content-Disposition: inline In-Reply-To: <154032101364.9962.14319485296662868186@skylake-alporthouse-com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMjMsIDIwMTggYXQgMDc6NTY6NThQTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IFF1b3RpbmcgVmlsbGUgU3lyamFsYSAoMjAxOC0xMC0yMyAxNzowMjozNikKPiA+IEZy b206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAK PiA+IFRvIG92ZXJjb21lIGRpc3BsYXkgZW5naW5lIHN0cmlkZSBsaW1pdHMgd2UnbGwgd2FudCB0 byByZW1hcCB0aGUKPiA+IHBhZ2VzIGluIHRoZSBHVFQuIFRvIHRoYXQgZW5kIHdlIG5lZWQgYSBu ZXcgZ3R0X3ZpZXcgdHlwZSB3aGljaAo+ID4gaXMganVzdCBsaWtlIHRoZSAicm90YXRlZCIgdHlw ZSBleGNlcHQgbm90IHJvdGF0ZWQuCj4gPiAKPiA+IHYyOiBVc2UgaW50ZWxfcmVtYXBwZWRfcGxh bmVfaW5mbyBiYXNlIHR5cGUKPiA+ICAgICBzL3VudXNlZC91bnVzZWRfbWJ6LyAoQ2hyaXMpCj4g PiAgICAgU2VwYXJhdGUgQlVJTERfQlVHX09OKClzIChDaHJpcykKPiA+ICAgICBVc2UgSTkxNV9H VFRfUEFHRV9TSVpFIChDaHJpcykKPiA+IHYzOiBVc2UgaTkxNV9nZW1fb2JqZWN0X2dldF9kbWFf YWRkcmVzcygpIChDaHJpcykKPiA+ICAgICBUcmltIHRoZSBzZyAoVHZydGtvKQo+ID4gCj4gPiBD YzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gPiBDYzogVHZydGtv IFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4LmludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYt Ynk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAt LS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICB8IDEyICsr KysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgICB8IDc0ICsr KysrKysrKysrKysrKysrKysrKysrCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmggICAgICAgfCAyNSArKysrKystLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf dm1hLmMgICAgICAgICAgIHwgIDYgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Zt YS5oICAgICAgICAgICB8ICAzICsKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgICAgICB8IDExICsrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCAgICAgICAgICB8ICAxICsKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkx NV92bWEuYyB8ICA2ICstCj4gPiAgOCBmaWxlcyBjaGFuZ2VkLCAxMzAgaW5zZXJ0aW9ucygrKSwg OCBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+ IGluZGV4IDViMzdkNWY4ZTEzMi4uY2UwMTkxMjYzMDRkIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jCj4gPiBAQCAtMTk2LDYgKzE5NiwxOCBAQCBkZXNjcmliZV9vYmoo c3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZtYS0+Z2d0dF92aWV3 LnJvdGF0ZWQucGxhbmVbMV0ub2Zmc2V0KTsKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7Cj4gPiAgCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEk5MTVf R0dUVF9WSUVXX1JFTUFQUEVEOgo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZXFfcHJpbnRmKG0sICIsIHJlbWFwcGVkIFsoJXV4JXUsIHN0cmlkZT0ldSwgb2Zmc2V0PSV1KSwg KCV1eCV1LCBzdHJpZGU9JXUsIG9mZnNldD0ldSldIiwKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2bWEtPmdndHRfdmlldy5yZW1hcHBlZC5wbGFuZVswXS53 aWR0aCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bWEt PmdndHRfdmlldy5yZW1hcHBlZC5wbGFuZVswXS5oZWlnaHQsCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdm1hLT5nZ3R0X3ZpZXcucmVtYXBwZWQucGxhbmVb MF0uc3RyaWRlLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBdLm9mZnNldCwKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bWEtPmdndHRfdmlldy5yZW1hcHBlZC5w bGFuZVsxXS53aWR0aCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2bWEtPmdndHRfdmlldy5yZW1hcHBlZC5wbGFuZVsxXS5oZWlnaHQsCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm1hLT5nZ3R0X3ZpZXcucmVtYXBw ZWQucGxhbmVbMV0uc3RyaWRlLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzFdLm9mZnNldCk7Cj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ID4gKwo+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgZGVmYXVsdDoKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTUlTU0lOR19DQVNFKHZtYS0+Z2d0dF92aWV3LnR5cGUpOwo+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5j Cj4gPiBpbmRleCA5OGQ5YTFlYjFlZDIuLmQwZTUwYjU4NGViZCAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ID4gQEAgLTM3MDUsNiArMzcwNSw3NSBAQCBpbnRlbF9y b3RhdGVfcGFnZXMoc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gKnJvdF9pbmZvLAo+ID4gICAg ICAgICByZXR1cm4gRVJSX1BUUihyZXQpOwo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgc3RydWN0 IHNjYXR0ZXJsaXN0ICoKPiA+ICtyZW1hcF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAo+ID4gKyAgICAgICAgICAgdW5zaWduZWQgaW50 IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0LAo+ID4gKyAgICAgICAgICAgdW5zaWduZWQgaW50 IHN0cmlkZSwKPiA+ICsgICAgICAgICAgIHN0cnVjdCBzZ190YWJsZSAqc3QsIHN0cnVjdCBzY2F0 dGVybGlzdCAqc2cpCj4gPiArewo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgY29sdW1uLCByb3c7 Cj4gPiArCj4gPiArICAgICAgIGZvciAocm93ID0gMDsgcm93IDwgaGVpZ2h0OyByb3crKykgewo+ ID4gKyAgICAgICAgICAgICAgIGZvciAoY29sdW1uID0gMDsgY29sdW1uIDwgd2lkdGg7IGNvbHVt bisrKSB7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBzdC0+bmVudHMrKzsKPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIC8qIFdlIGRvbid0IG5lZWQgdGhlIHBhZ2VzLCBidXQgbmVlZCB0 byBpbml0aWFsaXplCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgZW50cmllcyBz byB0aGUgc2cgbGlzdCBjYW4gYmUgaGFwcGlseSB0cmF2ZXJzZWQuCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgKiBUaGUgb25seSB0aGluZyB3ZSBuZWVkIGFyZSBETUEgYWRkcmVzc2VzLgo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICovCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICBzZ19zZXRfcGFnZShzZywgTlVMTCwgSTkxNV9HVFRfUEFHRV9TSVpFLCAwKTsKPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIHNnX2RtYV9hZGRyZXNzKHNnKSA9Cj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGk5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3Mob2JqLCBv ZmZzZXQgKyBjb2x1bW4pOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgc2dfZG1hX2xlbihz ZykgPSBJOTE1X0dUVF9QQUdFX1NJWkU7Cj4gCj4gVGhlcmUncyBhIGJpdCBvZiB3b3JrIHRoYXQg d2UgY291bGQgYXBwbHkgaGVyZSB3aXRoCj4gaTkxNV9nZW1fb2JqZWN0X2dldF9zZygpIGFuZCB0 cnkgYW5kIGtlZXAgbGFyZ2Ugc3BhbnMuIFByb2JhYmx5IG5vdCB2ZXJ5Cj4gaW1wb3J0YW50IGdp dmVuIHRoYXQgdGhpcyBpcyBmb3IgR0dUVCBhbmQgc28gbm90IHN1cHBvcnRpbmcgbGFyZ2UgUFRF LAo+IHNvIHdlIG9ubHkgbG9vc2Ugb3V0IG9uIGtlZXBpbmcgdGhlIHZtYS0+cGFnZXMgc2cgYXMg c21hbGwgYXMgcG9zc2libGUuCj4gCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBzZyA9IHNn X25leHQoc2cpOwo+ID4gKyAgICAgICAgICAgICAgIH0KPiA+ICsgICAgICAgICAgICAgICBvZmZz ZXQgKz0gc3RyaWRlOwo+ID4gKyAgICAgICB9Cj4gPiArCj4gPiArICAgICAgIHJldHVybiBzZzsK PiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIG5vaW5saW5lIHN0cnVjdCBzZ190YWJsZSAqCj4gPiAr aW50ZWxfcmVtYXBfcGFnZXMoc3RydWN0IGludGVsX3JlbWFwcGVkX2luZm8gKnJlbV9pbmZvLAo+ ID4gKyAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiA+ ICt7Cj4gPiArICAgICAgIHVuc2lnbmVkIGludCBzaXplID0gaW50ZWxfcmVtYXBwZWRfaW5mb19z aXplKHJlbV9pbmZvKTsKPiA+ICsgICAgICAgc3RydWN0IHNnX3RhYmxlICpzdDsKPiA+ICsgICAg ICAgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKPiA+ICsgICAgICAgaW50IHJldCA9IC1FTk9NRU07 Cj4gPiArICAgICAgIGludCBpOwo+ID4gKwo+ID4gKyAgICAgICAvKiBBbGxvY2F0ZSB0YXJnZXQg U0cgbGlzdC4gKi8KPiA+ICsgICAgICAgc3QgPSBrbWFsbG9jKHNpemVvZigqc3QpLCBHRlBfS0VS TkVMKTsKPiA+ICsgICAgICAgaWYgKCFzdCkKPiA+ICsgICAgICAgICAgICAgICBnb3RvIGVycl9z dF9hbGxvYzsKPiA+ICsKPiA+ICsgICAgICAgcmV0ID0gc2dfYWxsb2NfdGFibGUoc3QsIHNpemUs IEdGUF9LRVJORUwpOwo+ID4gKyAgICAgICBpZiAocmV0KQo+ID4gKyAgICAgICAgICAgICAgIGdv dG8gZXJyX3NnX2FsbG9jOwo+ID4gKwo+ID4gKyAgICAgICBzdC0+bmVudHMgPSAwOwo+ID4gKyAg ICAgICBzZyA9IHN0LT5zZ2w7Cj4gPiArCj4gPiArICAgICAgIGZvciAoaSA9IDAgOyBpIDwgQVJS QVlfU0laRShyZW1faW5mby0+cGxhbmUpOyBpKyspIHsKPiA+ICsgICAgICAgICAgICAgICBzZyA9 IHJlbWFwX3BhZ2VzKG9iaiwgcmVtX2luZm8tPnBsYW5lW2ldLm9mZnNldCwKPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJlbV9pbmZvLT5wbGFuZVtpXS53aWR0aCwgcmVtX2lu Zm8tPnBsYW5lW2ldLmhlaWdodCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlbV9pbmZvLT5wbGFuZVtpXS5zdHJpZGUsIHN0LCBzZyk7Cj4gPiArICAgICAgIH0KPiA+ICsK PiA+ICsgICAgICAgaTkxNV9zZ190cmltKHN0KTsKPiA+ICsKPiA+ICsgICAgICAgcmV0dXJuIHN0 Owo+ID4gKwo+ID4gK2Vycl9zZ19hbGxvYzoKPiA+ICsgICAgICAga2ZyZWUoc3QpOwo+ID4gK2Vy cl9zdF9hbGxvYzoKPiA+ICsKPiA+ICsgICAgICAgRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRv IGNyZWF0ZSByZW1hcHBlZCBtYXBwaW5nIGZvciBvYmplY3Qgc2l6ZSAlenUhICgldXgldSB0aWxl cywgJXUgcGFnZXMpXG4iLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIG9iai0+YmFzZS5z aXplLCByZW1faW5mby0+cGxhbmVbMF0ud2lkdGgsIHJlbV9pbmZvLT5wbGFuZVswXS5oZWlnaHQs IHNpemUpOwo+ID4gKwo+ID4gKyAgICAgICByZXR1cm4gRVJSX1BUUihyZXQpOwo+ID4gK30KPiA+ ICsKPiA+ICBzdGF0aWMgbm9pbmxpbmUgc3RydWN0IHNnX3RhYmxlICoKPiA+ICBpbnRlbF9wYXJ0 aWFsX3BhZ2VzKGNvbnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyAqdmlldywKPiA+ICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiA+IEBAIC0zNzgz LDYgKzM4NTIsMTEgQEAgaTkxNV9nZXRfZ2d0dF92bWFfcGFnZXMoc3RydWN0IGk5MTVfdm1hICp2 bWEpCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF9yb3RhdGVfcGFnZXMoJnZtYS0+ Z2d0dF92aWV3LnJvdGF0ZWQsIHZtYS0+b2JqKTsKPiA+ICAgICAgICAgICAgICAgICBicmVhazsK PiA+ICAKPiA+ICsgICAgICAgY2FzZSBJOTE1X0dHVFRfVklFV19SRU1BUFBFRDoKPiA+ICsgICAg ICAgICAgICAgICB2bWEtPnBhZ2VzID0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGludGVs X3JlbWFwX3BhZ2VzKCZ2bWEtPmdndHRfdmlldy5yZW1hcHBlZCwgdm1hLT5vYmopOwo+ID4gKyAg ICAgICAgICAgICAgIGJyZWFrOwo+ID4gKwo+ID4gICAgICAgICBjYXNlIEk5MTVfR0dUVF9WSUVX X1BBUlRJQUw6Cj4gPiAgICAgICAgICAgICAgICAgdm1hLT5wYWdlcyA9IGludGVsX3BhcnRpYWxf cGFnZXMoJnZtYS0+Z2d0dF92aWV3LCB2bWEtPm9iaik7Cj4gPiAgICAgICAgICAgICAgICAgYnJl YWs7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+ID4gaW5kZXggN2UyYWY1ZjRm MzliLi42OWEyMmY1N2U2Y2EgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0 LmgKPiA+IEBAIC0xNjAsMTEgKzE2MCwxOCBAQCB0eXBlZGVmIHU2NCBnZW44X3BwZ3R0X3BtbDRl X3Q7Cj4gPiAgCj4gPiAgc3RydWN0IHNnX3RhYmxlOwo+ID4gIAo+ID4gK3N0cnVjdCBpbnRlbF9y ZW1hcHBlZF9wbGFuZV9pbmZvIHsKPiA+ICsgICAgICAgLyogaW4gZ3R0IHBhZ2VzICovCj4gPiAr ICAgICAgIHVuc2lnbmVkIGludCB3aWR0aCwgaGVpZ2h0LCBzdHJpZGUsIG9mZnNldDsKPiA+ICt9 IF9fcGFja2VkOwo+ID4gKwo+ID4gK3N0cnVjdCBpbnRlbF9yZW1hcHBlZF9pbmZvIHsKPiA+ICsg ICAgICAgc3RydWN0IGludGVsX3JlbWFwcGVkX3BsYW5lX2luZm8gcGxhbmVbMl07Cj4gPiArICAg ICAgIHVuc2lnbmVkIGludCB1bnVzZWRfbWJ6Owo+ID4gK30gX19wYWNrZWQ7Cj4gPiArCj4gPiAg c3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gewo+ID4gLSAgICAgICBzdHJ1Y3QgaW50ZWxfcm90 YXRpb25fcGxhbmVfaW5mbyB7Cj4gPiAtICAgICAgICAgICAgICAgLyogdGlsZXMgKi8KPiA+IC0g ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgd2lkdGgsIGhlaWdodCwgc3RyaWRlLCBvZmZzZXQ7 Cj4gPiAtICAgICAgIH0gcGxhbmVbMl07Cj4gPiArICAgICAgIHN0cnVjdCBpbnRlbF9yZW1hcHBl ZF9wbGFuZV9pbmZvIHBsYW5lWzJdOwo+ID4gIH0gX19wYWNrZWQ7Cj4gPiAgCj4gPiAgc3RydWN0 IGludGVsX3BhcnRpYWxfaW5mbyB7Cj4gPiBAQCAtMTc2LDEyICsxODMsMjAgQEAgZW51bSBpOTE1 X2dndHRfdmlld190eXBlIHsKPiA+ICAgICAgICAgSTkxNV9HR1RUX1ZJRVdfTk9STUFMID0gMCwK PiA+ICAgICAgICAgSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCA9IHNpemVvZihzdHJ1Y3QgaW50ZWxf cm90YXRpb25faW5mbyksCj4gPiAgICAgICAgIEk5MTVfR0dUVF9WSUVXX1BBUlRJQUwgPSBzaXpl b2Yoc3RydWN0IGludGVsX3BhcnRpYWxfaW5mbyksCj4gPiArICAgICAgIEk5MTVfR0dUVF9WSUVX X1JFTUFQUEVEID0gc2l6ZW9mKHN0cnVjdCBpbnRlbF9yZW1hcHBlZF9pbmZvKSwKPiA+ICB9Owo+ ID4gIAo+ID4gIHN0YXRpYyBpbmxpbmUgdm9pZCBhc3NlcnRfaTkxNV9nZW1fZ3R0X3R5cGVzKHZv aWQpCj4gPiAgewo+ID4gICAgICAgICBCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCBpbnRlbF9y b3RhdGlvbl9pbmZvKSAhPSA4KnNpemVvZih1bnNpZ25lZCBpbnQpKTsKPiA+ICAgICAgICAgQlVJ TERfQlVHX09OKHNpemVvZihzdHJ1Y3QgaW50ZWxfcGFydGlhbF9pbmZvKSAhPSBzaXplb2YodTY0 KSArIHNpemVvZih1bnNpZ25lZCBpbnQpKTsKPiA+ICsgICAgICAgQlVJTERfQlVHX09OKHNpemVv ZihzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfaW5mbykgIT0gOSpzaXplb2YodW5zaWduZWQgaW50KSk7 Cj4gPiArCj4gPiArICAgICAgIC8qIENoZWNrIHRoYXQgcm90YXRpb24vcmVtYXBwZWQgc2hhcmVz IG9mZnNldHMgZm9yIHNpbXBsaWNpdHkgKi8KPiA+ICsgICAgICAgQlVJTERfQlVHX09OKG9mZnNl dG9mKHN0cnVjdCBpbnRlbF9yZW1hcHBlZF9pbmZvLCBwbGFuZVswXSkgIT0KPiA+ICsgICAgICAg ICAgICAgICAgICAgIG9mZnNldG9mKHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvLCBwbGFuZVsw XSkpOwo+ID4gKyAgICAgICBCVUlMRF9CVUdfT04ob2Zmc2V0b2ZlbmQoc3RydWN0IGludGVsX3Jl bWFwcGVkX2luZm8sIHBsYW5lWzFdKSAhPQo+ID4gKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0 b2ZlbmQoc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8sIHBsYW5lWzFdKSk7Cj4gPiAgCj4gPiAg ICAgICAgIC8qIEFzIHdlIGVuY29kZSB0aGUgc2l6ZSBvZiBlYWNoIGJyYW5jaCBpbnNpZGUgdGhl IHVuaW9uIGludG8gaXRzIHR5cGUsCj4gPiAgICAgICAgICAqIHdlIGhhdmUgdG8gYmUgY2FyZWZ1 bCB0aGF0IGVhY2ggYnJhbmNoIGhhcyBhIHVuaXF1ZSBzaXplLgo+ID4gQEAgLTE5MCw2ICsyMDUs NyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXNzZXJ0X2k5MTVfZ2VtX2d0dF90eXBlcyh2b2lkKQo+ ID4gICAgICAgICBjYXNlIEk5MTVfR0dUVF9WSUVXX05PUk1BTDoKPiA+ICAgICAgICAgY2FzZSBJ OTE1X0dHVFRfVklFV19QQVJUSUFMOgo+ID4gICAgICAgICBjYXNlIEk5MTVfR0dUVF9WSUVXX1JP VEFURUQ6Cj4gPiArICAgICAgIGNhc2UgSTkxNV9HR1RUX1ZJRVdfUkVNQVBQRUQ6Cj4gPiAgICAg ICAgICAgICAgICAgLyogZ2NjIGNvbXBsYWlucyBpZiB0aGVzZSBhcmUgaWRlbnRpY2FsIGNhc2Vz ICovCj4gPiAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gPiAgICAgICAgIH0KPiA+IEBAIC0yMDEs NiArMjE3LDcgQEAgc3RydWN0IGk5MTVfZ2d0dF92aWV3IHsKPiA+ICAgICAgICAgICAgICAgICAv KiBNZW1iZXJzIG5lZWQgdG8gY29udGFpbiBubyBob2xlcy9wYWRkaW5nICovCj4gPiAgICAgICAg ICAgICAgICAgc3RydWN0IGludGVsX3BhcnRpYWxfaW5mbyBwYXJ0aWFsOwo+ID4gICAgICAgICAg ICAgICAgIHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvIHJvdGF0ZWQ7Cj4gPiArICAgICAgICAg ICAgICAgc3RydWN0IGludGVsX3JlbWFwcGVkX2luZm8gcmVtYXBwZWQ7Cj4gPiAgICAgICAgIH07 Cj4gPiAgfTsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3ZtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwo+ID4gaW5kZXggODI2NTJj M2QxYmVkLi4yMDcwZTQ0ZWFhMDMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3ZtYS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCj4g PiBAQCAtMTY0LDYgKzE2NCw5IEBAIHZtYV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKPiA+ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZpZXctPnR5cGUgPT0gSTkx NV9HR1RUX1ZJRVdfUk9UQVRFRCkgewo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgdm1hLT5z aXplID0gaW50ZWxfcm90YXRpb25faW5mb19zaXplKCZ2aWV3LT5yb3RhdGVkKTsKPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgIHZtYS0+c2l6ZSA8PD0gUEFHRV9TSElGVDsKPiA+ICsgICAgICAg ICAgICAgICB9IGVsc2UgaWYgKHZpZXctPnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfUkVNQVBQRUQp IHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHZtYS0+c2l6ZSA9IGludGVsX3JlbWFwcGVk X2luZm9fc2l6ZSgmdmlldy0+cmVtYXBwZWQpOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg dm1hLT5zaXplIDw8PSBQQUdFX1NISUZUOwo+ID4gICAgICAgICAgICAgICAgIH0KPiA+ICAgICAg ICAgfQo+ID4gIAo+ID4gQEAgLTQ2NCw3ICs0NjcsOCBAQCB2b2lkIF9faTkxNV92bWFfc2V0X21h cF9hbmRfZmVuY2VhYmxlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ID4gICAgICAgICAgKiBFeHBs aWNpdGx5IGRpc2FibGUgZm9yIHJvdGF0ZWQgVk1BIHNpbmNlIHRoZSBkaXNwbGF5IGRvZXMgbm90 Cj4gPiAgICAgICAgICAqIG5lZWQgdGhlIGZlbmNlIGFuZCB0aGUgVk1BIGlzIG5vdCBhY2Nlc3Np YmxlIHRvIG90aGVyIHVzZXJzLgo+ID4gICAgICAgICAgKi8KPiA+IC0gICAgICAgaWYgKHZtYS0+ Z2d0dF92aWV3LnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCkKPiA+ICsgICAgICAgaWYg KHZtYS0+Z2d0dF92aWV3LnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCB8fAo+ID4gKyAg ICAgICAgICAgdm1hLT5nZ3R0X3ZpZXcudHlwZSA9PSBJOTE1X0dHVFRfVklFV19SRU1BUFBFRCkK PiA+ICAgICAgICAgICAgICAgICByZXR1cm47Cj4gCj4gSG1tLCBzdGlsbCBzdXJlIHdlIGRvbid0 IHdhbnQgZmVuY2VzIG9uIHRoZSByZW1hcHBlZCB2aWV3PyBTZWVtcwo+IHBvdGVudGlhbGx5IHVz ZWZ1bC4KCkkgcmVtb3ZlIHRoYXQgcmVzdHJpY3Rpb24gaW4gdGhlIHNlbGZ0ZXN0IHBhdGNoIHNp bmNlIHRoYXQncyB0aGUgZmlyc3QKdGhpbmcgdGhhdCByZWFsbHkgbmVlZHMgaXQuIEkgd2FzIHBv bmRlcmluZyBhYm91dCBtb3ZpbmcgaXQgdG8gYW4KZW50aXJlbHkgc2VwYXJhdGUgcGF0Y2ggYnV0 IGZvciB3aGF0ZXZlciByZWFzb24gZGVjaWRlZCBhZ2FpbnN0IGl0LgpJIGNhbiBzdGlsbCBzcGxp dCBpdCBvdXQgaWYgcGVvcGxlIHByZWZlciB0aGF0PwoKPiAgIAo+ID4gICAgICAgICBmZW5jZWFi bGUgPSAodm1hLT5ub2RlLnNpemUgPj0gdm1hLT5mZW5jZV9zaXplICYmCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfdm1hLmgKPiA+IGluZGV4IDRmN2MxYzc1OTlmNC4uNjRjZjAyOWMwMjhhIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaAo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaAo+ID4gQEAgLTI2NSw4ICsyNjUsMTEgQEAgaTkxNV92 bWFfY29tcGFyZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKPiA+ICAgICAgICAgICovCj4gPiAgICAg ICAgIEJVSUxEX0JVR19PTihJOTE1X0dHVFRfVklFV19OT1JNQUwgPj0gSTkxNV9HR1RUX1ZJRVdf UEFSVElBTCk7Cj4gPiAgICAgICAgIEJVSUxEX0JVR19PTihJOTE1X0dHVFRfVklFV19QQVJUSUFM ID49IEk5MTVfR0dUVF9WSUVXX1JPVEFURUQpOwo+ID4gKyAgICAgICBCVUlMRF9CVUdfT04oSTkx NV9HR1RUX1ZJRVdfUk9UQVRFRCA+PSBJOTE1X0dHVFRfVklFV19SRU1BUFBFRCk7Cj4gPiAgICAg ICAgIEJVSUxEX0JVR19PTihvZmZzZXRvZih0eXBlb2YoKnZpZXcpLCByb3RhdGVkKSAhPQo+ID4g ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW9mKCp2aWV3KSwgcGFydGlhbCkpOwo+ ID4gKyAgICAgICBCVUlMRF9CVUdfT04ob2Zmc2V0b2YodHlwZW9mKCp2aWV3KSwgcm90YXRlZCkg IT0KPiA+ICsgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHR5cGVvZigqdmlldyksIHJlbWFw cGVkKSk7Cj4gPiAgICAgICAgIHJldHVybiBtZW1jbXAoJnZtYS0+Z2d0dF92aWV3LnBhcnRpYWws ICZ2aWV3LT5wYXJ0aWFsLCB2aWV3LT50eXBlKTsKPiA+ICB9Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBpbmRleCA4YTBiNDc3YTY5ZDMuLjQxZjdlMDc5NWIx NCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBAQCAtMTk1 Nyw2ICsxOTU3LDE3IEBAIHVuc2lnbmVkIGludCBpbnRlbF9yb3RhdGlvbl9pbmZvX3NpemUoY29u c3Qgc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gKnJvdF9pbmZvCj4gPiAgICAgICAgIHJldHVy biBzaXplOwo+ID4gIH0KPiA+ICAKPiA+ICt1bnNpZ25lZCBpbnQgaW50ZWxfcmVtYXBwZWRfaW5m b19zaXplKGNvbnN0IHN0cnVjdCBpbnRlbF9yZW1hcHBlZF9pbmZvICpyZW1faW5mbykKPiA+ICt7 Cj4gPiArICAgICAgIHVuc2lnbmVkIGludCBzaXplID0gMDsKPiA+ICsgICAgICAgaW50IGk7Cj4g PiArCj4gCj4gSSB3YXMgbG9va2luZyBmb3IgYSBnb29kIHBsYWNlIHRvIHN0aWNrCj4gCUdFTV9C VUdfT04ocmVtX2luZm8tPnVudXNlZF9tYnopOwo+IEhlcmU/CgpJIGd1ZXNzIHRoaXMgYXMgZ29v ZCBhIHBsYWNlIGFzIGFueS4gSSBzaGFsbCBhZGQgaXQuCgo+IAo+ID4gKyAgICAgICBmb3IgKGkg PSAwIDsgaSA8IEFSUkFZX1NJWkUocmVtX2luZm8tPnBsYW5lKTsgaSsrKQo+ID4gKyAgICAgICAg ICAgICAgIHNpemUgKz0gcmVtX2luZm8tPnBsYW5lW2ldLndpZHRoICogcmVtX2luZm8tPnBsYW5l W2ldLmhlaWdodDsKPiA+ICsKPiA+ICsgICAgICAgcmV0dXJuIHNpemU7Cj4gPiArfQo+ID4gKwo+ ID4gIHN0YXRpYyB2b2lkCj4gPiAgaW50ZWxfZmlsbF9mYl9nZ3R0X3ZpZXcoc3RydWN0IGk5MTVf Z2d0dF92aWV3ICp2aWV3LAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gaW5k ZXggMGU5YTkyNmZjYTA0Li42OTkzZWZmNWRmYWYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiA+IEBAIC0xNTIzLDYgKzE1MjMsNyBAQCB1bnNpZ25lZCBpbnQgaW50ZWxfZmJf eHlfdG9fbGluZWFyKGludCB4LCBpbnQgeSwKPiA+ICB2b2lkIGludGVsX2FkZF9mYl9vZmZzZXRz KGludCAqeCwgaW50ICp5LAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlLCBpbnQgcGxhbmUpOwo+ID4gIHVuc2lnbmVkIGlu dCBpbnRlbF9yb3RhdGlvbl9pbmZvX3NpemUoY29uc3Qgc3RydWN0IGludGVsX3JvdGF0aW9uX2lu Zm8gKnJvdF9pbmZvKTsKPiA+ICt1bnNpZ25lZCBpbnQgaW50ZWxfcmVtYXBwZWRfaW5mb19zaXpl KGNvbnN0IHN0cnVjdCBpbnRlbF9yZW1hcHBlZF9pbmZvICpyZW1faW5mbyk7Cj4gPiAgYm9vbCBp bnRlbF9oYXNfcGVuZGluZ19mYl91bnBpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwo+ID4gIHZvaWQgaW50ZWxfbWFya19idXN5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4gPiAgdm9pZCBpbnRlbF9tYXJrX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvaTkxNV92bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3Zt YS5jCj4gPiBpbmRleCBmZmE3NDI5MGUwNTQuLjRmYzQ5YzI3ZjEzYyAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3ZtYS5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV92bWEuYwo+ID4gQEAgLTM5NSw4ICszOTUs OCBAQCBhc3NlcnRfcm90YXRlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ID4g ICAgICAgICByZXR1cm4gc2c7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyB1bnNpZ25lZCBpbnQg cm90YXRlZF9zaXplKGNvbnN0IHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9wbGFuZV9pbmZvICphLAo+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGludGVsX3Jv dGF0aW9uX3BsYW5lX2luZm8gKmIpCj4gPiArc3RhdGljIHVuc2lnbmVkIGludCByb3RhdGVkX3Np emUoY29uc3Qgc3RydWN0IGludGVsX3JlbWFwcGVkX3BsYW5lX2luZm8gKmEsCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfcGxh bmVfaW5mbyAqYikKPiA+ICB7Cj4gPiAgICAgICAgIHJldHVybiBhLT53aWR0aCAqIGEtPmhlaWdo dCArIGItPndpZHRoICogYi0+aGVpZ2h0Owo+ID4gIH0KPiA+IEBAIC00MDYsNyArNDA2LDcgQEAg c3RhdGljIGludCBpZ3Rfdm1hX3JvdGF0ZSh2b2lkICphcmcpCj4gPiAgICAgICAgIHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOwo+ID4gICAgICAgICBzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICp2bSA9ICZpOTE1LT5nZ3R0LnZtOwo+ID4gICAgICAgICBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqOwo+ID4gLSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcm90YXRp b25fcGxhbmVfaW5mbyBwbGFuZXNbXSA9IHsKPiA+ICsgICAgICAgY29uc3Qgc3RydWN0IGludGVs X3JlbWFwcGVkX3BsYW5lX2luZm8gcGxhbmVzW10gPSB7Cj4gPiAgICAgICAgICAgICAgICAgeyAu d2lkdGggPSAxLCAuaGVpZ2h0ID0gMSwgLnN0cmlkZSA9IDEgfSwKPiA+ICAgICAgICAgICAgICAg ICB7IC53aWR0aCA9IDIsIC5oZWlnaHQgPSAyLCAuc3RyaWRlID0gMiB9LAo+ID4gICAgICAgICAg ICAgICAgIHsgLndpZHRoID0gNCwgLmhlaWdodCA9IDQsIC5zdHJpZGUgPSA0IH0sCj4gCj4gVGhl IHF1ZXN0aW9uIG9uIHdoZXRoZXIgd2UgZG8gd2FudCBmZW5jZXMgaGVyZSBub3R3aXRoc3RhbmRp bmcsCj4gUmV2aWV3ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr Pgo+IC1DaHJpcwoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK