From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v3 1/8] drm/i915: Add a new "remapped" gtt_view Date: Wed, 30 Jan 2019 20:06:08 +0100 Message-ID: <20190130190608.GL3271@phenom.ffwll.local> References: <20190118152720.24643-1-ville.syrjala@linux.intel.com> <20190118152720.24643-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 mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id 623026E00A for ; Wed, 30 Jan 2019 19:06:13 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id b14so522429edt.6 for ; Wed, 30 Jan 2019 11:06:13 -0800 (PST) Content-Disposition: inline In-Reply-To: <20190118152720.24643-2-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville Syrjala Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKYW4gMTgsIDIwMTkgYXQgMDU6Mjc6MTNQTSArMDIwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IFRvIG92ZXJjb21lIGRpc3BsYXkgZW5naW5lIHN0cmlkZSBsaW1pdHMgd2UnbGwg d2FudCB0byByZW1hcCB0aGUKPiBwYWdlcyBpbiB0aGUgR1RULiBUbyB0aGF0IGVuZCB3ZSBuZWVk IGEgbmV3IGd0dF92aWV3IHR5cGUgd2hpY2gKPiBpcyBqdXN0IGxpa2UgdGhlICJyb3RhdGVkIiB0 eXBlIGV4Y2VwdCBub3Qgcm90YXRlZC4KPiAKPiB2MjogVXNlIGludGVsX3JlbWFwcGVkX3BsYW5l X2luZm8gYmFzZSB0eXBlCj4gICAgIHMvdW51c2VkL3VudXNlZF9tYnovIChDaHJpcykKPiAgICAg U2VwYXJhdGUgQlVJTERfQlVHX09OKClzIChDaHJpcykKPiAgICAgVXNlIEk5MTVfR1RUX1BBR0Vf U0laRSAoQ2hyaXMpCj4gdjM6IFVzZSBpOTE1X2dlbV9vYmplY3RfZ2V0X2RtYV9hZGRyZXNzKCkg KENocmlzKQo+ICAgICBUcmltIHRoZSBzZyAoVHZydGtvKQo+IHY0OiBBY3R1YWxseSB0cmltIHRo aXMgdGltZS4gTGltaXQgdGhlIG1heCBsZW5ndGgKPiAgICAgdG8gb25lIHJvdyBvZiBwYWdlcyB0 byBrZWVwIHRoaW5ncyBzaW1wbGUKPiAKPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13 aWxzb24uY28udWs+Cj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBsaW51eC5p bnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMgICAgICAgfCAxMiArKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg ICAgICAgICAgIHwgIDQgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAg ICAgICAgfCAxNyArKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAg ICAgICB8IDg4ICsrKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5oICAgICAgIHwgMjUgKysrKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3ZtYS5jICAgICAgICAgICB8ICA2ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfdm1hLmggICAgICAgICAgIHwgIDMgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgICAgICB8IDExICsrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCAgICAgICAgICB8ICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVf dm1hLmMgfCAgNiArLQo+ICAxMCBmaWxlcyBjaGFuZ2VkLCAxNjMgaW5zZXJ0aW9ucygrKSwgMTAg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCAy NGQ2ZDRjZTE0ZWYuLmI3YzZiMDZjZjJmMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jCj4gQEAgLTE5OCw2ICsxOTgsMTggQEAgZGVzY3JpYmVfb2JqKHN0cnVjdCBzZXFfZmls ZSAqbSwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiAgCQkJCQkgICB2bWEtPmdn dHRfdmlldy5yb3RhdGVkLnBsYW5lWzFdLm9mZnNldCk7Cj4gIAkJCQlicmVhazsKPiAgCj4gKwkJ CWNhc2UgSTkxNV9HR1RUX1ZJRVdfUkVNQVBQRUQ6Cj4gKwkJCQlzZXFfcHJpbnRmKG0sICIsIHJl bWFwcGVkIFsoJXV4JXUsIHN0cmlkZT0ldSwgb2Zmc2V0PSV1KSwgKCV1eCV1LCBzdHJpZGU9JXUs IG9mZnNldD0ldSldIiwKPiArCQkJCQkgICB2bWEtPmdndHRfdmlldy5yZW1hcHBlZC5wbGFuZVsw XS53aWR0aCwKPiArCQkJCQkgICB2bWEtPmdndHRfdmlldy5yZW1hcHBlZC5wbGFuZVswXS5oZWln aHQsCj4gKwkJCQkJICAgdm1hLT5nZ3R0X3ZpZXcucmVtYXBwZWQucGxhbmVbMF0uc3RyaWRlLAo+ ICsJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBdLm9mZnNldCwKPiArCQkJ CQkgICB2bWEtPmdndHRfdmlldy5yZW1hcHBlZC5wbGFuZVsxXS53aWR0aCwKPiArCQkJCQkgICB2 bWEtPmdndHRfdmlldy5yZW1hcHBlZC5wbGFuZVsxXS5oZWlnaHQsCj4gKwkJCQkJICAgdm1hLT5n Z3R0X3ZpZXcucmVtYXBwZWQucGxhbmVbMV0uc3RyaWRlLAo+ICsJCQkJCSAgIHZtYS0+Z2d0dF92 aWV3LnJlbWFwcGVkLnBsYW5lWzFdLm9mZnNldCk7Cj4gKwkJCQlicmVhazsKPiArCj4gIAkJCWRl ZmF1bHQ6Cj4gIAkJCQlNSVNTSU5HX0NBU0Uodm1hLT5nZ3R0X3ZpZXcudHlwZSk7Cj4gIAkJCQli cmVhazsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCAzMTBkOWUxZTE2MjAuLjRjYjBj OWI3NTZkNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0yODU1LDYgKzI4NTUs MTAgQEAgaTkxNV9nZW1fb2JqZWN0X2dldF9kaXJ0eV9wYWdlKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmosCj4gIAkJCSAgICAgICB1bnNpZ25lZCBpbnQgbik7Cj4gIAo+ICBkbWFfYWRk cl90Cj4gK2k5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3NfbGVuKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmosCj4gKwkJCQkgICAgdW5zaWduZWQgbG9uZyBuLAo+ICsJCQkJICAg IHVuc2lnbmVkIGludCAqbGVuKTsKPiArZG1hX2FkZHJfdAo+ICBpOTE1X2dlbV9vYmplY3RfZ2V0 X2RtYV9hZGRyZXNzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gIAkJCQl1bnNp Z25lZCBsb25nIG4pOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCBiMzU5Mzkw YmEyMmMuLjFlN2M5NWQwZmVhMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC01 NjYwLDE2ICs1NjYwLDI5IEBAIGk5MTVfZ2VtX29iamVjdF9nZXRfZGlydHlfcGFnZShzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICB9Cj4gIAo+ICBkbWFfYWRkcl90Cj4gLWk5MTVf Z2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3Moc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKPiAtCQkJCXVuc2lnbmVkIGxvbmcgbikKPiAraTkxNV9nZW1fb2JqZWN0X2dldF9kbWFfYWRk cmVzc19sZW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiArCQkJCSAgICB1bnNp Z25lZCBsb25nIG4sCj4gKwkJCQkgICAgdW5zaWduZWQgaW50ICpsZW4pCj4gIHsKPiAgCXN0cnVj dCBzY2F0dGVybGlzdCAqc2c7Cj4gIAl1bnNpZ25lZCBpbnQgb2Zmc2V0Owo+ICAKPiAgCXNnID0g aTkxNV9nZW1fb2JqZWN0X2dldF9zZyhvYmosIG4sICZvZmZzZXQpOwo+ICsKPiArCWlmIChsZW4p Cj4gKwkJKmxlbiA9IHNnX2RtYV9sZW4oc2cpIC0gKG9mZnNldCA8PCBQQUdFX1NISUZUKTsKPiAr Cj4gIAlyZXR1cm4gc2dfZG1hX2FkZHJlc3Moc2cpICsgKG9mZnNldCA8PCBQQUdFX1NISUZUKTsK PiAgfQo+ICAKPiArZG1hX2FkZHJfdAo+ICtpOTE1X2dlbV9vYmplY3RfZ2V0X2RtYV9hZGRyZXNz KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gKwkJCQl1bnNpZ25lZCBsb25nIG4p Cj4gK3sKPiArCXJldHVybiBpOTE1X2dlbV9vYmplY3RfZ2V0X2RtYV9hZGRyZXNzX2xlbihvYmos IG4sIE5VTEwpOwo+ICt9Cj4gKwo+ICsKPiAgaW50IGk5MTVfZ2VtX29iamVjdF9hdHRhY2hfcGh5 cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCBpbnQgYWxpZ24pCj4gIHsKPiAgCXN0 cnVjdCBzZ190YWJsZSAqcGFnZXM7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBp bmRleCA5MDgxZTNiYzVhNTkuLjY0ZTI3OGM5NDc5YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jCj4gQEAgLTM2MTIsNiArMzYxMiw4OSBAQCBpbnRlbF9yb3RhdGVfcGFnZXMo c3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gKnJvdF9pbmZvLAo+ICAJcmV0dXJuIEVSUl9QVFIo cmV0KTsKPiAgfQo+ICAKPiArc3RhdGljIHN0cnVjdCBzY2F0dGVybGlzdCAqCj4gK3JlbWFwX3Bh Z2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIHVuc2lnbmVkIGludCBvZmZzZXQs Cj4gKwkgICAgdW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0LAo+ICsJICAg IHVuc2lnbmVkIGludCBzdHJpZGUsCj4gKwkgICAgc3RydWN0IHNnX3RhYmxlICpzdCwgc3RydWN0 IHNjYXR0ZXJsaXN0ICpzZykKPiArewo+ICsJdW5zaWduZWQgaW50IHJvdzsKPiArCj4gKwlmb3Ig KHJvdyA9IDA7IHJvdyA8IGhlaWdodDsgcm93KyspIHsKPiArCQl1bnNpZ25lZCBpbnQgbGVmdCA9 IHdpZHRoICogSTkxNV9HVFRfUEFHRV9TSVpFOwo+ICsKPiArCQl3aGlsZSAobGVmdCkgewo+ICsJ CQlkbWFfYWRkcl90IGFkZHI7Cj4gKwkJCXVuc2lnbmVkIGludCBsZW5ndGg7Cj4gKwo+ICsJCQkv KiBXZSBkb24ndCBuZWVkIHRoZSBwYWdlcywgYnV0IG5lZWQgdG8gaW5pdGlhbGl6ZQo+ICsJCQkg KiB0aGUgZW50cmllcyBzbyB0aGUgc2cgbGlzdCBjYW4gYmUgaGFwcGlseSB0cmF2ZXJzZWQuCj4g KwkJCSAqIFRoZSBvbmx5IHRoaW5nIHdlIG5lZWQgYXJlIERNQSBhZGRyZXNzZXMuCj4gKwkJCSAq Lwo+ICsKPiArCQkJYWRkciA9IGk5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3NfbGVuKG9i aiwgb2Zmc2V0LCAmbGVuZ3RoKTsKPiArCj4gKwkJCWxlbmd0aCA9IG1pbihsZWZ0LCBsZW5ndGgp Owo+ICsKPiArCQkJc3QtPm5lbnRzKys7Cj4gKwo+ICsJCQlzZ19zZXRfcGFnZShzZywgTlVMTCwg bGVuZ3RoLCAwKTsKPiArCQkJc2dfZG1hX2FkZHJlc3Moc2cpID0gYWRkcjsKPiArCQkJc2dfZG1h X2xlbihzZykgPSBsZW5ndGg7Cj4gKwkJCXNnID0gc2dfbmV4dChzZyk7Cj4gKwo+ICsJCQlvZmZz ZXQgKz0gbGVuZ3RoIC8gSTkxNV9HVFRfUEFHRV9TSVpFOwo+ICsJCQlsZWZ0IC09IGxlbmd0aDsK PiArCQl9Cj4gKwo+ICsJCW9mZnNldCArPSBzdHJpZGUgLSB3aWR0aDsKCk5vdCBzdXJlIHRyeWlu ZyB0byBrZWVwIHRoZSBjb21wYWN0ZWQgc2cgbGlzdCBpcyB3b3J0aCBhbGwgdGhlIGNvZGUsIGJ1 dApjYW4ndCBodXJ0IHJlYWxseSBlaXRoZXIuIGxndG0sIGFuZCBJIHRydXN0IENocmlzIHRvIGhh dmUgZnVsbHkgcmV2aWV3ZWQKdGVzdCBjb3ZlcmFnZSBmb3IgYWxsIHRoZSBjb3JuZXIgY2FzZXMg Oi0pCgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4K Cgo+ICsJfQo+ICsKPiArCXJldHVybiBzZzsKPiArfQo+ICsKPiArc3RhdGljIG5vaW5saW5lIHN0 cnVjdCBzZ190YWJsZSAqCj4gK2ludGVsX3JlbWFwX3BhZ2VzKHN0cnVjdCBpbnRlbF9yZW1hcHBl ZF9pbmZvICpyZW1faW5mbywKPiArCQkgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmop Cj4gK3sKPiArCXVuc2lnbmVkIGludCBzaXplID0gaW50ZWxfcmVtYXBwZWRfaW5mb19zaXplKHJl bV9pbmZvKTsKPiArCXN0cnVjdCBzZ190YWJsZSAqc3Q7Cj4gKwlzdHJ1Y3Qgc2NhdHRlcmxpc3Qg KnNnOwo+ICsJaW50IHJldCA9IC1FTk9NRU07Cj4gKwlpbnQgaTsKPiArCj4gKwkvKiBBbGxvY2F0 ZSB0YXJnZXQgU0cgbGlzdC4gKi8KPiArCXN0ID0ga21hbGxvYyhzaXplb2YoKnN0KSwgR0ZQX0tF Uk5FTCk7Cj4gKwlpZiAoIXN0KQo+ICsJCWdvdG8gZXJyX3N0X2FsbG9jOwo+ICsKPiArCXJldCA9 IHNnX2FsbG9jX3RhYmxlKHN0LCBzaXplLCBHRlBfS0VSTkVMKTsKPiArCWlmIChyZXQpCj4gKwkJ Z290byBlcnJfc2dfYWxsb2M7Cj4gKwo+ICsJc3QtPm5lbnRzID0gMDsKPiArCXNnID0gc3QtPnNn bDsKPiArCj4gKwlmb3IgKGkgPSAwIDsgaSA8IEFSUkFZX1NJWkUocmVtX2luZm8tPnBsYW5lKTsg aSsrKSB7Cj4gKwkJc2cgPSByZW1hcF9wYWdlcyhvYmosIHJlbV9pbmZvLT5wbGFuZVtpXS5vZmZz ZXQsCj4gKwkJCQkgcmVtX2luZm8tPnBsYW5lW2ldLndpZHRoLCByZW1faW5mby0+cGxhbmVbaV0u aGVpZ2h0LAo+ICsJCQkJIHJlbV9pbmZvLT5wbGFuZVtpXS5zdHJpZGUsIHN0LCBzZyk7Cj4gKwl9 Cj4gKwo+ICsJaTkxNV9zZ190cmltKHN0KTsKPiArCj4gKwlyZXR1cm4gc3Q7Cj4gKwo+ICtlcnJf c2dfYWxsb2M6Cj4gKwlrZnJlZShzdCk7Cj4gK2Vycl9zdF9hbGxvYzoKPiArCj4gKwlEUk1fREVC VUdfRFJJVkVSKCJGYWlsZWQgdG8gY3JlYXRlIHJlbWFwcGVkIG1hcHBpbmcgZm9yIG9iamVjdCBz aXplICV6dSEgKCV1eCV1IHRpbGVzLCAldSBwYWdlcylcbiIsCj4gKwkJCSBvYmotPmJhc2Uuc2l6 ZSwgcmVtX2luZm8tPnBsYW5lWzBdLndpZHRoLCByZW1faW5mby0+cGxhbmVbMF0uaGVpZ2h0LCBz aXplKTsKPiArCj4gKwlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgbm9p bmxpbmUgc3RydWN0IHNnX3RhYmxlICoKPiAgaW50ZWxfcGFydGlhbF9wYWdlcyhjb25zdCBzdHJ1 Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcsCj4gIAkJICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopCj4gQEAgLTM2OTAsNiArMzc3MywxMSBAQCBpOTE1X2dldF9nZ3R0X3ZtYV9wYWdl cyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAgCQkJaW50ZWxfcm90YXRlX3BhZ2VzKCZ2bWEtPmdn dHRfdmlldy5yb3RhdGVkLCB2bWEtPm9iaik7Cj4gIAkJYnJlYWs7Cj4gIAo+ICsJY2FzZSBJOTE1 X0dHVFRfVklFV19SRU1BUFBFRDoKPiArCQl2bWEtPnBhZ2VzID0KPiArCQkJaW50ZWxfcmVtYXBf cGFnZXMoJnZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLCB2bWEtPm9iaik7Cj4gKwkJYnJlYWs7Cj4g Kwo+ICAJY2FzZSBJOTE1X0dHVFRfVklFV19QQVJUSUFMOgo+ICAJCXZtYS0+cGFnZXMgPSBpbnRl bF9wYXJ0aWFsX3BhZ2VzKCZ2bWEtPmdndHRfdmlldywgdm1hLT5vYmopOwo+ICAJCWJyZWFrOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gaW5kZXggOTIyOWIwM2Q2MjliLi43ODky ZTU0NjdjNmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0 LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+IEBAIC0xNjIs MTEgKzE2MiwxOCBAQCB0eXBlZGVmIHU2NCBnZW44X3BwZ3R0X3BtbDRlX3Q7Cj4gIAo+ICBzdHJ1 Y3Qgc2dfdGFibGU7Cj4gIAo+ICtzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfcGxhbmVfaW5mbyB7Cj4g KwkvKiBpbiBndHQgcGFnZXMgKi8KPiArCXVuc2lnbmVkIGludCB3aWR0aCwgaGVpZ2h0LCBzdHJp ZGUsIG9mZnNldDsKPiArfSBfX3BhY2tlZDsKPiArCj4gK3N0cnVjdCBpbnRlbF9yZW1hcHBlZF9p bmZvIHsKPiArCXN0cnVjdCBpbnRlbF9yZW1hcHBlZF9wbGFuZV9pbmZvIHBsYW5lWzJdOwo+ICsJ dW5zaWduZWQgaW50IHVudXNlZF9tYno7Cj4gK30gX19wYWNrZWQ7Cj4gKwo+ICBzdHJ1Y3QgaW50 ZWxfcm90YXRpb25faW5mbyB7Cj4gLQlzdHJ1Y3QgaW50ZWxfcm90YXRpb25fcGxhbmVfaW5mbyB7 Cj4gLQkJLyogdGlsZXMgKi8KPiAtCQl1bnNpZ25lZCBpbnQgd2lkdGgsIGhlaWdodCwgc3RyaWRl LCBvZmZzZXQ7Cj4gLQl9IHBsYW5lWzJdOwo+ICsJc3RydWN0IGludGVsX3JlbWFwcGVkX3BsYW5l X2luZm8gcGxhbmVbMl07Cj4gIH0gX19wYWNrZWQ7Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfcGFydGlh bF9pbmZvIHsKPiBAQCAtMTc4LDEyICsxODUsMjAgQEAgZW51bSBpOTE1X2dndHRfdmlld190eXBl IHsKPiAgCUk5MTVfR0dUVF9WSUVXX05PUk1BTCA9IDAsCj4gIAlJOTE1X0dHVFRfVklFV19ST1RB VEVEID0gc2l6ZW9mKHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvKSwKPiAgCUk5MTVfR0dUVF9W SUVXX1BBUlRJQUwgPSBzaXplb2Yoc3RydWN0IGludGVsX3BhcnRpYWxfaW5mbyksCj4gKwlJOTE1 X0dHVFRfVklFV19SRU1BUFBFRCA9IHNpemVvZihzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfaW5mbyks Cj4gIH07Cj4gIAo+ICBzdGF0aWMgaW5saW5lIHZvaWQgYXNzZXJ0X2k5MTVfZ2VtX2d0dF90eXBl cyh2b2lkKQo+ICB7Cj4gIAlCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCBpbnRlbF9yb3RhdGlv bl9pbmZvKSAhPSA4KnNpemVvZih1bnNpZ25lZCBpbnQpKTsKPiAgCUJVSUxEX0JVR19PTihzaXpl b2Yoc3RydWN0IGludGVsX3BhcnRpYWxfaW5mbykgIT0gc2l6ZW9mKHU2NCkgKyBzaXplb2YodW5z aWduZWQgaW50KSk7Cj4gKwlCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCBpbnRlbF9yZW1hcHBl ZF9pbmZvKSAhPSA5KnNpemVvZih1bnNpZ25lZCBpbnQpKTsKPiArCj4gKwkvKiBDaGVjayB0aGF0 IHJvdGF0aW9uL3JlbWFwcGVkIHNoYXJlcyBvZmZzZXRzIGZvciBzaW1wbGljaXR5ICovCj4gKwlC VUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGludGVsX3JlbWFwcGVkX2luZm8sIHBsYW5lWzBd KSAhPQo+ICsJCSAgICAgb2Zmc2V0b2Yoc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8sIHBsYW5l WzBdKSk7Cj4gKwlCVUlMRF9CVUdfT04ob2Zmc2V0b2ZlbmQoc3RydWN0IGludGVsX3JlbWFwcGVk X2luZm8sIHBsYW5lWzFdKSAhPQo+ICsJCSAgICAgb2Zmc2V0b2ZlbmQoc3RydWN0IGludGVsX3Jv dGF0aW9uX2luZm8sIHBsYW5lWzFdKSk7Cj4gIAo+ICAJLyogQXMgd2UgZW5jb2RlIHRoZSBzaXpl IG9mIGVhY2ggYnJhbmNoIGluc2lkZSB0aGUgdW5pb24gaW50byBpdHMgdHlwZSwKPiAgCSAqIHdl IGhhdmUgdG8gYmUgY2FyZWZ1bCB0aGF0IGVhY2ggYnJhbmNoIGhhcyBhIHVuaXF1ZSBzaXplLgo+ IEBAIC0xOTIsNiArMjA3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFzc2VydF9pOTE1X2dlbV9n dHRfdHlwZXModm9pZCkKPiAgCWNhc2UgSTkxNV9HR1RUX1ZJRVdfTk9STUFMOgo+ICAJY2FzZSBJ OTE1X0dHVFRfVklFV19QQVJUSUFMOgo+ICAJY2FzZSBJOTE1X0dHVFRfVklFV19ST1RBVEVEOgo+ ICsJY2FzZSBJOTE1X0dHVFRfVklFV19SRU1BUFBFRDoKPiAgCQkvKiBnY2MgY29tcGxhaW5zIGlm IHRoZXNlIGFyZSBpZGVudGljYWwgY2FzZXMgKi8KPiAgCQlicmVhazsKPiAgCX0KPiBAQCAtMjAz LDYgKzIxOSw3IEBAIHN0cnVjdCBpOTE1X2dndHRfdmlldyB7Cj4gIAkJLyogTWVtYmVycyBuZWVk IHRvIGNvbnRhaW4gbm8gaG9sZXMvcGFkZGluZyAqLwo+ICAJCXN0cnVjdCBpbnRlbF9wYXJ0aWFs X2luZm8gcGFydGlhbDsKPiAgCQlzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyByb3RhdGVkOwo+ ICsJCXN0cnVjdCBpbnRlbF9yZW1hcHBlZF9pbmZvIHJlbWFwcGVkOwo+ICAJfTsKPiAgfTsKPiAg Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCj4gaW5kZXggNWI0ZDc4Y2RiNGNhLi45YTAzOWMzNmRj MGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKPiBAQCAtMTY0LDYgKzE2NCw5IEBAIHZt YV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCQl9IGVsc2UgaWYg KHZpZXctPnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCkgewo+ICAJCQl2bWEtPnNpemUg PSBpbnRlbF9yb3RhdGlvbl9pbmZvX3NpemUoJnZpZXctPnJvdGF0ZWQpOwo+ICAJCQl2bWEtPnNp emUgPDw9IFBBR0VfU0hJRlQ7Cj4gKwkJfSBlbHNlIGlmICh2aWV3LT50eXBlID09IEk5MTVfR0dU VF9WSUVXX1JFTUFQUEVEKSB7Cj4gKwkJCXZtYS0+c2l6ZSA9IGludGVsX3JlbWFwcGVkX2luZm9f c2l6ZSgmdmlldy0+cmVtYXBwZWQpOwo+ICsJCQl2bWEtPnNpemUgPDw9IFBBR0VfU0hJRlQ7Cj4g IAkJfQo+ICAJfQo+ICAKPiBAQCAtNDY0LDcgKzQ2Nyw4IEBAIHZvaWQgX19pOTE1X3ZtYV9zZXRf bWFwX2FuZF9mZW5jZWFibGUoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gIAkgKiBFeHBsaWNpdGx5 IGRpc2FibGUgZm9yIHJvdGF0ZWQgVk1BIHNpbmNlIHRoZSBkaXNwbGF5IGRvZXMgbm90Cj4gIAkg KiBuZWVkIHRoZSBmZW5jZSBhbmQgdGhlIFZNQSBpcyBub3QgYWNjZXNzaWJsZSB0byBvdGhlciB1 c2Vycy4KPiAgCSAqLwo+IC0JaWYgKHZtYS0+Z2d0dF92aWV3LnR5cGUgPT0gSTkxNV9HR1RUX1ZJ RVdfUk9UQVRFRCkKPiArCWlmICh2bWEtPmdndHRfdmlldy50eXBlID09IEk5MTVfR0dUVF9WSUVX X1JPVEFURUQgfHwKPiArCSAgICB2bWEtPmdndHRfdmlldy50eXBlID09IEk5MTVfR0dUVF9WSUVX X1JFTUFQUEVEKQo+ICAJCXJldHVybjsKPiAgCj4gIAlmZW5jZWFibGUgPSAodm1hLT5ub2RlLnNp emUgPj0gdm1hLT5mZW5jZV9zaXplICYmCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfdm1hLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oCj4gaW5kZXgg NGY3YzFjNzU5OWY0Li42NGNmMDI5YzAyOGEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV92bWEuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmgK PiBAQCAtMjY1LDggKzI2NSwxMSBAQCBpOTE1X3ZtYV9jb21wYXJlKHN0cnVjdCBpOTE1X3ZtYSAq dm1hLAo+ICAJICovCj4gIAlCVUlMRF9CVUdfT04oSTkxNV9HR1RUX1ZJRVdfTk9STUFMID49IEk5 MTVfR0dUVF9WSUVXX1BBUlRJQUwpOwo+ICAJQlVJTERfQlVHX09OKEk5MTVfR0dUVF9WSUVXX1BB UlRJQUwgPj0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCk7Cj4gKwlCVUlMRF9CVUdfT04oSTkxNV9H R1RUX1ZJRVdfUk9UQVRFRCA+PSBJOTE1X0dHVFRfVklFV19SRU1BUFBFRCk7Cj4gIAlCVUlMRF9C VUdfT04ob2Zmc2V0b2YodHlwZW9mKCp2aWV3KSwgcm90YXRlZCkgIT0KPiAgCQkgICAgIG9mZnNl dG9mKHR5cGVvZigqdmlldyksIHBhcnRpYWwpKTsKPiArCUJVSUxEX0JVR19PTihvZmZzZXRvZih0 eXBlb2YoKnZpZXcpLCByb3RhdGVkKSAhPQo+ICsJCSAgICAgb2Zmc2V0b2YodHlwZW9mKCp2aWV3 KSwgcmVtYXBwZWQpKTsKPiAgCXJldHVybiBtZW1jbXAoJnZtYS0+Z2d0dF92aWV3LnBhcnRpYWws ICZ2aWV3LT5wYXJ0aWFsLCB2aWV3LT50eXBlKTsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gaW5kZXggYjA4N2VkMjg1Y2MxLi42ZTVjZTA4NGIyNDQgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTE5NDcsNiArMTk0NywxNyBA QCB1bnNpZ25lZCBpbnQgaW50ZWxfcm90YXRpb25faW5mb19zaXplKGNvbnN0IHN0cnVjdCBpbnRl bF9yb3RhdGlvbl9pbmZvICpyb3RfaW5mbwo+ICAJcmV0dXJuIHNpemU7Cj4gIH0KPiAgCj4gK3Vu c2lnbmVkIGludCBpbnRlbF9yZW1hcHBlZF9pbmZvX3NpemUoY29uc3Qgc3RydWN0IGludGVsX3Jl bWFwcGVkX2luZm8gKnJlbV9pbmZvKQo+ICt7Cj4gKwl1bnNpZ25lZCBpbnQgc2l6ZSA9IDA7Cj4g KwlpbnQgaTsKPiArCj4gKwlmb3IgKGkgPSAwIDsgaSA8IEFSUkFZX1NJWkUocmVtX2luZm8tPnBs YW5lKTsgaSsrKQo+ICsJCXNpemUgKz0gcmVtX2luZm8tPnBsYW5lW2ldLndpZHRoICogcmVtX2lu Zm8tPnBsYW5lW2ldLmhlaWdodDsKPiArCj4gKwlyZXR1cm4gc2l6ZTsKPiArfQo+ICsKPiAgc3Rh dGljIHZvaWQKPiAgaW50ZWxfZmlsbF9mYl9nZ3R0X3ZpZXcoc3RydWN0IGk5MTVfZ2d0dF92aWV3 ICp2aWV3LAo+ICAJCQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGU1YTQzNmMzMzMwNy4uZDAyNTgyMWE3MWQ1IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMTYwNCw2ICsxNjA0LDcgQEAgdW5zaWdu ZWQgaW50IGludGVsX2ZiX3h5X3RvX2xpbmVhcihpbnQgeCwgaW50IHksCj4gIHZvaWQgaW50ZWxf YWRkX2ZiX29mZnNldHMoaW50ICp4LCBpbnQgKnksCj4gIAkJCSAgY29uc3Qgc3RydWN0IGludGVs X3BsYW5lX3N0YXRlICpzdGF0ZSwgaW50IHBsYW5lKTsKPiAgdW5zaWduZWQgaW50IGludGVsX3Jv dGF0aW9uX2luZm9fc2l6ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyAqcm90X2lu Zm8pOwo+ICt1bnNpZ25lZCBpbnQgaW50ZWxfcmVtYXBwZWRfaW5mb19zaXplKGNvbnN0IHN0cnVj dCBpbnRlbF9yZW1hcHBlZF9pbmZvICpyZW1faW5mbyk7Cj4gIGJvb2wgaW50ZWxfaGFzX3BlbmRp bmdfZmJfdW5waW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdm9pZCBp bnRlbF9tYXJrX2J1c3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdm9p ZCBpbnRlbF9tYXJrX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfdm1hLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV92bWEuYwo+IGluZGV4IGZmYTc0Mjkw ZTA1NC4uNGZjNDljMjdmMTNjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9pOTE1X3ZtYS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2k5MTVfdm1hLmMKPiBAQCAtMzk1LDggKzM5NSw4IEBAIGFzc2VydF9yb3RhdGVkKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gIAlyZXR1cm4gc2c7Cj4gIH0KPiAgCj4gLXN0YXRp YyB1bnNpZ25lZCBpbnQgcm90YXRlZF9zaXplKGNvbnN0IHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9w bGFuZV9pbmZvICphLAo+IC0JCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9wbGFuZV9p bmZvICpiKQo+ICtzdGF0aWMgdW5zaWduZWQgaW50IHJvdGF0ZWRfc2l6ZShjb25zdCBzdHJ1Y3Qg aW50ZWxfcmVtYXBwZWRfcGxhbmVfaW5mbyAqYSwKPiArCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxf cmVtYXBwZWRfcGxhbmVfaW5mbyAqYikKPiAgewo+ICAJcmV0dXJuIGEtPndpZHRoICogYS0+aGVp Z2h0ICsgYi0+d2lkdGggKiBiLT5oZWlnaHQ7Cj4gIH0KPiBAQCAtNDA2LDcgKzQwNiw3IEBAIHN0 YXRpYyBpbnQgaWd0X3ZtYV9yb3RhdGUodm9pZCAqYXJnKQo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUgPSBhcmc7Cj4gIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9ICZp OTE1LT5nZ3R0LnZtOwo+ICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiAtCWNv bnN0IHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9wbGFuZV9pbmZvIHBsYW5lc1tdID0gewo+ICsJY29u c3Qgc3RydWN0IGludGVsX3JlbWFwcGVkX3BsYW5lX2luZm8gcGxhbmVzW10gPSB7Cj4gIAkJeyAu d2lkdGggPSAxLCAuaGVpZ2h0ID0gMSwgLnN0cmlkZSA9IDEgfSwKPiAgCQl7IC53aWR0aCA9IDIs IC5oZWlnaHQgPSAyLCAuc3RyaWRlID0gMiB9LAo+ICAJCXsgLndpZHRoID0gNCwgLmhlaWdodCA9 IDQsIC5zdHJpZGUgPSA0IH0sCj4gLS0gCj4gMi4xOS4yCj4gCj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4g SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0 d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==