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 10:19:25 +0100 Message-ID: <3d7aa1df-7a94-2fdf-c02e-75c01c2db989@linux.intel.com> References: <20180925193714.25280-4-ville.syrjala@linux.intel.com> <20181023160236.9975-1-ville.syrjala@linux.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 A0A3B6E42E for ; Fri, 26 Oct 2018 09:19:46 +0000 (UTC) In-Reply-To: <20181023160236.9975-1-ville.syrjala@linux.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: Ville Syrjala , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIzLzEwLzIwMTggMTc6MDIsIFZpbGxlIFN5cmphbGEgd3JvdGU6Cj4gRnJvbTogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiAKPiBUbyBvdmVyY29t ZSBkaXNwbGF5IGVuZ2luZSBzdHJpZGUgbGltaXRzIHdlJ2xsIHdhbnQgdG8gcmVtYXAgdGhlCj4g cGFnZXMgaW4gdGhlIEdUVC4gVG8gdGhhdCBlbmQgd2UgbmVlZCBhIG5ldyBndHRfdmlldyB0eXBl IHdoaWNoCj4gaXMganVzdCBsaWtlIHRoZSAicm90YXRlZCIgdHlwZSBleGNlcHQgbm90IHJvdGF0 ZWQuCj4gCj4gdjI6IFVzZSBpbnRlbF9yZW1hcHBlZF9wbGFuZV9pbmZvIGJhc2UgdHlwZQo+ICAg ICAgcy91bnVzZWQvdW51c2VkX21iei8gKENocmlzKQo+ICAgICAgU2VwYXJhdGUgQlVJTERfQlVH X09OKClzIChDaHJpcykKPiAgICAgIFVzZSBJOTE1X0dUVF9QQUdFX1NJWkUgKENocmlzKQo+IHYz OiBVc2UgaTkxNV9nZW1fb2JqZWN0X2dldF9kbWFfYWRkcmVzcygpIChDaHJpcykKPiAgICAgIFRy aW0gdGhlIHNnIChUdnJ0a28pCj4gCj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2ls c29uLmNvLnVrPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AbGludXguaW50 ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYyAgICAgICB8IDEyICsrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5jICAgICAgIHwgNzQgKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2d0dC5oICAgICAgIHwgMjUgKysrKysrLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfdm1hLmMgICAgICAgICAgIHwgIDYgKy0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfdm1hLmggICAgICAgICAgIHwgIDMgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jICAgICAgfCAxMSArKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCAgICAgICAgICB8ICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9pOTE1X3ZtYS5jIHwgIDYgKy0KPiAgIDggZmlsZXMgY2hhbmdlZCwgMTMwIGluc2Vy dGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMKPiBpbmRleCA1YjM3ZDVmOGUxMzIuLmNlMDE5MTI2MzA0ZCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jCj4gQEAgLTE5Niw2ICsxOTYsMTggQEAgZGVzY3JpYmVfb2JqKHN0 cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiAgIAkJ CQkJICAgdm1hLT5nZ3R0X3ZpZXcucm90YXRlZC5wbGFuZVsxXS5vZmZzZXQpOwo+ICAgCQkJCWJy ZWFrOwo+ICAgCj4gKwkJCWNhc2UgSTkxNV9HR1RUX1ZJRVdfUkVNQVBQRUQ6Cj4gKwkJCQlzZXFf cHJpbnRmKG0sICIsIHJlbWFwcGVkIFsoJXV4JXUsIHN0cmlkZT0ldSwgb2Zmc2V0PSV1KSwgKCV1 eCV1LCBzdHJpZGU9JXUsIG9mZnNldD0ldSldIiwKPiArCQkJCQkgICB2bWEtPmdndHRfdmlldy5y ZW1hcHBlZC5wbGFuZVswXS53aWR0aCwKPiArCQkJCQkgICB2bWEtPmdndHRfdmlldy5yZW1hcHBl ZC5wbGFuZVswXS5oZWlnaHQsCj4gKwkJCQkJICAgdm1hLT5nZ3R0X3ZpZXcucmVtYXBwZWQucGxh bmVbMF0uc3RyaWRlLAo+ICsJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBd Lm9mZnNldCwKPiArCQkJCQkgICB2bWEtPmdndHRfdmlldy5yZW1hcHBlZC5wbGFuZVsxXS53aWR0 aCwKPiArCQkJCQkgICB2bWEtPmdndHRfdmlldy5yZW1hcHBlZC5wbGFuZVsxXS5oZWlnaHQsCj4g KwkJCQkJICAgdm1hLT5nZ3R0X3ZpZXcucmVtYXBwZWQucGxhbmVbMV0uc3RyaWRlLAo+ICsJCQkJ CSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzFdLm9mZnNldCk7Cj4gKwkJCQlicmVh azsKPiArCj4gICAJCQlkZWZhdWx0Ogo+ICAgCQkJCU1JU1NJTkdfQ0FTRSh2bWEtPmdndHRfdmll dy50eXBlKTsKPiAgIAkJCQlicmVhazsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ IGluZGV4IDk4ZDlhMWViMWVkMi4uZDBlNTBiNTg0ZWJkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKPiBAQCAtMzcwNSw2ICszNzA1LDc1IEBAIGludGVsX3JvdGF0ZV9wYWdl cyhzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyAqcm90X2luZm8sCj4gICAJcmV0dXJuIEVSUl9Q VFIocmV0KTsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgc3RydWN0IHNjYXR0ZXJsaXN0ICoKPiArcmVt YXBfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgdW5zaWduZWQgaW50IG9m ZnNldCwKPiArCSAgICB1bnNpZ25lZCBpbnQgd2lkdGgsIHVuc2lnbmVkIGludCBoZWlnaHQsCj4g KwkgICAgdW5zaWduZWQgaW50IHN0cmlkZSwKPiArCSAgICBzdHJ1Y3Qgc2dfdGFibGUgKnN0LCBz dHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnKQo+ICt7Cj4gKwl1bnNpZ25lZCBpbnQgY29sdW1uLCByb3c7 Cj4gKwo+ICsJZm9yIChyb3cgPSAwOyByb3cgPCBoZWlnaHQ7IHJvdysrKSB7Cj4gKwkJZm9yIChj b2x1bW4gPSAwOyBjb2x1bW4gPCB3aWR0aDsgY29sdW1uKyspIHsKPiArCQkJc3QtPm5lbnRzKys7 Cj4gKwkJCS8qIFdlIGRvbid0IG5lZWQgdGhlIHBhZ2VzLCBidXQgbmVlZCB0byBpbml0aWFsaXpl Cj4gKwkJCSAqIHRoZSBlbnRyaWVzIHNvIHRoZSBzZyBsaXN0IGNhbiBiZSBoYXBwaWx5IHRyYXZl cnNlZC4KPiArCQkJICogVGhlIG9ubHkgdGhpbmcgd2UgbmVlZCBhcmUgRE1BIGFkZHJlc3Nlcy4K PiArCQkJICovCj4gKwkJCXNnX3NldF9wYWdlKHNnLCBOVUxMLCBJOTE1X0dUVF9QQUdFX1NJWkUs IDApOwo+ICsJCQlzZ19kbWFfYWRkcmVzcyhzZykgPQo+ICsJCQkJaTkxNV9nZW1fb2JqZWN0X2dl dF9kbWFfYWRkcmVzcyhvYmosIG9mZnNldCArIGNvbHVtbik7Cj4gKwkJCXNnX2RtYV9sZW4oc2cp ID0gSTkxNV9HVFRfUEFHRV9TSVpFOwoKU2cgdHJpbSB3aWxsIGRvIG5vdGhpbmcgc2luY2UgdGhl IG5lbnRzIGlzIGVxdWFsIHRvIG51bSBwYWdlcy4gVG8gCmJlbmVmaXQgZnJvbSBpdCwgeW91IHdv dWxkIG5lZWQgdG8gbG9vayBmb3IgY29uc2VjdXRpdmUgRE1BIGFkZHJlc3NlcyAKYW5kICJhcHBl bmQiIHRvIHRoZSBleGlzdGluZyBzZyBlbnRyeSBpbiB0aG9zZSBjYXNlcy4gQ29udHJhcnkgdG8g dGhlIApyb3RhdGVkIHJlbWFwLCB0aGlzIG9uZSBzaG91bGQgYWN0dWFsbHkgYmVuZWZpdCBhIGxv dCBmcm9tIGl0LiAoRm9yIHRoaXMgCnJlYXNvbiByb3RhdGVkIHJlbWFwIGRvZXMgbm90IGJvdGhl ciB0byB0cnkgaXQgLSBpdCB3b3VsZCBiZSBzb21lIGx1Y2sgCnRvIGZpbmQgY29uc2VjdXRpdmUg cGFnZXMgYWZ0ZXIgcm90YXRpb24uKQoKUmVnYXJkcywKClR2cnRrbwoKPiArCQkJc2cgPSBzZ19u ZXh0KHNnKTsKPiArCQl9Cj4gKwkJb2Zmc2V0ICs9IHN0cmlkZTsKPiArCX0KPiArCj4gKwlyZXR1 cm4gc2c7Cj4gK30KPiArCj4gK3N0YXRpYyBub2lubGluZSBzdHJ1Y3Qgc2dfdGFibGUgKgo+ICtp bnRlbF9yZW1hcF9wYWdlcyhzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfaW5mbyAqcmVtX2luZm8sCj4g KwkJICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICt7Cj4gKwl1bnNpZ25lZCBp bnQgc2l6ZSA9IGludGVsX3JlbWFwcGVkX2luZm9fc2l6ZShyZW1faW5mbyk7Cj4gKwlzdHJ1Y3Qg c2dfdGFibGUgKnN0Owo+ICsJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKPiArCWludCByZXQgPSAt RU5PTUVNOwo+ICsJaW50IGk7Cj4gKwo+ICsJLyogQWxsb2NhdGUgdGFyZ2V0IFNHIGxpc3QuICov Cj4gKwlzdCA9IGttYWxsb2Moc2l6ZW9mKCpzdCksIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFzdCkK PiArCQlnb3RvIGVycl9zdF9hbGxvYzsKPiArCj4gKwlyZXQgPSBzZ19hbGxvY190YWJsZShzdCwg c2l6ZSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZXJyX3NnX2FsbG9jOwo+ ICsKPiArCXN0LT5uZW50cyA9IDA7Cj4gKwlzZyA9IHN0LT5zZ2w7Cj4gKwo+ICsJZm9yIChpID0g MCA7IGkgPCBBUlJBWV9TSVpFKHJlbV9pbmZvLT5wbGFuZSk7IGkrKykgewo+ICsJCXNnID0gcmVt YXBfcGFnZXMob2JqLCByZW1faW5mby0+cGxhbmVbaV0ub2Zmc2V0LAo+ICsJCQkJIHJlbV9pbmZv LT5wbGFuZVtpXS53aWR0aCwgcmVtX2luZm8tPnBsYW5lW2ldLmhlaWdodCwKPiArCQkJCSByZW1f aW5mby0+cGxhbmVbaV0uc3RyaWRlLCBzdCwgc2cpOwo+ICsJfQo+ICsKPiArCWk5MTVfc2dfdHJp bShzdCk7Cj4gKwo+ICsJcmV0dXJuIHN0Owo+ICsKPiArZXJyX3NnX2FsbG9jOgo+ICsJa2ZyZWUo c3QpOwo+ICtlcnJfc3RfYWxsb2M6Cj4gKwo+ICsJRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRv IGNyZWF0ZSByZW1hcHBlZCBtYXBwaW5nIGZvciBvYmplY3Qgc2l6ZSAlenUhICgldXgldSB0aWxl cywgJXUgcGFnZXMpXG4iLAo+ICsJCQkgb2JqLT5iYXNlLnNpemUsIHJlbV9pbmZvLT5wbGFuZVsw XS53aWR0aCwgcmVtX2luZm8tPnBsYW5lWzBdLmhlaWdodCwgc2l6ZSk7Cj4gKwo+ICsJcmV0dXJu IEVSUl9QVFIocmV0KTsKPiArfQo+ICsKPiAgIHN0YXRpYyBub2lubGluZSBzdHJ1Y3Qgc2dfdGFi bGUgKgo+ICAgaW50ZWxfcGFydGlhbF9wYWdlcyhjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcg KnZpZXcsCj4gICAJCSAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+IEBAIC0z NzgzLDYgKzM4NTIsMTEgQEAgaTkxNV9nZXRfZ2d0dF92bWFfcGFnZXMoc3RydWN0IGk5MTVfdm1h ICp2bWEpCj4gICAJCQlpbnRlbF9yb3RhdGVfcGFnZXMoJnZtYS0+Z2d0dF92aWV3LnJvdGF0ZWQs IHZtYS0+b2JqKTsKPiAgIAkJYnJlYWs7Cj4gICAKPiArCWNhc2UgSTkxNV9HR1RUX1ZJRVdfUkVN QVBQRUQ6Cj4gKwkJdm1hLT5wYWdlcyA9Cj4gKwkJCWludGVsX3JlbWFwX3BhZ2VzKCZ2bWEtPmdn dHRfdmlldy5yZW1hcHBlZCwgdm1hLT5vYmopOwo+ICsJCWJyZWFrOwo+ICsKPiAgIAljYXNlIEk5 MTVfR0dUVF9WSUVXX1BBUlRJQUw6Cj4gICAJCXZtYS0+cGFnZXMgPSBpbnRlbF9wYXJ0aWFsX3Bh Z2VzKCZ2bWEtPmdndHRfdmlldywgdm1hLT5vYmopOwo+ICAgCQlicmVhazsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ndHQuaAo+IGluZGV4IDdlMmFmNWY0ZjM5Yi4uNjlhMjJmNTdlNmNhIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBAQCAtMTYwLDExICsxNjAsMTgg QEAgdHlwZWRlZiB1NjQgZ2VuOF9wcGd0dF9wbWw0ZV90Owo+ICAgCj4gICBzdHJ1Y3Qgc2dfdGFi bGU7Cj4gICAKPiArc3RydWN0IGludGVsX3JlbWFwcGVkX3BsYW5lX2luZm8gewo+ICsJLyogaW4g Z3R0IHBhZ2VzICovCj4gKwl1bnNpZ25lZCBpbnQgd2lkdGgsIGhlaWdodCwgc3RyaWRlLCBvZmZz ZXQ7Cj4gK30gX19wYWNrZWQ7Cj4gKwo+ICtzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfaW5mbyB7Cj4g KwlzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfcGxhbmVfaW5mbyBwbGFuZVsyXTsKPiArCXVuc2lnbmVk IGludCB1bnVzZWRfbWJ6Owo+ICt9IF9fcGFja2VkOwo+ICsKPiAgIHN0cnVjdCBpbnRlbF9yb3Rh dGlvbl9pbmZvIHsKPiAtCXN0cnVjdCBpbnRlbF9yb3RhdGlvbl9wbGFuZV9pbmZvIHsKPiAtCQkv KiB0aWxlcyAqLwo+IC0JCXVuc2lnbmVkIGludCB3aWR0aCwgaGVpZ2h0LCBzdHJpZGUsIG9mZnNl dDsKPiAtCX0gcGxhbmVbMl07Cj4gKwlzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfcGxhbmVfaW5mbyBw bGFuZVsyXTsKPiAgIH0gX19wYWNrZWQ7Cj4gICAKPiAgIHN0cnVjdCBpbnRlbF9wYXJ0aWFsX2lu Zm8gewo+IEBAIC0xNzYsMTIgKzE4MywyMCBAQCBlbnVtIGk5MTVfZ2d0dF92aWV3X3R5cGUgewo+ ICAgCUk5MTVfR0dUVF9WSUVXX05PUk1BTCA9IDAsCj4gICAJSTkxNV9HR1RUX1ZJRVdfUk9UQVRF RCA9IHNpemVvZihzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyksCj4gICAJSTkxNV9HR1RUX1ZJ RVdfUEFSVElBTCA9IHNpemVvZihzdHJ1Y3QgaW50ZWxfcGFydGlhbF9pbmZvKSwKPiArCUk5MTVf R0dUVF9WSUVXX1JFTUFQUEVEID0gc2l6ZW9mKHN0cnVjdCBpbnRlbF9yZW1hcHBlZF9pbmZvKSwK PiAgIH07Cj4gICAKPiAgIHN0YXRpYyBpbmxpbmUgdm9pZCBhc3NlcnRfaTkxNV9nZW1fZ3R0X3R5 cGVzKHZvaWQpCj4gICB7Cj4gICAJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgaW50ZWxfcm90 YXRpb25faW5mbykgIT0gOCpzaXplb2YodW5zaWduZWQgaW50KSk7Cj4gICAJQlVJTERfQlVHX09O KHNpemVvZihzdHJ1Y3QgaW50ZWxfcGFydGlhbF9pbmZvKSAhPSBzaXplb2YodTY0KSArIHNpemVv Zih1bnNpZ25lZCBpbnQpKTsKPiArCUJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IGludGVsX3Jl bWFwcGVkX2luZm8pICE9IDkqc2l6ZW9mKHVuc2lnbmVkIGludCkpOwo+ICsKPiArCS8qIENoZWNr IHRoYXQgcm90YXRpb24vcmVtYXBwZWQgc2hhcmVzIG9mZnNldHMgZm9yIHNpbXBsaWNpdHkgKi8K PiArCUJVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfaW5mbywgcGxh bmVbMF0pICE9Cj4gKwkJICAgICBvZmZzZXRvZihzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbywg cGxhbmVbMF0pKTsKPiArCUJVSUxEX0JVR19PTihvZmZzZXRvZmVuZChzdHJ1Y3QgaW50ZWxfcmVt YXBwZWRfaW5mbywgcGxhbmVbMV0pICE9Cj4gKwkJICAgICBvZmZzZXRvZmVuZChzdHJ1Y3QgaW50 ZWxfcm90YXRpb25faW5mbywgcGxhbmVbMV0pKTsKPiAgIAo+ICAgCS8qIEFzIHdlIGVuY29kZSB0 aGUgc2l6ZSBvZiBlYWNoIGJyYW5jaCBpbnNpZGUgdGhlIHVuaW9uIGludG8gaXRzIHR5cGUsCj4g ICAJICogd2UgaGF2ZSB0byBiZSBjYXJlZnVsIHRoYXQgZWFjaCBicmFuY2ggaGFzIGEgdW5pcXVl IHNpemUuCj4gQEAgLTE5MCw2ICsyMDUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXNzZXJ0X2k5 MTVfZ2VtX2d0dF90eXBlcyh2b2lkKQo+ICAgCWNhc2UgSTkxNV9HR1RUX1ZJRVdfTk9STUFMOgo+ ICAgCWNhc2UgSTkxNV9HR1RUX1ZJRVdfUEFSVElBTDoKPiAgIAljYXNlIEk5MTVfR0dUVF9WSUVX X1JPVEFURUQ6Cj4gKwljYXNlIEk5MTVfR0dUVF9WSUVXX1JFTUFQUEVEOgo+ICAgCQkvKiBnY2Mg Y29tcGxhaW5zIGlmIHRoZXNlIGFyZSBpZGVudGljYWwgY2FzZXMgKi8KPiAgIAkJYnJlYWs7Cj4g ICAJfQo+IEBAIC0yMDEsNiArMjE3LDcgQEAgc3RydWN0IGk5MTVfZ2d0dF92aWV3IHsKPiAgIAkJ LyogTWVtYmVycyBuZWVkIHRvIGNvbnRhaW4gbm8gaG9sZXMvcGFkZGluZyAqLwo+ICAgCQlzdHJ1 Y3QgaW50ZWxfcGFydGlhbF9pbmZvIHBhcnRpYWw7Cj4gICAJCXN0cnVjdCBpbnRlbF9yb3RhdGlv bl9pbmZvIHJvdGF0ZWQ7Cj4gKwkJc3RydWN0IGludGVsX3JlbWFwcGVkX2luZm8gcmVtYXBwZWQ7 Cj4gICAJfTsKPiAgIH07Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV92bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKPiBpbmRleCA4MjY1 MmMzZDFiZWQuLjIwNzBlNDRlYWEwMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3ZtYS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwo+IEBA IC0xNjQsNiArMTY0LDkgQEAgdm1hX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAo+ICAgCQl9IGVsc2UgaWYgKHZpZXctPnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRF RCkgewo+ICAgCQkJdm1hLT5zaXplID0gaW50ZWxfcm90YXRpb25faW5mb19zaXplKCZ2aWV3LT5y b3RhdGVkKTsKPiAgIAkJCXZtYS0+c2l6ZSA8PD0gUEFHRV9TSElGVDsKPiArCQl9IGVsc2UgaWYg KHZpZXctPnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfUkVNQVBQRUQpIHsKPiArCQkJdm1hLT5zaXpl ID0gaW50ZWxfcmVtYXBwZWRfaW5mb19zaXplKCZ2aWV3LT5yZW1hcHBlZCk7Cj4gKwkJCXZtYS0+ c2l6ZSA8PD0gUEFHRV9TSElGVDsKPiAgIAkJfQo+ICAgCX0KPiAgIAo+IEBAIC00NjQsNyArNDY3 LDggQEAgdm9pZCBfX2k5MTVfdm1hX3NldF9tYXBfYW5kX2ZlbmNlYWJsZShzdHJ1Y3QgaTkxNV92 bWEgKnZtYSkKPiAgIAkgKiBFeHBsaWNpdGx5IGRpc2FibGUgZm9yIHJvdGF0ZWQgVk1BIHNpbmNl IHRoZSBkaXNwbGF5IGRvZXMgbm90Cj4gICAJICogbmVlZCB0aGUgZmVuY2UgYW5kIHRoZSBWTUEg aXMgbm90IGFjY2Vzc2libGUgdG8gb3RoZXIgdXNlcnMuCj4gICAJICovCj4gLQlpZiAodm1hLT5n Z3R0X3ZpZXcudHlwZSA9PSBJOTE1X0dHVFRfVklFV19ST1RBVEVEKQo+ICsJaWYgKHZtYS0+Z2d0 dF92aWV3LnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCB8fAo+ICsJICAgIHZtYS0+Z2d0 dF92aWV3LnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfUkVNQVBQRUQpCj4gICAJCXJldHVybjsKPiAg IAo+ICAgCWZlbmNlYWJsZSA9ICh2bWEtPm5vZGUuc2l6ZSA+PSB2bWEtPmZlbmNlX3NpemUgJiYK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfdm1hLmgKPiBpbmRleCA0ZjdjMWM3NTk5ZjQuLjY0Y2YwMjljMDI4 YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaAo+IEBAIC0yNjUsOCArMjY1LDExIEBAIGk5 MTVfdm1hX2NvbXBhcmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gICAJICovCj4gICAJQlVJTERf QlVHX09OKEk5MTVfR0dUVF9WSUVXX05PUk1BTCA+PSBJOTE1X0dHVFRfVklFV19QQVJUSUFMKTsK PiAgIAlCVUlMRF9CVUdfT04oSTkxNV9HR1RUX1ZJRVdfUEFSVElBTCA+PSBJOTE1X0dHVFRfVklF V19ST1RBVEVEKTsKPiArCUJVSUxEX0JVR19PTihJOTE1X0dHVFRfVklFV19ST1RBVEVEID49IEk5 MTVfR0dUVF9WSUVXX1JFTUFQUEVEKTsKPiAgIAlCVUlMRF9CVUdfT04ob2Zmc2V0b2YodHlwZW9m KCp2aWV3KSwgcm90YXRlZCkgIT0KPiAgIAkJICAgICBvZmZzZXRvZih0eXBlb2YoKnZpZXcpLCBw YXJ0aWFsKSk7Cj4gKwlCVUlMRF9CVUdfT04ob2Zmc2V0b2YodHlwZW9mKCp2aWV3KSwgcm90YXRl ZCkgIT0KPiArCQkgICAgIG9mZnNldG9mKHR5cGVvZigqdmlldyksIHJlbWFwcGVkKSk7Cj4gICAJ cmV0dXJuIG1lbWNtcCgmdm1hLT5nZ3R0X3ZpZXcucGFydGlhbCwgJnZpZXctPnBhcnRpYWwsIHZp ZXctPnR5cGUpOwo+ICAgfQo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ IGluZGV4IDhhMGI0NzdhNjlkMy4uNDFmN2UwNzk1YjE0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xOTU3LDYgKzE5NTcsMTcgQEAgdW5zaWduZWQgaW50IGlu dGVsX3JvdGF0aW9uX2luZm9fc2l6ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyAq cm90X2luZm8KPiAgIAlyZXR1cm4gc2l6ZTsKPiAgIH0KPiAgIAo+ICt1bnNpZ25lZCBpbnQgaW50 ZWxfcmVtYXBwZWRfaW5mb19zaXplKGNvbnN0IHN0cnVjdCBpbnRlbF9yZW1hcHBlZF9pbmZvICpy ZW1faW5mbykKPiArewo+ICsJdW5zaWduZWQgaW50IHNpemUgPSAwOwo+ICsJaW50IGk7Cj4gKwo+ ICsJZm9yIChpID0gMCA7IGkgPCBBUlJBWV9TSVpFKHJlbV9pbmZvLT5wbGFuZSk7IGkrKykKPiAr CQlzaXplICs9IHJlbV9pbmZvLT5wbGFuZVtpXS53aWR0aCAqIHJlbV9pbmZvLT5wbGFuZVtpXS5o ZWlnaHQ7Cj4gKwo+ICsJcmV0dXJuIHNpemU7Cj4gK30KPiArCj4gICBzdGF0aWMgdm9pZAo+ICAg aW50ZWxfZmlsbF9mYl9nZ3R0X3ZpZXcoc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3LAo+ICAg CQkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiBpbmRleCAwZTlhOTI2ZmNhMDQuLjY5OTNlZmY1ZGZhZiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4gQEAgLTE1MjMsNiArMTUyMyw3IEBAIHVuc2lnbmVkIGludCBpbnRl bF9mYl94eV90b19saW5lYXIoaW50IHgsIGludCB5LAo+ICAgdm9pZCBpbnRlbF9hZGRfZmJfb2Zm c2V0cyhpbnQgKngsIGludCAqeSwKPiAgIAkJCSAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpzdGF0ZSwgaW50IHBsYW5lKTsKPiAgIHVuc2lnbmVkIGludCBpbnRlbF9yb3RhdGlvbl9p bmZvX3NpemUoY29uc3Qgc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gKnJvdF9pbmZvKTsKPiAr dW5zaWduZWQgaW50IGludGVsX3JlbWFwcGVkX2luZm9fc2l6ZShjb25zdCBzdHJ1Y3QgaW50ZWxf cmVtYXBwZWRfaW5mbyAqcmVtX2luZm8pOwo+ICAgYm9vbCBpbnRlbF9oYXNfcGVuZGluZ19mYl91 bnBpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICAgdm9pZCBpbnRlbF9t YXJrX2J1c3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgIHZvaWQgaW50 ZWxfbWFya19pZGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3ZtYS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfdm1hLmMKPiBpbmRleCBmZmE3NDI5MGUwNTQu LjRmYzQ5YzI3ZjEzYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvaTkxNV92bWEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1 X3ZtYS5jCj4gQEAgLTM5NSw4ICszOTUsOCBAQCBhc3NlcnRfcm90YXRlZChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgCXJldHVybiBzZzsKPiAgIH0KPiAgIAo+IC1zdGF0aWMg dW5zaWduZWQgaW50IHJvdGF0ZWRfc2l6ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcm90YXRpb25fcGxh bmVfaW5mbyAqYSwKPiAtCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfcm90YXRpb25fcGxhbmVfaW5m byAqYikKPiArc3RhdGljIHVuc2lnbmVkIGludCByb3RhdGVkX3NpemUoY29uc3Qgc3RydWN0IGlu dGVsX3JlbWFwcGVkX3BsYW5lX2luZm8gKmEsCj4gKwkJCQkgY29uc3Qgc3RydWN0IGludGVsX3Jl bWFwcGVkX3BsYW5lX2luZm8gKmIpCj4gICB7Cj4gICAJcmV0dXJuIGEtPndpZHRoICogYS0+aGVp Z2h0ICsgYi0+d2lkdGggKiBiLT5oZWlnaHQ7Cj4gICB9Cj4gQEAgLTQwNiw3ICs0MDYsNyBAQCBz dGF0aWMgaW50IGlndF92bWFfcm90YXRlKHZvaWQgKmFyZykKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSA9IGFyZzsKPiAgIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9 ICZpOTE1LT5nZ3R0LnZtOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4g LQljb25zdCBzdHJ1Y3QgaW50ZWxfcm90YXRpb25fcGxhbmVfaW5mbyBwbGFuZXNbXSA9IHsKPiAr CWNvbnN0IHN0cnVjdCBpbnRlbF9yZW1hcHBlZF9wbGFuZV9pbmZvIHBsYW5lc1tdID0gewo+ICAg CQl7IC53aWR0aCA9IDEsIC5oZWlnaHQgPSAxLCAuc3RyaWRlID0gMSB9LAo+ICAgCQl7IC53aWR0 aCA9IDIsIC5oZWlnaHQgPSAyLCAuc3RyaWRlID0gMiB9LAo+ICAgCQl7IC53aWR0aCA9IDQsIC5o ZWlnaHQgPSA0LCAuc3RyaWRlID0gNCB9LAo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK