From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v4 3/8] drm/i915: Add a new "remapped" gtt_view Date: Fri, 26 Oct 2018 13:48:44 +0100 Message-ID: References: <20180925193714.25280-4-ville.syrjala@linux.intel.com> <20181023160236.9975-1-ville.syrjala@linux.intel.com> <3d7aa1df-7a94-2fdf-c02e-75c01c2db989@linux.intel.com> <20181026124337.GT9144@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 6491F6E1FD for ; Fri, 26 Oct 2018 12:48:47 +0000 (UTC) In-Reply-To: <20181026124337.GT9144@intel.com> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDI2LzEwLzIwMTggMTM6NDMsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiBPbiBGcmksIE9j dCAyNiwgMjAxOCBhdCAxMDoxOToyNUFNICswMTAwLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToKPj4K Pj4gT24gMjMvMTAvMjAxOCAxNzowMiwgVmlsbGUgU3lyamFsYSB3cm90ZToKPj4+IEZyb206IFZp bGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4+Pgo+Pj4gVG8g b3ZlcmNvbWUgZGlzcGxheSBlbmdpbmUgc3RyaWRlIGxpbWl0cyB3ZSdsbCB3YW50IHRvIHJlbWFw IHRoZQo+Pj4gcGFnZXMgaW4gdGhlIEdUVC4gVG8gdGhhdCBlbmQgd2UgbmVlZCBhIG5ldyBndHRf dmlldyB0eXBlIHdoaWNoCj4+PiBpcyBqdXN0IGxpa2UgdGhlICJyb3RhdGVkIiB0eXBlIGV4Y2Vw dCBub3Qgcm90YXRlZC4KPj4+Cj4+PiB2MjogVXNlIGludGVsX3JlbWFwcGVkX3BsYW5lX2luZm8g YmFzZSB0eXBlCj4+PiAgICAgICBzL3VudXNlZC91bnVzZWRfbWJ6LyAoQ2hyaXMpCj4+PiAgICAg ICBTZXBhcmF0ZSBCVUlMRF9CVUdfT04oKXMgKENocmlzKQo+Pj4gICAgICAgVXNlIEk5MTVfR1RU X1BBR0VfU0laRSAoQ2hyaXMpCj4+PiB2MzogVXNlIGk5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2Fk ZHJlc3MoKSAoQ2hyaXMpCj4+PiAgICAgICBUcmltIHRoZSBzZyAoVHZydGtvKQo+Pj4KPj4+IENj OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPj4+IENjOiBUdnJ0a28g VXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AbGludXguaW50ZWwuY29tPgo+Pj4gU2lnbmVkLW9mZi1i eTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPj4+IC0t LQo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgfCAxMiAr KysrCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgICB8IDc0 ICsrKysrKysrKysrKysrKysrKysrKysrCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuaCAgICAgICB8IDI1ICsrKysrKy0tCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3ZtYS5jICAgICAgICAgICB8ICA2ICstCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3ZtYS5oICAgICAgICAgICB8ICAzICsKPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyAgICAgIHwgMTEgKysrKwo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggICAgICAgICAgfCAgMSArCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaTkxNV92bWEuYyB8ICA2ICstCj4+PiAgICA4IGZpbGVzIGNoYW5nZWQsIDEz MCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCj4+PiBpbmRleCA1YjM3ZDVmOGUxMzIuLmNlMDE5MTI2MzA0ZCAxMDA2NDQK Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+Pj4gQEAgLTE5Niw2ICsxOTYsMTgg QEAgZGVzY3JpYmVfb2JqKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKPj4+ICAgIAkJCQkJICAgdm1hLT5nZ3R0X3ZpZXcucm90YXRlZC5wbGFuZVsx XS5vZmZzZXQpOwo+Pj4gICAgCQkJCWJyZWFrOwo+Pj4gICAgCj4+PiArCQkJY2FzZSBJOTE1X0dH VFRfVklFV19SRU1BUFBFRDoKPj4+ICsJCQkJc2VxX3ByaW50ZihtLCAiLCByZW1hcHBlZCBbKCV1 eCV1LCBzdHJpZGU9JXUsIG9mZnNldD0ldSksICgldXgldSwgc3RyaWRlPSV1LCBvZmZzZXQ9JXUp XSIsCj4+PiArCQkJCQkgICB2bWEtPmdndHRfdmlldy5yZW1hcHBlZC5wbGFuZVswXS53aWR0aCwK Pj4+ICsJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBdLmhlaWdodCwKPj4+ ICsJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBdLnN0cmlkZSwKPj4+ICsJ CQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBdLm9mZnNldCwKPj4+ICsJCQkJ CSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzFdLndpZHRoLAo+Pj4gKwkJCQkJICAg dm1hLT5nZ3R0X3ZpZXcucmVtYXBwZWQucGxhbmVbMV0uaGVpZ2h0LAo+Pj4gKwkJCQkJICAgdm1h LT5nZ3R0X3ZpZXcucmVtYXBwZWQucGxhbmVbMV0uc3RyaWRlLAo+Pj4gKwkJCQkJICAgdm1hLT5n Z3R0X3ZpZXcucmVtYXBwZWQucGxhbmVbMV0ub2Zmc2V0KTsKPj4+ICsJCQkJYnJlYWs7Cj4+PiAr Cj4+PiAgICAJCQlkZWZhdWx0Ogo+Pj4gICAgCQkJCU1JU1NJTkdfQ0FTRSh2bWEtPmdndHRfdmll dy50eXBlKTsKPj4+ICAgIAkJCQlicmVhazsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5jCj4+PiBpbmRleCA5OGQ5YTFlYjFlZDIuLmQwZTUwYjU4NGViZCAxMDA2NDQKPj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+Pj4gQEAgLTM3MDUsNiArMzcwNSw3NSBAQCBpbnRl bF9yb3RhdGVfcGFnZXMoc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gKnJvdF9pbmZvLAo+Pj4g ICAgCXJldHVybiBFUlJfUFRSKHJldCk7Cj4+PiAgICB9Cj4+PiAgICAKPj4+ICtzdGF0aWMgc3Ry dWN0IHNjYXR0ZXJsaXN0ICoKPj4+ICtyZW1hcF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAo+Pj4gKwkgICAgdW5zaWduZWQgaW50IHdp ZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0LAo+Pj4gKwkgICAgdW5zaWduZWQgaW50IHN0cmlkZSwK Pj4+ICsJICAgIHN0cnVjdCBzZ190YWJsZSAqc3QsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2cpCj4+ PiArewo+Pj4gKwl1bnNpZ25lZCBpbnQgY29sdW1uLCByb3c7Cj4+PiArCj4+PiArCWZvciAocm93 ID0gMDsgcm93IDwgaGVpZ2h0OyByb3crKykgewo+Pj4gKwkJZm9yIChjb2x1bW4gPSAwOyBjb2x1 bW4gPCB3aWR0aDsgY29sdW1uKyspIHsKPj4+ICsJCQlzdC0+bmVudHMrKzsKPj4+ICsJCQkvKiBX ZSBkb24ndCBuZWVkIHRoZSBwYWdlcywgYnV0IG5lZWQgdG8gaW5pdGlhbGl6ZQo+Pj4gKwkJCSAq IHRoZSBlbnRyaWVzIHNvIHRoZSBzZyBsaXN0IGNhbiBiZSBoYXBwaWx5IHRyYXZlcnNlZC4KPj4+ ICsJCQkgKiBUaGUgb25seSB0aGluZyB3ZSBuZWVkIGFyZSBETUEgYWRkcmVzc2VzLgo+Pj4gKwkJ CSAqLwo+Pj4gKwkJCXNnX3NldF9wYWdlKHNnLCBOVUxMLCBJOTE1X0dUVF9QQUdFX1NJWkUsIDAp Owo+Pj4gKwkJCXNnX2RtYV9hZGRyZXNzKHNnKSA9Cj4+PiArCQkJCWk5MTVfZ2VtX29iamVjdF9n ZXRfZG1hX2FkZHJlc3Mob2JqLCBvZmZzZXQgKyBjb2x1bW4pOwo+Pj4gKwkJCXNnX2RtYV9sZW4o c2cpID0gSTkxNV9HVFRfUEFHRV9TSVpFOwo+Pgo+PiBTZyB0cmltIHdpbGwgZG8gbm90aGluZyBz aW5jZSB0aGUgbmVudHMgaXMgZXF1YWwgdG8gbnVtIHBhZ2VzLiBUbwo+PiBiZW5lZml0IGZyb20g aXQsIHlvdSB3b3VsZCBuZWVkIHRvIGxvb2sgZm9yIGNvbnNlY3V0aXZlIERNQSBhZGRyZXNzZXMK Pj4gYW5kICJhcHBlbmQiIHRvIHRoZSBleGlzdGluZyBzZyBlbnRyeSBpbiB0aG9zZSBjYXNlcy4K PiAKPiBIbW0uIEkgdGhvdWdodCB0aGF0IGlzIHdoYXQgc2dfdHJpbSgpIGRvZXMuIEkgZ3Vlc3Mg bm90LgoKQWguLiBubywgaXQganVzdCBkaXNjYXJkcyB0aGUgdW51c2VkIHNnIGVudHJpZXMsIHRo ZSBkaWZmZXJlbmNlIGZyb20gCnNnLT5uZW50cyB0byBzZy0+b3JpZ19uZW50cy4KCldoYXQgeW91 IHRob3VnaHQgaXQgZG9lcyBjb3VsZCBiZSBjYWxsZWQgaTkxNV9zZ19jb2FsZXNjZSwgb3B0aW1p emUsIG9yIApzb21ldGhpbmcuIE1heWJlIGl0IHdvdWxkIG1ha2Ugc2Vuc2UgdG8gYWRkIHRoaXMg a2luZCBvZiBoZWxwZXIgaWYgdGhlcmUgCmFyZSBzdWZmaWNpZW50IHVzZXJzLiBJdCBzaG91bGQg YmUgZG9hYmxlIGluIHBsYWNlIHdpdGhvdXQgdG9vIG11Y2ggCnRyb3VibGUgSSB0aGluay4KClJl Z2FyZHMsCgpUdnJ0a28KCj4+IENvbnRyYXJ5IHRvIHRoZQo+PiByb3RhdGVkIHJlbWFwLCB0aGlz IG9uZSBzaG91bGQgYWN0dWFsbHkgYmVuZWZpdCBhIGxvdCBmcm9tIGl0LiAoRm9yIHRoaXMKPj4g cmVhc29uIHJvdGF0ZWQgcmVtYXAgZG9lcyBub3QgYm90aGVyIHRvIHRyeSBpdCAtIGl0IHdvdWxk IGJlIHNvbWUgbHVjawo+PiB0byBmaW5kIGNvbnNlY3V0aXZlIHBhZ2VzIGFmdGVyIHJvdGF0aW9u LikKPj4KPj4gUmVnYXJkcywKPj4KPj4gVHZydGtvCj4+Cj4+PiArCQkJc2cgPSBzZ19uZXh0KHNn KTsKPj4+ICsJCX0KPj4+ICsJCW9mZnNldCArPSBzdHJpZGU7Cj4+PiArCX0KPj4+ICsKPj4+ICsJ cmV0dXJuIHNnOwo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMgbm9pbmxpbmUgc3RydWN0IHNnX3Rh YmxlICoKPj4+ICtpbnRlbF9yZW1hcF9wYWdlcyhzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfaW5mbyAq cmVtX2luZm8sCj4+PiArCQkgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4+PiAr ewo+Pj4gKwl1bnNpZ25lZCBpbnQgc2l6ZSA9IGludGVsX3JlbWFwcGVkX2luZm9fc2l6ZShyZW1f aW5mbyk7Cj4+PiArCXN0cnVjdCBzZ190YWJsZSAqc3Q7Cj4+PiArCXN0cnVjdCBzY2F0dGVybGlz dCAqc2c7Cj4+PiArCWludCByZXQgPSAtRU5PTUVNOwo+Pj4gKwlpbnQgaTsKPj4+ICsKPj4+ICsJ LyogQWxsb2NhdGUgdGFyZ2V0IFNHIGxpc3QuICovCj4+PiArCXN0ID0ga21hbGxvYyhzaXplb2Yo KnN0KSwgR0ZQX0tFUk5FTCk7Cj4+PiArCWlmICghc3QpCj4+PiArCQlnb3RvIGVycl9zdF9hbGxv YzsKPj4+ICsKPj4+ICsJcmV0ID0gc2dfYWxsb2NfdGFibGUoc3QsIHNpemUsIEdGUF9LRVJORUwp Owo+Pj4gKwlpZiAocmV0KQo+Pj4gKwkJZ290byBlcnJfc2dfYWxsb2M7Cj4+PiArCj4+PiArCXN0 LT5uZW50cyA9IDA7Cj4+PiArCXNnID0gc3QtPnNnbDsKPj4+ICsKPj4+ICsJZm9yIChpID0gMCA7 IGkgPCBBUlJBWV9TSVpFKHJlbV9pbmZvLT5wbGFuZSk7IGkrKykgewo+Pj4gKwkJc2cgPSByZW1h cF9wYWdlcyhvYmosIHJlbV9pbmZvLT5wbGFuZVtpXS5vZmZzZXQsCj4+PiArCQkJCSByZW1faW5m by0+cGxhbmVbaV0ud2lkdGgsIHJlbV9pbmZvLT5wbGFuZVtpXS5oZWlnaHQsCj4+PiArCQkJCSBy ZW1faW5mby0+cGxhbmVbaV0uc3RyaWRlLCBzdCwgc2cpOwo+Pj4gKwl9Cj4+PiArCj4+PiArCWk5 MTVfc2dfdHJpbShzdCk7Cj4+PiArCj4+PiArCXJldHVybiBzdDsKPj4+ICsKPj4+ICtlcnJfc2df YWxsb2M6Cj4+PiArCWtmcmVlKHN0KTsKPj4+ICtlcnJfc3RfYWxsb2M6Cj4+PiArCj4+PiArCURS TV9ERUJVR19EUklWRVIoIkZhaWxlZCB0byBjcmVhdGUgcmVtYXBwZWQgbWFwcGluZyBmb3Igb2Jq ZWN0IHNpemUgJXp1ISAoJXV4JXUgdGlsZXMsICV1IHBhZ2VzKVxuIiwKPj4+ICsJCQkgb2JqLT5i YXNlLnNpemUsIHJlbV9pbmZvLT5wbGFuZVswXS53aWR0aCwgcmVtX2luZm8tPnBsYW5lWzBdLmhl aWdodCwgc2l6ZSk7Cj4+PiArCj4+PiArCXJldHVybiBFUlJfUFRSKHJldCk7Cj4+PiArfQo+Pj4g Kwo+Pj4gICAgc3RhdGljIG5vaW5saW5lIHN0cnVjdCBzZ190YWJsZSAqCj4+PiAgICBpbnRlbF9w YXJ0aWFsX3BhZ2VzKGNvbnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyAqdmlldywKPj4+ICAgIAkJ ICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4+PiBAQCAtMzc4Myw2ICszODUy LDExIEBAIGk5MTVfZ2V0X2dndHRfdm1hX3BhZ2VzKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+Pj4g ICAgCQkJaW50ZWxfcm90YXRlX3BhZ2VzKCZ2bWEtPmdndHRfdmlldy5yb3RhdGVkLCB2bWEtPm9i aik7Cj4+PiAgICAJCWJyZWFrOwo+Pj4gICAgCj4+PiArCWNhc2UgSTkxNV9HR1RUX1ZJRVdfUkVN QVBQRUQ6Cj4+PiArCQl2bWEtPnBhZ2VzID0KPj4+ICsJCQlpbnRlbF9yZW1hcF9wYWdlcygmdm1h LT5nZ3R0X3ZpZXcucmVtYXBwZWQsIHZtYS0+b2JqKTsKPj4+ICsJCWJyZWFrOwo+Pj4gKwo+Pj4g ICAgCWNhc2UgSTkxNV9HR1RUX1ZJRVdfUEFSVElBTDoKPj4+ICAgIAkJdm1hLT5wYWdlcyA9IGlu dGVsX3BhcnRpYWxfcGFnZXMoJnZtYS0+Z2d0dF92aWV3LCB2bWEtPm9iaik7Cj4+PiAgICAJCWJy ZWFrOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPj4+IGluZGV4IDdlMmFmNWY0 ZjM5Yi4uNjlhMjJmNTdlNmNhIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5oCj4+PiBAQCAtMTYwLDExICsxNjAsMTggQEAgdHlwZWRlZiB1NjQgZ2VuOF9wcGd0dF9wbWw0 ZV90Owo+Pj4gICAgCj4+PiAgICBzdHJ1Y3Qgc2dfdGFibGU7Cj4+PiAgICAKPj4+ICtzdHJ1Y3Qg aW50ZWxfcmVtYXBwZWRfcGxhbmVfaW5mbyB7Cj4+PiArCS8qIGluIGd0dCBwYWdlcyAqLwo+Pj4g Kwl1bnNpZ25lZCBpbnQgd2lkdGgsIGhlaWdodCwgc3RyaWRlLCBvZmZzZXQ7Cj4+PiArfSBfX3Bh Y2tlZDsKPj4+ICsKPj4+ICtzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfaW5mbyB7Cj4+PiArCXN0cnVj dCBpbnRlbF9yZW1hcHBlZF9wbGFuZV9pbmZvIHBsYW5lWzJdOwo+Pj4gKwl1bnNpZ25lZCBpbnQg dW51c2VkX21iejsKPj4+ICt9IF9fcGFja2VkOwo+Pj4gKwo+Pj4gICAgc3RydWN0IGludGVsX3Jv dGF0aW9uX2luZm8gewo+Pj4gLQlzdHJ1Y3QgaW50ZWxfcm90YXRpb25fcGxhbmVfaW5mbyB7Cj4+ PiAtCQkvKiB0aWxlcyAqLwo+Pj4gLQkJdW5zaWduZWQgaW50IHdpZHRoLCBoZWlnaHQsIHN0cmlk ZSwgb2Zmc2V0Owo+Pj4gLQl9IHBsYW5lWzJdOwo+Pj4gKwlzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRf cGxhbmVfaW5mbyBwbGFuZVsyXTsKPj4+ICAgIH0gX19wYWNrZWQ7Cj4+PiAgICAKPj4+ICAgIHN0 cnVjdCBpbnRlbF9wYXJ0aWFsX2luZm8gewo+Pj4gQEAgLTE3NiwxMiArMTgzLDIwIEBAIGVudW0g aTkxNV9nZ3R0X3ZpZXdfdHlwZSB7Cj4+PiAgICAJSTkxNV9HR1RUX1ZJRVdfTk9STUFMID0gMCwK Pj4+ICAgIAlJOTE1X0dHVFRfVklFV19ST1RBVEVEID0gc2l6ZW9mKHN0cnVjdCBpbnRlbF9yb3Rh dGlvbl9pbmZvKSwKPj4+ICAgIAlJOTE1X0dHVFRfVklFV19QQVJUSUFMID0gc2l6ZW9mKHN0cnVj dCBpbnRlbF9wYXJ0aWFsX2luZm8pLAo+Pj4gKwlJOTE1X0dHVFRfVklFV19SRU1BUFBFRCA9IHNp emVvZihzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfaW5mbyksCj4+PiAgICB9Owo+Pj4gICAgCj4+PiAg ICBzdGF0aWMgaW5saW5lIHZvaWQgYXNzZXJ0X2k5MTVfZ2VtX2d0dF90eXBlcyh2b2lkKQo+Pj4g ICAgewo+Pj4gICAgCUJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IGludGVsX3JvdGF0aW9uX2lu Zm8pICE9IDgqc2l6ZW9mKHVuc2lnbmVkIGludCkpOwo+Pj4gICAgCUJVSUxEX0JVR19PTihzaXpl b2Yoc3RydWN0IGludGVsX3BhcnRpYWxfaW5mbykgIT0gc2l6ZW9mKHU2NCkgKyBzaXplb2YodW5z aWduZWQgaW50KSk7Cj4+PiArCUJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IGludGVsX3JlbWFw cGVkX2luZm8pICE9IDkqc2l6ZW9mKHVuc2lnbmVkIGludCkpOwo+Pj4gKwo+Pj4gKwkvKiBDaGVj ayB0aGF0IHJvdGF0aW9uL3JlbWFwcGVkIHNoYXJlcyBvZmZzZXRzIGZvciBzaW1wbGljaXR5ICov Cj4+PiArCUJVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfaW5mbywg cGxhbmVbMF0pICE9Cj4+PiArCQkgICAgIG9mZnNldG9mKHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9p bmZvLCBwbGFuZVswXSkpOwo+Pj4gKwlCVUlMRF9CVUdfT04ob2Zmc2V0b2ZlbmQoc3RydWN0IGlu dGVsX3JlbWFwcGVkX2luZm8sIHBsYW5lWzFdKSAhPQo+Pj4gKwkJICAgICBvZmZzZXRvZmVuZChz dHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbywgcGxhbmVbMV0pKTsKPj4+ICAgIAo+Pj4gICAgCS8q IEFzIHdlIGVuY29kZSB0aGUgc2l6ZSBvZiBlYWNoIGJyYW5jaCBpbnNpZGUgdGhlIHVuaW9uIGlu dG8gaXRzIHR5cGUsCj4+PiAgICAJICogd2UgaGF2ZSB0byBiZSBjYXJlZnVsIHRoYXQgZWFjaCBi cmFuY2ggaGFzIGEgdW5pcXVlIHNpemUuCj4+PiBAQCAtMTkwLDYgKzIwNSw3IEBAIHN0YXRpYyBp bmxpbmUgdm9pZCBhc3NlcnRfaTkxNV9nZW1fZ3R0X3R5cGVzKHZvaWQpCj4+PiAgICAJY2FzZSBJ OTE1X0dHVFRfVklFV19OT1JNQUw6Cj4+PiAgICAJY2FzZSBJOTE1X0dHVFRfVklFV19QQVJUSUFM Ogo+Pj4gICAgCWNhc2UgSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRDoKPj4+ICsJY2FzZSBJOTE1X0dH VFRfVklFV19SRU1BUFBFRDoKPj4+ICAgIAkJLyogZ2NjIGNvbXBsYWlucyBpZiB0aGVzZSBhcmUg aWRlbnRpY2FsIGNhc2VzICovCj4+PiAgICAJCWJyZWFrOwo+Pj4gICAgCX0KPj4+IEBAIC0yMDEs NiArMjE3LDcgQEAgc3RydWN0IGk5MTVfZ2d0dF92aWV3IHsKPj4+ICAgIAkJLyogTWVtYmVycyBu ZWVkIHRvIGNvbnRhaW4gbm8gaG9sZXMvcGFkZGluZyAqLwo+Pj4gICAgCQlzdHJ1Y3QgaW50ZWxf cGFydGlhbF9pbmZvIHBhcnRpYWw7Cj4+PiAgICAJCXN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZv IHJvdGF0ZWQ7Cj4+PiArCQlzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfaW5mbyByZW1hcHBlZDsKPj4+ ICAgIAl9Owo+Pj4gICAgfTsKPj4+ICAgIAo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfdm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCj4+PiBp bmRleCA4MjY1MmMzZDFiZWQuLjIwNzBlNDRlYWEwMyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfdm1hLmMKPj4+IEBAIC0xNjQsNiArMTY0LDkgQEAgdm1hX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAo+Pj4gICAgCQl9IGVsc2UgaWYgKHZpZXctPnR5cGUgPT0gSTkx NV9HR1RUX1ZJRVdfUk9UQVRFRCkgewo+Pj4gICAgCQkJdm1hLT5zaXplID0gaW50ZWxfcm90YXRp b25faW5mb19zaXplKCZ2aWV3LT5yb3RhdGVkKTsKPj4+ICAgIAkJCXZtYS0+c2l6ZSA8PD0gUEFH RV9TSElGVDsKPj4+ICsJCX0gZWxzZSBpZiAodmlldy0+dHlwZSA9PSBJOTE1X0dHVFRfVklFV19S RU1BUFBFRCkgewo+Pj4gKwkJCXZtYS0+c2l6ZSA9IGludGVsX3JlbWFwcGVkX2luZm9fc2l6ZSgm dmlldy0+cmVtYXBwZWQpOwo+Pj4gKwkJCXZtYS0+c2l6ZSA8PD0gUEFHRV9TSElGVDsKPj4+ICAg IAkJfQo+Pj4gICAgCX0KPj4+ICAgIAo+Pj4gQEAgLTQ2NCw3ICs0NjcsOCBAQCB2b2lkIF9faTkx NV92bWFfc2V0X21hcF9hbmRfZmVuY2VhYmxlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+Pj4gICAg CSAqIEV4cGxpY2l0bHkgZGlzYWJsZSBmb3Igcm90YXRlZCBWTUEgc2luY2UgdGhlIGRpc3BsYXkg ZG9lcyBub3QKPj4+ICAgIAkgKiBuZWVkIHRoZSBmZW5jZSBhbmQgdGhlIFZNQSBpcyBub3QgYWNj ZXNzaWJsZSB0byBvdGhlciB1c2Vycy4KPj4+ICAgIAkgKi8KPj4+IC0JaWYgKHZtYS0+Z2d0dF92 aWV3LnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCkKPj4+ICsJaWYgKHZtYS0+Z2d0dF92 aWV3LnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCB8fAo+Pj4gKwkgICAgdm1hLT5nZ3R0 X3ZpZXcudHlwZSA9PSBJOTE1X0dHVFRfVklFV19SRU1BUFBFRCkKPj4+ICAgIAkJcmV0dXJuOwo+ Pj4gICAgCj4+PiAgICAJZmVuY2VhYmxlID0gKHZtYS0+bm9kZS5zaXplID49IHZtYS0+ZmVuY2Vf c2l6ZSAmJgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oCj4+PiBpbmRleCA0ZjdjMWM3NTk5ZjQu LjY0Y2YwMjljMDI4YSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf dm1hLmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmgKPj4+IEBAIC0y NjUsOCArMjY1LDExIEBAIGk5MTVfdm1hX2NvbXBhcmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4+ PiAgICAJICovCj4+PiAgICAJQlVJTERfQlVHX09OKEk5MTVfR0dUVF9WSUVXX05PUk1BTCA+PSBJ OTE1X0dHVFRfVklFV19QQVJUSUFMKTsKPj4+ICAgIAlCVUlMRF9CVUdfT04oSTkxNV9HR1RUX1ZJ RVdfUEFSVElBTCA+PSBJOTE1X0dHVFRfVklFV19ST1RBVEVEKTsKPj4+ICsJQlVJTERfQlVHX09O KEk5MTVfR0dUVF9WSUVXX1JPVEFURUQgPj0gSTkxNV9HR1RUX1ZJRVdfUkVNQVBQRUQpOwo+Pj4g ICAgCUJVSUxEX0JVR19PTihvZmZzZXRvZih0eXBlb2YoKnZpZXcpLCByb3RhdGVkKSAhPQo+Pj4g ICAgCQkgICAgIG9mZnNldG9mKHR5cGVvZigqdmlldyksIHBhcnRpYWwpKTsKPj4+ICsJQlVJTERf QlVHX09OKG9mZnNldG9mKHR5cGVvZigqdmlldyksIHJvdGF0ZWQpICE9Cj4+PiArCQkgICAgIG9m ZnNldG9mKHR5cGVvZigqdmlldyksIHJlbWFwcGVkKSk7Cj4+PiAgICAJcmV0dXJuIG1lbWNtcCgm dm1hLT5nZ3R0X3ZpZXcucGFydGlhbCwgJnZpZXctPnBhcnRpYWwsIHZpZXctPnR5cGUpOwo+Pj4g ICAgfQo+Pj4gICAgCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+PiBpbmRl eCA4YTBiNDc3YTY5ZDMuLjQxZjdlMDc5NWIxNCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4+PiBAQCAtMTk1Nyw2ICsxOTU3LDE3IEBAIHVuc2lnbmVkIGludCBp bnRlbF9yb3RhdGlvbl9pbmZvX3NpemUoY29uc3Qgc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8g KnJvdF9pbmZvCj4+PiAgICAJcmV0dXJuIHNpemU7Cj4+PiAgICB9Cj4+PiAgICAKPj4+ICt1bnNp Z25lZCBpbnQgaW50ZWxfcmVtYXBwZWRfaW5mb19zaXplKGNvbnN0IHN0cnVjdCBpbnRlbF9yZW1h cHBlZF9pbmZvICpyZW1faW5mbykKPj4+ICt7Cj4+PiArCXVuc2lnbmVkIGludCBzaXplID0gMDsK Pj4+ICsJaW50IGk7Cj4+PiArCj4+PiArCWZvciAoaSA9IDAgOyBpIDwgQVJSQVlfU0laRShyZW1f aW5mby0+cGxhbmUpOyBpKyspCj4+PiArCQlzaXplICs9IHJlbV9pbmZvLT5wbGFuZVtpXS53aWR0 aCAqIHJlbV9pbmZvLT5wbGFuZVtpXS5oZWlnaHQ7Cj4+PiArCj4+PiArCXJldHVybiBzaXplOwo+ Pj4gK30KPj4+ICsKPj4+ICAgIHN0YXRpYyB2b2lkCj4+PiAgICBpbnRlbF9maWxsX2ZiX2dndHRf dmlldyhzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcsCj4+PiAgICAJCQljb25zdCBzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiwKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+PiBpbmRl eCAwZTlhOTI2ZmNhMDQuLjY5OTNlZmY1ZGZhZiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+Pj4gQEAgLTE1MjMsNiArMTUyMyw3IEBAIHVuc2lnbmVkIGludCBpbnRlbF9mYl94 eV90b19saW5lYXIoaW50IHgsIGludCB5LAo+Pj4gICAgdm9pZCBpbnRlbF9hZGRfZmJfb2Zmc2V0 cyhpbnQgKngsIGludCAqeSwKPj4+ICAgIAkJCSAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpzdGF0ZSwgaW50IHBsYW5lKTsKPj4+ICAgIHVuc2lnbmVkIGludCBpbnRlbF9yb3RhdGlv bl9pbmZvX3NpemUoY29uc3Qgc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gKnJvdF9pbmZvKTsK Pj4+ICt1bnNpZ25lZCBpbnQgaW50ZWxfcmVtYXBwZWRfaW5mb19zaXplKGNvbnN0IHN0cnVjdCBp bnRlbF9yZW1hcHBlZF9pbmZvICpyZW1faW5mbyk7Cj4+PiAgICBib29sIGludGVsX2hhc19wZW5k aW5nX2ZiX3VucGluKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+PiAgICB2 b2lkIGludGVsX21hcmtfYnVzeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ Pj4gICAgdm9pZCBpbnRlbF9tYXJrX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkx NV92bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3ZtYS5jCj4+PiBp bmRleCBmZmE3NDI5MGUwNTQuLjRmYzQ5YzI3ZjEzYyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3ZtYS5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaTkxNV92bWEuYwo+Pj4gQEAgLTM5NSw4ICszOTUsOCBAQCBhc3Nl cnRfcm90YXRlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+Pj4gICAgCXJldHVy biBzZzsKPj4+ICAgIH0KPj4+ICAgIAo+Pj4gLXN0YXRpYyB1bnNpZ25lZCBpbnQgcm90YXRlZF9z aXplKGNvbnN0IHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9wbGFuZV9pbmZvICphLAo+Pj4gLQkJCQkg Y29uc3Qgc3RydWN0IGludGVsX3JvdGF0aW9uX3BsYW5lX2luZm8gKmIpCj4+PiArc3RhdGljIHVu c2lnbmVkIGludCByb3RhdGVkX3NpemUoY29uc3Qgc3RydWN0IGludGVsX3JlbWFwcGVkX3BsYW5l X2luZm8gKmEsCj4+PiArCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfcGxhbmVfaW5m byAqYikKPj4+ICAgIHsKPj4+ICAgIAlyZXR1cm4gYS0+d2lkdGggKiBhLT5oZWlnaHQgKyBiLT53 aWR0aCAqIGItPmhlaWdodDsKPj4+ICAgIH0KPj4+IEBAIC00MDYsNyArNDA2LDcgQEAgc3RhdGlj IGludCBpZ3Rfdm1hX3JvdGF0ZSh2b2lkICphcmcpCj4+PiAgICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUgPSBhcmc7Cj4+PiAgICAJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0g PSAmaTkxNS0+Z2d0dC52bTsKPj4+ICAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq Owo+Pj4gLQljb25zdCBzdHJ1Y3QgaW50ZWxfcm90YXRpb25fcGxhbmVfaW5mbyBwbGFuZXNbXSA9 IHsKPj4+ICsJY29uc3Qgc3RydWN0IGludGVsX3JlbWFwcGVkX3BsYW5lX2luZm8gcGxhbmVzW10g PSB7Cj4+PiAgICAJCXsgLndpZHRoID0gMSwgLmhlaWdodCA9IDEsIC5zdHJpZGUgPSAxIH0sCj4+ PiAgICAJCXsgLndpZHRoID0gMiwgLmhlaWdodCA9IDIsIC5zdHJpZGUgPSAyIH0sCj4+PiAgICAJ CXsgLndpZHRoID0gNCwgLmhlaWdodCA9IDQsIC5zdHJpZGUgPSA0IH0sCj4+Pgo+IApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK