From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915: Infrastructure for supporting different GGTT views per object Date: Mon, 01 Dec 2014 11:32:42 +0000 Message-ID: <547C51DA.1000606@linux.intel.com> References: <1415284765-25613-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1417099964-30386-1-git-send-email-tvrtko.ursulin@linux.intel.com> <20141128173106.GF32117@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 886F26E127 for ; Mon, 1 Dec 2014 03:32:45 -0800 (PST) In-Reply-To: <20141128173106.GF32117@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDExLzI4LzIwMTQgMDU6MzEgUE0sIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gT24gVGh1LCBO b3YgMjcsIDIwMTQgYXQgMDI6NTI6NDRQTSArMDAwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4+ IEZyb206IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4+Cj4+IFRo aW5ncyBsaWtlIHJlbGlhYmxlIEdHVFQgbWFwcGluZ3MgYW5kIG1pcnJvcmVkIDJkLW9uLTNkIGRp c3BsYXkgd2lsbCBuZWVkCj4+IHRvIG1hcCBvYmplY3RzIGludG8gdGhlIHNhbWUgYWRkcmVzcyBz cGFjZSBtdWx0aXBsZSB0aW1lcy4KPj4KPj4gQWRkZWQgYSBHR1RUIHZpZXcgY29uY2VwdCBhbmQg bGlua2VkIGl0IHdpdGggdGhlIFZNQSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuCj4+IG11bHRpcGxl IGluc3RhbmNlcyBwZXIgYWRkcmVzcyBzcGFjZS4KPj4KPj4gTmV3IG9iamVjdHMgYW5kIEdFTSBm dW5jdGlvbnMgd2hpY2ggZG8gbm90IHRha2UgdGhpcyBuZXcgdmlldyBhcyBhIHBhcmFtZXRlcgo+ PiBhc3N1bWUgdGhlIGRlZmF1bHQgb2YgemVybyAoSTkxNV9HR1RUX1ZJRVdfTk9STUFMKSB3aGlj aCBwcmVzZXJ2ZXMgdGhlCj4+IHByZXZpb3VzIGJlaGF2aW91ci4KPj4KPj4gVGhpcyBub3cgbWVh bnMgdGhhdCBvYmplY3RzIGNhbiBoYXZlIG11bHRpcGxlIFZNQSBlbnRyaWVzIHNvIHRoZSBjb2Rl IHdoaWNoCj4+IGFzc3VtZWQgdGhlcmUgd2lsbCBvbmx5IGJlIG9uZSBhbHNvIGhhZCB0byBiZSBt b2RpZmllZC4KPj4KPj4gQWx0ZXJuYXRpdmUgR0dUVCB2aWV3cyBhcmUgc3VwcG9zZWQgdG8gYm9y cm93IERNQSBhZGRyZXNzZXMgZnJvbSBvYmotPnBhZ2VzCj4+IHdoaWNoIGlzIERNQSBtYXBwZWQg b24gZmlyc3QgVk1BIGluc3RhbnRpYXRpb24gYW5kIHVubWFwcGVkIG9uIHRoZSBsYXN0IG9uZQo+ PiBnb2luZyBhd2F5Lgo+Pgo+PiB2MjoKPj4gICAgICAqIFJlbW92ZWQgcGVyIHZpZXcgc3BlY2lh bCBjYXNpbmcgaW4gaTkxNV9nZW1fZ2d0dF9wcmVwYXJlIC8KPj4gICAgICAgIGZpbmlzaF9vYmpl Y3QgaW4gZmF2b3VyIG9mIGNyZWF0aW5nIGFuZCBkZXN0cm95aW5nIERNQSBtYXBwaW5ncwo+PiAg ICAgICAgb24gZmlyc3QgVk1BIGluc3RhbnRpYXRpb24gYW5kIGxhc3QgVk1BIGRlc3RydWN0aW9u LiAoRGFuaWVsIFZldHRlcikKPj4gICAgICAqIFNpbXBsaWZpZWQgaTkxNV92bWFfdW5iaW5kIHdo aWNoIGRvZXMgbm90IG5lZWQgdG8gY291bnQgdGhlIEdHVFQgdmlld3MuCj4+ICAgICAgICAoRGFu aWVsIFZldHRlcikKPj4gICAgICAqIEFsc28gbW92ZWQgb2JqLT5tYXBfYW5kX2ZlbmNlYWJsZSBy ZXNldCB1bmRlciB0aGUgc2FtZSBjaGVjay4KPj4gICAgICAqIENoZWNrcGF0Y2ggY2xlYW51cHMu Cj4+Cj4+IElzc3VlOiBWSVotNDU0NAo+PiBTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+PiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBmZndsbC5jaD4KPgo+IGxndG0gb3ZlcmFsbC4gUGxlYXNlIGZpbmQgc29tZW9uZSBmb3Ig ZGV0YWlsZWQgcmV2aWV3IGZvciBrbm93bGVkZ2UKPiBzaGFyaW5nIChzbyBkaWZmZXJlbnQgZ2Vv L3RlYW0pLgoKV2l0aCB0aGUgY3VycmVudCBzdGF0ZSBvZiB3aG8gaXMgZG9pbmcgd2hhdCBhbmQg d2hlcmUgaXQgbWFkZSBtb3N0IHNlbnNlIApmb3IgTWljaGVsIHRvIGRvIHRoaXMuCgo+IEEgZmV3 IGNvbWVtbnRzIGFuZCBxdWVzdGlvbnMgYmVsb3cgc3RpbGwuIEFsc28gY291bGQgeW91IHBsZWFz ZSBkbyBhCj4gZm9sbG93LXVwIHBhdGNoIHdoaWNoIGFkZHMgYSBET0M6IHNlY3Rpb24gd2l0aCBh IHNob3J0IGV4bGFuYXRpb24gb2YgZ3R0Cj4gdmlld3MgYW5kIHB1bGxzIGl0IGludG8gdGhlIGk5 MTUgZG9jYm9vayB0ZW1wbGF0ZT8gV2UgbmVlZCB0byBzdGFydAo+IHNvbWV3aGVyZSB3aXRoIGdl bSBkb2NzIC4uLgoKU3VyZSwgSSdsbCBmaW5kIHNvbWUgcHJldmlvdXMgcGF0Y2hlcyBmcm9tIHRo aXMgYXJlYSB0byBzZWUgaG93IHJvdWdobHkgCml0IHNob3VsZCBsb29rIGxpa2UuCgo+IENoZWVy cywgRGFuaWVsCj4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMgICAgICAgIHwgIDUgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAg ICAgICAgICAgfCA0NiArKysrKysrKysrKysrKysrKy0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgNzMgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jICAgIHwgIDQg Ky0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCAgNCAr LQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgICB8IDYxICsr KysrKysrKysrKysrKysrKystLS0tLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuaCAgICAgICAgfCAyMiArKysrKysrKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dwdV9lcnJvci5jICAgICAgfCAgOCArLS0tCj4+ICAgOCBmaWxlcyBjaGFuZ2VkLCAxNTkg aW5zZXJ0aW9ucygrKSwgNjQgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jCj4+IGluZGV4IDMxOWRhNjEuLjFhOTU2OWYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jCj4+IEBAIC0xNTQsOCArMTU0LDkgQEAgZGVzY3JpYmVfb2JqKHN0 cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPj4gICAJ CQlzZXFfcHV0cyhtLCAiIChwcCIpOwo+PiAgIAkJZWxzZQo+PiAgIAkJCXNlcV9wdXRzKG0sICIg KGciKTsKPj4gLQkJc2VxX3ByaW50ZihtLCAiZ3R0IG9mZnNldDogJTA4bHgsIHNpemU6ICUwOGx4 KSIsCj4+IC0JCQkgICB2bWEtPm5vZGUuc3RhcnQsIHZtYS0+bm9kZS5zaXplKTsKPj4gKwkJc2Vx X3ByaW50ZihtLCAiZ3R0IG9mZnNldDogJTA4bHgsIHNpemU6ICUwOGx4LCB0eXBlOiAldSkiLAo+ PiArCQkJICAgdm1hLT5ub2RlLnN0YXJ0LCB2bWEtPm5vZGUuc2l6ZSwKPj4gKwkJCSAgIHZtYS0+ Z2d0dF92aWV3LnR5cGUpOwo+PiAgIAl9Cj4+ICAgCWlmIChvYmotPnN0b2xlbikKPj4gICAJCXNl cV9wcmludGYobSwgIiAoc3RvbGVuOiAlMDhseCkiLCBvYmotPnN0b2xlbi0+c3RhcnQpOwo+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gaW5kZXggYzRmMmNiNi4uNjI1MGEyYyAxMDA2NDQKPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IEBAIC0yNTAxLDEwICsyNTAxLDIzIEBAIHZvaWQgaTkx NV9nZW1fdm1hX2Rlc3Ryb3koc3RydWN0IGk5MTVfdm1hICp2bWEpOwo+PiAgICNkZWZpbmUgUElO X0dMT0JBTCAweDQKPj4gICAjZGVmaW5lIFBJTl9PRkZTRVRfQklBUyAweDgKPj4gICAjZGVmaW5l IFBJTl9PRkZTRVRfTUFTSyAofjQwOTUpCj4+ICtpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX29i amVjdF9waW5fdmlldyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+PiArCQkJCQkg IHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+PiArCQkJCQkgIHVpbnQzMl90IGFsaWdu bWVudCwKPj4gKwkJCQkJICB1aW50NjRfdCBmbGFncywKPj4gKwkJCQkJICBjb25zdCBzdHJ1Y3Qg aTkxNV9nZ3R0X3ZpZXcgKnZpZXcpOwo+PiArc3RhdGljIGlubGluZQo+PiAgIGludCBfX211c3Rf Y2hlY2sgaTkxNV9nZW1fb2JqZWN0X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAo+PiAgIAkJCQkgICAgIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+PiAgIAkJCQkg ICAgIHVpbnQzMl90IGFsaWdubWVudCwKPj4gLQkJCQkgICAgIHVpbnQ2NF90IGZsYWdzKTsKPj4g KwkJCQkgICAgIHVpbnQ2NF90IGZsYWdzKQo+PiArewo+PiArCXJldHVybiBpOTE1X2dlbV9vYmpl Y3RfcGluX3ZpZXcob2JqLCB2bSwgYWxpZ25tZW50LCBmbGFncywKPj4gKwkJCQkJCSZpOTE1X2dn dHRfdmlld19ub3JtYWwpOwo+PiArfQo+PiArCj4+ICt2b2lkIGk5MTVfdm1hX2JpbmQoc3RydWN0 IGk5MTVfdm1hICp2bWEsIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKPj4gKwkJ ICAgdTMyIGZsYWdzKTsKPj4gICBpbnQgX19tdXN0X2NoZWNrIGk5MTVfdm1hX3VuYmluZChzdHJ1 Y3QgaTkxNV92bWEgKnZtYSk7Cj4+ICAgaW50IGk5MTVfZ2VtX29iamVjdF9wdXRfcGFnZXMoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7Cj4+ICAgdm9pZCBpOTE1X2dlbV9yZWxlYXNl X2FsbF9tbWFwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiBAQCAtMjY1 NiwxOCArMjY2OSw0MyBAQCBzdHJ1Y3QgZG1hX2J1ZiAqaTkxNV9nZW1fcHJpbWVfZXhwb3J0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+Cj4+ICAgdm9pZCBpOTE1X2dlbV9yZXN0b3JlX2ZlbmNl cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPj4KPj4gK3Vuc2lnbmVkIGxvbmcgaTkxNV9nZW1f b2JqX29mZnNldF92aWV3KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvLAo+PiArCQkJCSAg ICAgICBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPj4gKwkJCQkgICAgICAgZW51bSBp OTE1X2dndHRfdmlld190eXBlIHZpZXcpOwo+PiArc3RhdGljIGlubGluZQo+PiAgIHVuc2lnbmVk IGxvbmcgaTkxNV9nZW1fb2JqX29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqbywK Pj4gLQkJCQkgIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKTsKPj4gKwkJCQkgIHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQo+PiArewo+PiArCXJldHVybiBpOTE1X2dlbV9vYmpf b2Zmc2V0X3ZpZXcobywgdm0sIEk5MTVfR0dUVF9WSUVXX05PUk1BTCk7Cj4+ICt9Cj4+ICAgYm9v bCBpOTE1X2dlbV9vYmpfYm91bmRfYW55KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvKTsK Pj4gICBib29sIGk5MTVfZ2VtX29ial9ib3VuZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq bywKPj4gICAJCQlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSk7Cj4+ICAgdW5zaWduZWQg bG9uZyBpOTE1X2dlbV9vYmpfc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqbywKPj4g ICAJCQkJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pOwo+PiArc3RydWN0IGk5MTVfdm1h ICppOTE1X2dlbV9vYmpfdG9fdm1hX3ZpZXcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKPj4gKwkJCQkJICBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPj4gKwkJCQkJICBj b25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcpOwo+PiArc3RhdGljIGlubGluZQo+PiAg IHN0cnVjdCBpOTE1X3ZtYSAqaTkxNV9nZW1fb2JqX3RvX3ZtYShzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAo+PiAtCQkJCSAgICAgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0p Owo+PiArCQkJCSAgICAgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCj4+ICt7Cj4+ICsJ cmV0dXJuIGk5MTVfZ2VtX29ial90b192bWFfdmlldyhvYmosIHZtLCAmaTkxNV9nZ3R0X3ZpZXdf bm9ybWFsKTsKPj4gK30KPj4gKwo+PiArc3RydWN0IGk5MTVfdm1hICoKPj4gK2k5MTVfZ2VtX29i al9sb29rdXBfb3JfY3JlYXRlX3ZtYV92aWV3KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCj4+ICsJCQkJICAgICAgIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+PiArCQkJ CSAgICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcpOwo+PiArCj4+ICtzdGF0 aWMgaW5saW5lCj4+ICAgc3RydWN0IGk5MTVfdm1hICoKPj4gICBpOTE1X2dlbV9vYmpfbG9va3Vw X29yX2NyZWF0ZV92bWEoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPj4gLQkJCQkg IHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKTsKPj4gKwkJCQkgIHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtKQo+PiArewo+PiArCXJldHVybiBpOTE1X2dlbV9vYmpfbG9va3VwX29y X2NyZWF0ZV92bWFfdmlldyhvYmosIHZtLAo+PiArCQkJCQkJJmk5MTVfZ2d0dF92aWV3X25vcm1h bCk7Cj4+ICt9Cj4+Cj4+ICAgc3RydWN0IGk5MTVfdm1hICppOTE1X2dlbV9vYmpfdG9fZ2d0dChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKPj4gICBzdGF0aWMgaW5saW5lIGJvb2wg aTkxNV9nZW1fb2JqX2lzX3Bpbm5lZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKSB7 Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+PiBpbmRleCA4NmNmNDI4Li42MjEzYzA3IDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4gQEAgLTIwOTAsOCArMjA5MCw3IEBAIGk5MTVf Z2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAgCQkJLyog Rm9yIHRoZSB1bmJvdW5kIHBoYXNlLCB0aGlzIHNob3VsZCBiZSBhIG5vLW9wISAqLwo+PiAgIAkJ CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2bWEsIHYsCj4+ICAgCQkJCQkJICZvYmotPnZtYV9s aXN0LCB2bWFfbGluaykKPj4gLQkJCQlpZiAoaTkxNV92bWFfdW5iaW5kKHZtYSkpCj4+IC0JCQkJ CWJyZWFrOwo+PiArCQkJCWk5MTVfdm1hX3VuYmluZCh2bWEpOwo+Cj4gV2h5IGRyb3AgdGhlIGVh cmx5IGJyZWFrIGlmIGEgdm1hX3VuYmluZCBmYWlscz8gTG9va3MgbGlrZSBhIHN1cGVyZmxvdXMK PiBodW5rIHRvIG1lLgoKSSB3YXNuJ3Qgc3VyZSBhYm91dCB0aGlzLiAoRG9lcyBpdCBtYWtlcyBz ZW5zZSB0byB0cnkgYW5kIHVuYmluZCBvdGhlciAKVk1BcyBpZiBvbmUgY291bGRuJ3QgYmUgdW5i b3VuZD8pCgpJbiBmYWN0LCBsb29raW5nIGF0IGl0IG5vdywgSSBhbSBub3Qgc3VyZSBhYm91dCB0 aGUgdW5iaW5kIGZsb3cgCihpOTE1X3ZtYV91bmJpbmQpLiBXb24ndCBpOTE1X2dlbV9vYmplY3Rf cmV0aXJlIG1vdmUgYWxsIFZNQXMgdG8gCmluYWN0aXZlIGxpc3Qgb24gZmlyc3QgVk1BIHVuYmlu ZD8gUmV0aXJlIG9ubHkgb24gbGFzdCBWTUEgZ29pbmcgYXdheT8KCj4+IEBAIC01NDMwLDkgKzU0 MzQsMTIgQEAgc3RydWN0IGk5MTVfdm1hICppOTE1X2dlbV9vYmpfdG9fZ2d0dChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+PiAgIHsKPj4gICAJc3RydWN0IGk5MTVfdm1hICp2bWE7 Cj4+Cj4+IC0Jdm1hID0gbGlzdF9maXJzdF9lbnRyeSgmb2JqLT52bWFfbGlzdCwgdHlwZW9mKCp2 bWEpLCB2bWFfbGluayk7Cj4+IC0JaWYgKHZtYS0+dm0gIT0gaTkxNV9vYmpfdG9fZ2d0dChvYmop KQo+PiAtCQlyZXR1cm4gTlVMTDsKPj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm9iai0+ dm1hX2xpc3QsIHZtYV9saW5rKSB7Cj4+ICsJCWlmICh2bWEtPnZtICE9IGk5MTVfb2JqX3RvX2dn dHQob2JqKSkKPj4gKwkJCWNvbnRpbnVlOwo+PiArCQlpZiAodm1hLT5nZ3R0X3ZpZXcudHlwZSA9 PSBJOTE1X0dHVFRfVklFV19OT1JNQUwpCj4+ICsJCQlyZXR1cm4gdm1hOwo+PiArCX0KPgo+IFdl IGZhaXJseSBwdXQgdGhlIGdndHQgdm1hIGludG8gdGhlIGhlYWQgb2YgdGhlIGxpc3QuIEltbyBi ZXR0ZXIgdG8ga2VlcAo+IHRoZSBoZWFkIHNsb3QgcmVzZXJ2ZWQgZm9yIHRoZSBnZ3R0IG5vcm1h bCB2aWV3LCBtaWdodCBiZSBzb21lIHJhbmRvbSBjb2RlCj4gcmVseWluZyB1cG9uIHRoaXMuCgpP ay4KCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+PiBpbmRleCA4OWEyZjNk Li43N2YxYmRjIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9l cnJvci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPj4g QEAgLTcxNywxMCArNzE3LDggQEAgc3RhdGljIHUzMiBjYXB0dXJlX3Bpbm5lZF9ibyhzdHJ1Y3Qg ZHJtX2k5MTVfZXJyb3JfYnVmZmVyICplcnIsCj4+ICAgCQkJYnJlYWs7Cj4+Cj4+ICAgCQlsaXN0 X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm9iai0+dm1hX2xpc3QsIHZtYV9saW5rKQo+PiAtCQkJaWYg KHZtYS0+dm0gPT0gdm0gJiYgdm1hLT5waW5fY291bnQgPiAwKSB7Cj4+ICsJCQlpZiAodm1hLT52 bSA9PSB2bSAmJiB2bWEtPnBpbl9jb3VudCA+IDApCj4+ICAgCQkJCWNhcHR1cmVfYm8oZXJyKyss IHZtYSk7Cj4+IC0JCQkJYnJlYWs7Cj4KPiBOb3QgZnVsbHkgc3VyZSBhYm91dCB0aGlzIG9uZSwg YnV0IGNhbid0IGh1cnQgSSBndWVzcy4KCk5vdCBzdXJlIGlmIGl0IGlzIHVzZWZ1bCBhdCB0aGUg bW9tZW50IG9yIGF0IGFsbD8KClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK