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: Fri, 26 Oct 2018 15:43:37 +0300 Message-ID: <20181026124337.GT9144@intel.com> 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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id EEEFB6E471 for ; Fri, 26 Oct 2018 12:43:41 +0000 (UTC) Content-Disposition: inline In-Reply-To: <3d7aa1df-7a94-2fdf-c02e-75c01c2db989@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: Tvrtko Ursulin Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBPY3QgMjYsIDIwMTggYXQgMTA6MTk6MjVBTSArMDEwMCwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4gCj4gT24gMjMvMTAvMjAxOCAxNzowMiwgVmlsbGUgU3lyamFsYSB3cm90ZToKPiA+ IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4g PiAKPiA+IFRvIG92ZXJjb21lIGRpc3BsYXkgZW5naW5lIHN0cmlkZSBsaW1pdHMgd2UnbGwgd2Fu dCB0byByZW1hcCB0aGUKPiA+IHBhZ2VzIGluIHRoZSBHVFQuIFRvIHRoYXQgZW5kIHdlIG5lZWQg YSBuZXcgZ3R0X3ZpZXcgdHlwZSB3aGljaAo+ID4gaXMganVzdCBsaWtlIHRoZSAicm90YXRlZCIg dHlwZSBleGNlcHQgbm90IHJvdGF0ZWQuCj4gPiAKPiA+IHYyOiBVc2UgaW50ZWxfcmVtYXBwZWRf cGxhbmVfaW5mbyBiYXNlIHR5cGUKPiA+ICAgICAgcy91bnVzZWQvdW51c2VkX21iei8gKENocmlz KQo+ID4gICAgICBTZXBhcmF0ZSBCVUlMRF9CVUdfT04oKXMgKENocmlzKQo+ID4gICAgICBVc2Ug STkxNV9HVFRfUEFHRV9TSVpFIChDaHJpcykKPiA+IHYzOiBVc2UgaTkxNV9nZW1fb2JqZWN0X2dl dF9kbWFfYWRkcmVzcygpIChDaHJpcykKPiA+ICAgICAgVHJpbSB0aGUgc2cgKFR2cnRrbykKPiA+ IAo+ID4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ID4gQ2M6 IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBsaW51eC5pbnRlbC5jb20+Cj4gPiBTaWdu ZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t Pgo+ID4gLS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAg IHwgMTIgKysrKwo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAg ICB8IDc0ICsrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5oICAgICAgIHwgMjUgKysrKysrLS0KPiA+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV92bWEuYyAgICAgICAgICAgfCAgNiArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3ZtYS5oICAgICAgICAgICB8ICAzICsKPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jICAgICAgfCAxMSArKysrCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oICAgICAgICAgIHwgIDEgKwo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaTkxNV92bWEuYyB8ICA2ICstCj4gPiAgIDggZmlsZXMgY2hhbmdlZCwgMTMw IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCj4gPiBpbmRleCA1YjM3ZDVmOGUxMzIuLmNlMDE5MTI2MzA0ZCAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gQEAgLTE5Niw2ICsxOTYsMTgg QEAgZGVzY3JpYmVfb2JqKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKPiA+ICAgCQkJCQkgICB2bWEtPmdndHRfdmlldy5yb3RhdGVkLnBsYW5lWzFd Lm9mZnNldCk7Cj4gPiAgIAkJCQlicmVhazsKPiA+ICAgCj4gPiArCQkJY2FzZSBJOTE1X0dHVFRf VklFV19SRU1BUFBFRDoKPiA+ICsJCQkJc2VxX3ByaW50ZihtLCAiLCByZW1hcHBlZCBbKCV1eCV1 LCBzdHJpZGU9JXUsIG9mZnNldD0ldSksICgldXgldSwgc3RyaWRlPSV1LCBvZmZzZXQ9JXUpXSIs Cj4gPiArCQkJCQkgICB2bWEtPmdndHRfdmlldy5yZW1hcHBlZC5wbGFuZVswXS53aWR0aCwKPiA+ ICsJCQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBdLmhlaWdodCwKPiA+ICsJ CQkJCSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBdLnN0cmlkZSwKPiA+ICsJCQkJ CSAgIHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzBdLm9mZnNldCwKPiA+ICsJCQkJCSAg IHZtYS0+Z2d0dF92aWV3LnJlbWFwcGVkLnBsYW5lWzFdLndpZHRoLAo+ID4gKwkJCQkJICAgdm1h LT5nZ3R0X3ZpZXcucmVtYXBwZWQucGxhbmVbMV0uaGVpZ2h0LAo+ID4gKwkJCQkJICAgdm1hLT5n Z3R0X3ZpZXcucmVtYXBwZWQucGxhbmVbMV0uc3RyaWRlLAo+ID4gKwkJCQkJICAgdm1hLT5nZ3R0 X3ZpZXcucmVtYXBwZWQucGxhbmVbMV0ub2Zmc2V0KTsKPiA+ICsJCQkJYnJlYWs7Cj4gPiArCj4g PiAgIAkJCWRlZmF1bHQ6Cj4gPiAgIAkJCQlNSVNTSU5HX0NBU0Uodm1hLT5nZ3R0X3ZpZXcudHlw ZSk7Cj4gPiAgIAkJCQlicmVhazsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4g PiBpbmRleCA5OGQ5YTFlYjFlZDIuLmQwZTUwYjU4NGViZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ndHQuYwo+ID4gQEAgLTM3MDUsNiArMzcwNSw3NSBAQCBpbnRlbF9yb3Rh dGVfcGFnZXMoc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gKnJvdF9pbmZvLAo+ID4gICAJcmV0 dXJuIEVSUl9QVFIocmV0KTsKPiA+ICAgfQo+ID4gICAKPiA+ICtzdGF0aWMgc3RydWN0IHNjYXR0 ZXJsaXN0ICoKPiA+ICtyZW1hcF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAo+ID4gKwkgICAgdW5zaWduZWQgaW50IHdpZHRoLCB1bnNp Z25lZCBpbnQgaGVpZ2h0LAo+ID4gKwkgICAgdW5zaWduZWQgaW50IHN0cmlkZSwKPiA+ICsJICAg IHN0cnVjdCBzZ190YWJsZSAqc3QsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2cpCj4gPiArewo+ID4g Kwl1bnNpZ25lZCBpbnQgY29sdW1uLCByb3c7Cj4gPiArCj4gPiArCWZvciAocm93ID0gMDsgcm93 IDwgaGVpZ2h0OyByb3crKykgewo+ID4gKwkJZm9yIChjb2x1bW4gPSAwOyBjb2x1bW4gPCB3aWR0 aDsgY29sdW1uKyspIHsKPiA+ICsJCQlzdC0+bmVudHMrKzsKPiA+ICsJCQkvKiBXZSBkb24ndCBu ZWVkIHRoZSBwYWdlcywgYnV0IG5lZWQgdG8gaW5pdGlhbGl6ZQo+ID4gKwkJCSAqIHRoZSBlbnRy aWVzIHNvIHRoZSBzZyBsaXN0IGNhbiBiZSBoYXBwaWx5IHRyYXZlcnNlZC4KPiA+ICsJCQkgKiBU aGUgb25seSB0aGluZyB3ZSBuZWVkIGFyZSBETUEgYWRkcmVzc2VzLgo+ID4gKwkJCSAqLwo+ID4g KwkJCXNnX3NldF9wYWdlKHNnLCBOVUxMLCBJOTE1X0dUVF9QQUdFX1NJWkUsIDApOwo+ID4gKwkJ CXNnX2RtYV9hZGRyZXNzKHNnKSA9Cj4gPiArCQkJCWk5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2Fk ZHJlc3Mob2JqLCBvZmZzZXQgKyBjb2x1bW4pOwo+ID4gKwkJCXNnX2RtYV9sZW4oc2cpID0gSTkx NV9HVFRfUEFHRV9TSVpFOwo+IAo+IFNnIHRyaW0gd2lsbCBkbyBub3RoaW5nIHNpbmNlIHRoZSBu ZW50cyBpcyBlcXVhbCB0byBudW0gcGFnZXMuIFRvIAo+IGJlbmVmaXQgZnJvbSBpdCwgeW91IHdv dWxkIG5lZWQgdG8gbG9vayBmb3IgY29uc2VjdXRpdmUgRE1BIGFkZHJlc3NlcyAKPiBhbmQgImFw cGVuZCIgdG8gdGhlIGV4aXN0aW5nIHNnIGVudHJ5IGluIHRob3NlIGNhc2VzLgoKSG1tLiBJIHRo b3VnaHQgdGhhdCBpcyB3aGF0IHNnX3RyaW0oKSBkb2VzLiBJIGd1ZXNzIG5vdC4KCj4gQ29udHJh cnkgdG8gdGhlIAo+IHJvdGF0ZWQgcmVtYXAsIHRoaXMgb25lIHNob3VsZCBhY3R1YWxseSBiZW5l Zml0IGEgbG90IGZyb20gaXQuIChGb3IgdGhpcyAKPiByZWFzb24gcm90YXRlZCByZW1hcCBkb2Vz IG5vdCBib3RoZXIgdG8gdHJ5IGl0IC0gaXQgd291bGQgYmUgc29tZSBsdWNrIAo+IHRvIGZpbmQg Y29uc2VjdXRpdmUgcGFnZXMgYWZ0ZXIgcm90YXRpb24uKQo+IAo+IFJlZ2FyZHMsCj4gCj4gVHZy dGtvCj4gCj4gPiArCQkJc2cgPSBzZ19uZXh0KHNnKTsKPiA+ICsJCX0KPiA+ICsJCW9mZnNldCAr PSBzdHJpZGU7Cj4gPiArCX0KPiA+ICsKPiA+ICsJcmV0dXJuIHNnOwo+ID4gK30KPiA+ICsKPiA+ ICtzdGF0aWMgbm9pbmxpbmUgc3RydWN0IHNnX3RhYmxlICoKPiA+ICtpbnRlbF9yZW1hcF9wYWdl cyhzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfaW5mbyAqcmVtX2luZm8sCj4gPiArCQkgIHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gPiArewo+ID4gKwl1bnNpZ25lZCBpbnQgc2l6ZSA9 IGludGVsX3JlbWFwcGVkX2luZm9fc2l6ZShyZW1faW5mbyk7Cj4gPiArCXN0cnVjdCBzZ190YWJs ZSAqc3Q7Cj4gPiArCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7Cj4gPiArCWludCByZXQgPSAtRU5P TUVNOwo+ID4gKwlpbnQgaTsKPiA+ICsKPiA+ICsJLyogQWxsb2NhdGUgdGFyZ2V0IFNHIGxpc3Qu ICovCj4gPiArCXN0ID0ga21hbGxvYyhzaXplb2YoKnN0KSwgR0ZQX0tFUk5FTCk7Cj4gPiArCWlm ICghc3QpCj4gPiArCQlnb3RvIGVycl9zdF9hbGxvYzsKPiA+ICsKPiA+ICsJcmV0ID0gc2dfYWxs b2NfdGFibGUoc3QsIHNpemUsIEdGUF9LRVJORUwpOwo+ID4gKwlpZiAocmV0KQo+ID4gKwkJZ290 byBlcnJfc2dfYWxsb2M7Cj4gPiArCj4gPiArCXN0LT5uZW50cyA9IDA7Cj4gPiArCXNnID0gc3Qt PnNnbDsKPiA+ICsKPiA+ICsJZm9yIChpID0gMCA7IGkgPCBBUlJBWV9TSVpFKHJlbV9pbmZvLT5w bGFuZSk7IGkrKykgewo+ID4gKwkJc2cgPSByZW1hcF9wYWdlcyhvYmosIHJlbV9pbmZvLT5wbGFu ZVtpXS5vZmZzZXQsCj4gPiArCQkJCSByZW1faW5mby0+cGxhbmVbaV0ud2lkdGgsIHJlbV9pbmZv LT5wbGFuZVtpXS5oZWlnaHQsCj4gPiArCQkJCSByZW1faW5mby0+cGxhbmVbaV0uc3RyaWRlLCBz dCwgc2cpOwo+ID4gKwl9Cj4gPiArCj4gPiArCWk5MTVfc2dfdHJpbShzdCk7Cj4gPiArCj4gPiAr CXJldHVybiBzdDsKPiA+ICsKPiA+ICtlcnJfc2dfYWxsb2M6Cj4gPiArCWtmcmVlKHN0KTsKPiA+ ICtlcnJfc3RfYWxsb2M6Cj4gPiArCj4gPiArCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0byBj cmVhdGUgcmVtYXBwZWQgbWFwcGluZyBmb3Igb2JqZWN0IHNpemUgJXp1ISAoJXV4JXUgdGlsZXMs ICV1IHBhZ2VzKVxuIiwKPiA+ICsJCQkgb2JqLT5iYXNlLnNpemUsIHJlbV9pbmZvLT5wbGFuZVsw XS53aWR0aCwgcmVtX2luZm8tPnBsYW5lWzBdLmhlaWdodCwgc2l6ZSk7Cj4gPiArCj4gPiArCXJl dHVybiBFUlJfUFRSKHJldCk7Cj4gPiArfQo+ID4gKwo+ID4gICBzdGF0aWMgbm9pbmxpbmUgc3Ry dWN0IHNnX3RhYmxlICoKPiA+ICAgaW50ZWxfcGFydGlhbF9wYWdlcyhjb25zdCBzdHJ1Y3QgaTkx NV9nZ3R0X3ZpZXcgKnZpZXcsCj4gPiAgIAkJICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCj4gPiBAQCAtMzc4Myw2ICszODUyLDExIEBAIGk5MTVfZ2V0X2dndHRfdm1hX3BhZ2Vz KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ID4gICAJCQlpbnRlbF9yb3RhdGVfcGFnZXMoJnZtYS0+ Z2d0dF92aWV3LnJvdGF0ZWQsIHZtYS0+b2JqKTsKPiA+ICAgCQlicmVhazsKPiA+ICAgCj4gPiAr CWNhc2UgSTkxNV9HR1RUX1ZJRVdfUkVNQVBQRUQ6Cj4gPiArCQl2bWEtPnBhZ2VzID0KPiA+ICsJ CQlpbnRlbF9yZW1hcF9wYWdlcygmdm1hLT5nZ3R0X3ZpZXcucmVtYXBwZWQsIHZtYS0+b2JqKTsK PiA+ICsJCWJyZWFrOwo+ID4gKwo+ID4gICAJY2FzZSBJOTE1X0dHVFRfVklFV19QQVJUSUFMOgo+ ID4gICAJCXZtYS0+cGFnZXMgPSBpbnRlbF9wYXJ0aWFsX3BhZ2VzKCZ2bWEtPmdndHRfdmlldywg dm1hLT5vYmopOwo+ID4gICAJCWJyZWFrOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0 LmgKPiA+IGluZGV4IDdlMmFmNWY0ZjM5Yi4uNjlhMjJmNTdlNmNhIDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gPiBAQCAtMTYwLDExICsxNjAsMTggQEAgdHlwZWRl ZiB1NjQgZ2VuOF9wcGd0dF9wbWw0ZV90Owo+ID4gICAKPiA+ICAgc3RydWN0IHNnX3RhYmxlOwo+ ID4gICAKPiA+ICtzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRfcGxhbmVfaW5mbyB7Cj4gPiArCS8qIGlu IGd0dCBwYWdlcyAqLwo+ID4gKwl1bnNpZ25lZCBpbnQgd2lkdGgsIGhlaWdodCwgc3RyaWRlLCBv ZmZzZXQ7Cj4gPiArfSBfX3BhY2tlZDsKPiA+ICsKPiA+ICtzdHJ1Y3QgaW50ZWxfcmVtYXBwZWRf aW5mbyB7Cj4gPiArCXN0cnVjdCBpbnRlbF9yZW1hcHBlZF9wbGFuZV9pbmZvIHBsYW5lWzJdOwo+ ID4gKwl1bnNpZ25lZCBpbnQgdW51c2VkX21iejsKPiA+ICt9IF9fcGFja2VkOwo+ID4gKwo+ID4g ICBzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyB7Cj4gPiAtCXN0cnVjdCBpbnRlbF9yb3RhdGlv bl9wbGFuZV9pbmZvIHsKPiA+IC0JCS8qIHRpbGVzICovCj4gPiAtCQl1bnNpZ25lZCBpbnQgd2lk dGgsIGhlaWdodCwgc3RyaWRlLCBvZmZzZXQ7Cj4gPiAtCX0gcGxhbmVbMl07Cj4gPiArCXN0cnVj dCBpbnRlbF9yZW1hcHBlZF9wbGFuZV9pbmZvIHBsYW5lWzJdOwo+ID4gICB9IF9fcGFja2VkOwo+ ID4gICAKPiA+ICAgc3RydWN0IGludGVsX3BhcnRpYWxfaW5mbyB7Cj4gPiBAQCAtMTc2LDEyICsx ODMsMjAgQEAgZW51bSBpOTE1X2dndHRfdmlld190eXBlIHsKPiA+ICAgCUk5MTVfR0dUVF9WSUVX X05PUk1BTCA9IDAsCj4gPiAgIAlJOTE1X0dHVFRfVklFV19ST1RBVEVEID0gc2l6ZW9mKHN0cnVj dCBpbnRlbF9yb3RhdGlvbl9pbmZvKSwKPiA+ICAgCUk5MTVfR0dUVF9WSUVXX1BBUlRJQUwgPSBz aXplb2Yoc3RydWN0IGludGVsX3BhcnRpYWxfaW5mbyksCj4gPiArCUk5MTVfR0dUVF9WSUVXX1JF TUFQUEVEID0gc2l6ZW9mKHN0cnVjdCBpbnRlbF9yZW1hcHBlZF9pbmZvKSwKPiA+ICAgfTsKPiA+ ICAgCj4gPiAgIHN0YXRpYyBpbmxpbmUgdm9pZCBhc3NlcnRfaTkxNV9nZW1fZ3R0X3R5cGVzKHZv aWQpCj4gPiAgIHsKPiA+ICAgCUJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IGludGVsX3JvdGF0 aW9uX2luZm8pICE9IDgqc2l6ZW9mKHVuc2lnbmVkIGludCkpOwo+ID4gICAJQlVJTERfQlVHX09O KHNpemVvZihzdHJ1Y3QgaW50ZWxfcGFydGlhbF9pbmZvKSAhPSBzaXplb2YodTY0KSArIHNpemVv Zih1bnNpZ25lZCBpbnQpKTsKPiA+ICsJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgaW50ZWxf cmVtYXBwZWRfaW5mbykgIT0gOSpzaXplb2YodW5zaWduZWQgaW50KSk7Cj4gPiArCj4gPiArCS8q IENoZWNrIHRoYXQgcm90YXRpb24vcmVtYXBwZWQgc2hhcmVzIG9mZnNldHMgZm9yIHNpbXBsaWNp dHkgKi8KPiA+ICsJQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCBpbnRlbF9yZW1hcHBlZF9p bmZvLCBwbGFuZVswXSkgIT0KPiA+ICsJCSAgICAgb2Zmc2V0b2Yoc3RydWN0IGludGVsX3JvdGF0 aW9uX2luZm8sIHBsYW5lWzBdKSk7Cj4gPiArCUJVSUxEX0JVR19PTihvZmZzZXRvZmVuZChzdHJ1 Y3QgaW50ZWxfcmVtYXBwZWRfaW5mbywgcGxhbmVbMV0pICE9Cj4gPiArCQkgICAgIG9mZnNldG9m ZW5kKHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvLCBwbGFuZVsxXSkpOwo+ID4gICAKPiA+ICAg CS8qIEFzIHdlIGVuY29kZSB0aGUgc2l6ZSBvZiBlYWNoIGJyYW5jaCBpbnNpZGUgdGhlIHVuaW9u IGludG8gaXRzIHR5cGUsCj4gPiAgIAkgKiB3ZSBoYXZlIHRvIGJlIGNhcmVmdWwgdGhhdCBlYWNo IGJyYW5jaCBoYXMgYSB1bmlxdWUgc2l6ZS4KPiA+IEBAIC0xOTAsNiArMjA1LDcgQEAgc3RhdGlj IGlubGluZSB2b2lkIGFzc2VydF9pOTE1X2dlbV9ndHRfdHlwZXModm9pZCkKPiA+ICAgCWNhc2Ug STkxNV9HR1RUX1ZJRVdfTk9STUFMOgo+ID4gICAJY2FzZSBJOTE1X0dHVFRfVklFV19QQVJUSUFM Ogo+ID4gICAJY2FzZSBJOTE1X0dHVFRfVklFV19ST1RBVEVEOgo+ID4gKwljYXNlIEk5MTVfR0dU VF9WSUVXX1JFTUFQUEVEOgo+ID4gICAJCS8qIGdjYyBjb21wbGFpbnMgaWYgdGhlc2UgYXJlIGlk ZW50aWNhbCBjYXNlcyAqLwo+ID4gICAJCWJyZWFrOwo+ID4gICAJfQo+ID4gQEAgLTIwMSw2ICsy MTcsNyBAQCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgewo+ID4gICAJCS8qIE1lbWJlcnMgbmVlZCB0 byBjb250YWluIG5vIGhvbGVzL3BhZGRpbmcgKi8KPiA+ICAgCQlzdHJ1Y3QgaW50ZWxfcGFydGlh bF9pbmZvIHBhcnRpYWw7Cj4gPiAgIAkJc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gcm90YXRl ZDsKPiA+ICsJCXN0cnVjdCBpbnRlbF9yZW1hcHBlZF9pbmZvIHJlbWFwcGVkOwo+ID4gICAJfTsK PiA+ICAgfTsKPiA+ICAgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV92bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKPiA+IGluZGV4IDgyNjUy YzNkMWJlZC4uMjA3MGU0NGVhYTAzIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV92bWEuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwo+ ID4gQEAgLTE2NCw2ICsxNjQsOSBAQCB2bWFfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosCj4gPiAgIAkJfSBlbHNlIGlmICh2aWV3LT50eXBlID09IEk5MTVfR0dUVF9WSUVX X1JPVEFURUQpIHsKPiA+ICAgCQkJdm1hLT5zaXplID0gaW50ZWxfcm90YXRpb25faW5mb19zaXpl KCZ2aWV3LT5yb3RhdGVkKTsKPiA+ICAgCQkJdm1hLT5zaXplIDw8PSBQQUdFX1NISUZUOwo+ID4g KwkJfSBlbHNlIGlmICh2aWV3LT50eXBlID09IEk5MTVfR0dUVF9WSUVXX1JFTUFQUEVEKSB7Cj4g PiArCQkJdm1hLT5zaXplID0gaW50ZWxfcmVtYXBwZWRfaW5mb19zaXplKCZ2aWV3LT5yZW1hcHBl ZCk7Cj4gPiArCQkJdm1hLT5zaXplIDw8PSBQQUdFX1NISUZUOwo+ID4gICAJCX0KPiA+ICAgCX0K PiA+ICAgCj4gPiBAQCAtNDY0LDcgKzQ2Nyw4IEBAIHZvaWQgX19pOTE1X3ZtYV9zZXRfbWFwX2Fu ZF9mZW5jZWFibGUoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gPiAgIAkgKiBFeHBsaWNpdGx5IGRp c2FibGUgZm9yIHJvdGF0ZWQgVk1BIHNpbmNlIHRoZSBkaXNwbGF5IGRvZXMgbm90Cj4gPiAgIAkg KiBuZWVkIHRoZSBmZW5jZSBhbmQgdGhlIFZNQSBpcyBub3QgYWNjZXNzaWJsZSB0byBvdGhlciB1 c2Vycy4KPiA+ICAgCSAqLwo+ID4gLQlpZiAodm1hLT5nZ3R0X3ZpZXcudHlwZSA9PSBJOTE1X0dH VFRfVklFV19ST1RBVEVEKQo+ID4gKwlpZiAodm1hLT5nZ3R0X3ZpZXcudHlwZSA9PSBJOTE1X0dH VFRfVklFV19ST1RBVEVEIHx8Cj4gPiArCSAgICB2bWEtPmdndHRfdmlldy50eXBlID09IEk5MTVf R0dUVF9WSUVXX1JFTUFQUEVEKQo+ID4gICAJCXJldHVybjsKPiA+ICAgCj4gPiAgIAlmZW5jZWFi bGUgPSAodm1hLT5ub2RlLnNpemUgPj0gdm1hLT5mZW5jZV9zaXplICYmCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfdm1hLmgKPiA+IGluZGV4IDRmN2MxYzc1OTlmNC4uNjRjZjAyOWMwMjhhIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaAo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaAo+ID4gQEAgLTI2NSw4ICsyNjUsMTEgQEAgaTkxNV92 bWFfY29tcGFyZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKPiA+ICAgCSAqLwo+ID4gICAJQlVJTERf QlVHX09OKEk5MTVfR0dUVF9WSUVXX05PUk1BTCA+PSBJOTE1X0dHVFRfVklFV19QQVJUSUFMKTsK PiA+ICAgCUJVSUxEX0JVR19PTihJOTE1X0dHVFRfVklFV19QQVJUSUFMID49IEk5MTVfR0dUVF9W SUVXX1JPVEFURUQpOwo+ID4gKwlCVUlMRF9CVUdfT04oSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCA+ PSBJOTE1X0dHVFRfVklFV19SRU1BUFBFRCk7Cj4gPiAgIAlCVUlMRF9CVUdfT04ob2Zmc2V0b2Yo dHlwZW9mKCp2aWV3KSwgcm90YXRlZCkgIT0KPiA+ICAgCQkgICAgIG9mZnNldG9mKHR5cGVvZigq dmlldyksIHBhcnRpYWwpKTsKPiA+ICsJQlVJTERfQlVHX09OKG9mZnNldG9mKHR5cGVvZigqdmll dyksIHJvdGF0ZWQpICE9Cj4gPiArCQkgICAgIG9mZnNldG9mKHR5cGVvZigqdmlldyksIHJlbWFw cGVkKSk7Cj4gPiAgIAlyZXR1cm4gbWVtY21wKCZ2bWEtPmdndHRfdmlldy5wYXJ0aWFsLCAmdmll dy0+cGFydGlhbCwgdmlldy0+dHlwZSk7Cj4gPiAgIH0KPiA+ICAgCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBpbmRleCA4YTBiNDc3YTY5ZDMuLjQxZjdlMDc5NWIxNCAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBAQCAtMTk1Nyw2 ICsxOTU3LDE3IEBAIHVuc2lnbmVkIGludCBpbnRlbF9yb3RhdGlvbl9pbmZvX3NpemUoY29uc3Qg c3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gKnJvdF9pbmZvCj4gPiAgIAlyZXR1cm4gc2l6ZTsK PiA+ICAgfQo+ID4gICAKPiA+ICt1bnNpZ25lZCBpbnQgaW50ZWxfcmVtYXBwZWRfaW5mb19zaXpl KGNvbnN0IHN0cnVjdCBpbnRlbF9yZW1hcHBlZF9pbmZvICpyZW1faW5mbykKPiA+ICt7Cj4gPiAr CXVuc2lnbmVkIGludCBzaXplID0gMDsKPiA+ICsJaW50IGk7Cj4gPiArCj4gPiArCWZvciAoaSA9 IDAgOyBpIDwgQVJSQVlfU0laRShyZW1faW5mby0+cGxhbmUpOyBpKyspCj4gPiArCQlzaXplICs9 IHJlbV9pbmZvLT5wbGFuZVtpXS53aWR0aCAqIHJlbV9pbmZvLT5wbGFuZVtpXS5oZWlnaHQ7Cj4g PiArCj4gPiArCXJldHVybiBzaXplOwo+ID4gK30KPiA+ICsKPiA+ICAgc3RhdGljIHZvaWQKPiA+ ICAgaW50ZWxfZmlsbF9mYl9nZ3R0X3ZpZXcoc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3LAo+ ID4gICAJCQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gPiBpbmRleCAwZTlhOTI2ZmNhMDQuLjY5OTNlZmY1ZGZhZiAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTE1MjMsNiArMTUyMyw3IEBAIHVu c2lnbmVkIGludCBpbnRlbF9mYl94eV90b19saW5lYXIoaW50IHgsIGludCB5LAo+ID4gICB2b2lk IGludGVsX2FkZF9mYl9vZmZzZXRzKGludCAqeCwgaW50ICp5LAo+ID4gICAJCQkgIGNvbnN0IHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUsIGludCBwbGFuZSk7Cj4gPiAgIHVuc2lnbmVk IGludCBpbnRlbF9yb3RhdGlvbl9pbmZvX3NpemUoY29uc3Qgc3RydWN0IGludGVsX3JvdGF0aW9u X2luZm8gKnJvdF9pbmZvKTsKPiA+ICt1bnNpZ25lZCBpbnQgaW50ZWxfcmVtYXBwZWRfaW5mb19z aXplKGNvbnN0IHN0cnVjdCBpbnRlbF9yZW1hcHBlZF9pbmZvICpyZW1faW5mbyk7Cj4gPiAgIGJv b2wgaW50ZWxfaGFzX3BlbmRpbmdfZmJfdW5waW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKPiA+ICAgdm9pZCBpbnRlbF9tYXJrX2J1c3koc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKPiA+ICAgdm9pZCBpbnRlbF9tYXJrX2lkbGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaTkxNV92bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9p OTE1X3ZtYS5jCj4gPiBpbmRleCBmZmE3NDI5MGUwNTQuLjRmYzQ5YzI3ZjEzYyAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3ZtYS5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV92bWEuYwo+ID4gQEAgLTM5NSw4 ICszOTUsOCBAQCBhc3NlcnRfcm90YXRlZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAo+ID4gICAJcmV0dXJuIHNnOwo+ID4gICB9Cj4gPiAgIAo+ID4gLXN0YXRpYyB1bnNpZ25lZCBp bnQgcm90YXRlZF9zaXplKGNvbnN0IHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9wbGFuZV9pbmZvICph LAo+ID4gLQkJCQkgY29uc3Qgc3RydWN0IGludGVsX3JvdGF0aW9uX3BsYW5lX2luZm8gKmIpCj4g PiArc3RhdGljIHVuc2lnbmVkIGludCByb3RhdGVkX3NpemUoY29uc3Qgc3RydWN0IGludGVsX3Jl bWFwcGVkX3BsYW5lX2luZm8gKmEsCj4gPiArCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfcmVtYXBw ZWRfcGxhbmVfaW5mbyAqYikKPiA+ICAgewo+ID4gICAJcmV0dXJuIGEtPndpZHRoICogYS0+aGVp Z2h0ICsgYi0+d2lkdGggKiBiLT5oZWlnaHQ7Cj4gPiAgIH0KPiA+IEBAIC00MDYsNyArNDA2LDcg QEAgc3RhdGljIGludCBpZ3Rfdm1hX3JvdGF0ZSh2b2lkICphcmcpCj4gPiAgIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKPiA+ICAgCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3Bh Y2UgKnZtID0gJmk5MTUtPmdndHQudm07Cj4gPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqOwo+ID4gLQljb25zdCBzdHJ1Y3QgaW50ZWxfcm90YXRpb25fcGxhbmVfaW5mbyBwbGFu ZXNbXSA9IHsKPiA+ICsJY29uc3Qgc3RydWN0IGludGVsX3JlbWFwcGVkX3BsYW5lX2luZm8gcGxh bmVzW10gPSB7Cj4gPiAgIAkJeyAud2lkdGggPSAxLCAuaGVpZ2h0ID0gMSwgLnN0cmlkZSA9IDEg fSwKPiA+ICAgCQl7IC53aWR0aCA9IDIsIC5oZWlnaHQgPSAyLCAuc3RyaWRlID0gMiB9LAo+ID4g ICAJCXsgLndpZHRoID0gNCwgLmhlaWdodCA9IDQsIC5zdHJpZGUgPSA0IH0sCj4gPiAKCi0tIApW aWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==