From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 26/39] drm/i915: Consolidate the bound/unbound vma lists into one Date: Wed, 2 Jan 2019 14:22:56 +0000 Message-ID: <3397120b-481d-b08a-49ab-ded84957fe0d@linux.intel.com> References: <20190102094139.24014-1-chris@chris-wilson.co.uk> <20190102094139.24014-26-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0C5E56E7BE for ; Wed, 2 Jan 2019 14:22:59 +0000 (UTC) In-Reply-To: <20190102094139.24014-26-chris@chris-wilson.co.uk> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDAyLzAxLzIwMTkgMDk6NDEsIENocmlzIFdpbHNvbiB3cm90ZToKCkNvbW1pdCB0ZXh0IHRv IGV4cGxhaW4gd2h5IHBsZWFzZS4KCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJp c0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jICAgICAgICAgICAgICAgfCAgNCArLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2V2aWN0LmMgICAgICAgICB8IDEyICsrKysrKy0tLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgICAgIHwgMjcgKysrKysrLS0tLS0tLS0tLS0tLQo+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggICAgICAgICAgIHwgMTAgKy0t LS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYyAgICAgIHwg IDMgKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyAgICAgICAg fCAgNCAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAgICAg ICB8IDExICsrKystLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jICAgICAg ICAgICAgICAgfCAgNyArLS0tLQo+ICAgLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9n ZW1fZXZpY3QuYyAgIHwgMTEgKysrLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9pOTE1X2dlbV9ndHQuYyB8ICA0IC0tLQo+ICAgMTAgZmlsZXMgY2hhbmdlZCwgMzIgaW5z ZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4g aW5kZXggNjY0NDVlMzRjOTNjLi5hOTU0ZTE1YzAzMTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKPiBAQCAtMjU0LDcgKzI1NCw3IEBAIGk5MTVfZ2VtX2dldF9hcGVydHVyZV9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCW11dGV4X2xvY2soJmdndHQt PnZtLm11dGV4KTsKPiAgIAo+ICAgCXBpbm5lZCA9IGdndHQtPnZtLnJlc2VydmVkOwo+IC0JbGlz dF9mb3JfZWFjaF9lbnRyeSh2bWEsICZnZ3R0LT52bS5ib3VuZF9saXN0LCB2bV9saW5rKQo+ICsJ bGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICZnZ3R0LT52bS52bWFfbGlzdCwgdm1fbGluaykKPiAg IAkJaWYgKGk5MTVfdm1hX2lzX3Bpbm5lZCh2bWEpKQo+ICAgCQkJcGlubmVkICs9IHZtYS0+bm9k ZS5zaXplOwo+ICAgCj4gQEAgLTE2OTIsNyArMTY5Miw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2Vt X29iamVjdF9idW1wX2luYWN0aXZlX2dndHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aikKPiAgIAkJaWYgKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpCj4gICAJCQlj b250aW51ZTsKPiAgIAo+IC0JCWxpc3RfbW92ZV90YWlsKCZ2bWEtPnZtX2xpbmssICZ2bWEtPnZt LT5ib3VuZF9saXN0KTsKPiArCQlsaXN0X21vdmVfdGFpbCgmdm1hLT52bV9saW5rLCAmaTkxNS0+ Z2d0dC52bS52bWFfbGlzdCk7Cj4gICAJfQo+ICAgCW11dGV4X3VubG9jaygmaTkxNS0+Z2d0dC52 bS5tdXRleCk7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZXZpY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKPiBpbmRl eCBiN2MyYTM5NmE2M2YuLjhjY2RlNTc2MWMyYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXZpY3QuYwo+IEBAIC0xNzAsNyArMTcwLDEwIEBAIGk5MTVfZ2VtX2V2aWN0X3NvbWV0 aGluZyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgIHNlYXJjaF9hZ2FpbjoKPiAg IAlhY3RpdmUgPSBOVUxMOwo+ICAgCUlOSVRfTElTVF9IRUFEKCZldmljdGlvbl9saXN0KTsKPiAt CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2bWEsIG5leHQsICZ2bS0+Ym91bmRfbGlzdCwgdm1f bGluaykgewo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHZtYSwgbmV4dCwgJnZtLT52bWFf bGlzdCwgdm1fbGluaykgewo+ICsJCWlmICghZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5v ZGUpKQo+ICsJCQljb250aW51ZTsKCktpY2sgdGhlbSB0byB0aGUgZW5kIChldmVuIGFmdGVyIGFj dGl2ZSk/IFdvdWxkIG5lZWQgYSB0ZW1wb3JhcnkgbGlzdCAKaGVhZCBJIHRoaW5rLCBidXQgdGhh dCBzaG91bGRuJ3QgYmUgdG9vIGJhZC4gTWF5YmUgYW5vdGhlciB0ZW1wb3JhcnkgCmxpc3QgaGVh ZCB3b3VsZCBzaW1wbGlmeSB0aGUgYWN0aXZlIHZtYSBsb2dpYyBiZWxvdyBhcyB3ZWxsLiBJdCB3 b3VsZCAKYmFzaWNhbGx5IG1lYW4gYSBzb3J0aW5nIHN0ZXAgZnJvbSB2bS0+dm1hX2xpc3QgdG8g CmFjdGl2ZS9pbmFjdGl2ZS91bmJvdW5kIGxvY2FsIGxpc3RzLCB0aGVuIGEgdHJpLXBoYXNlIGxv b3AgYXMgYmVmb3JlLCAKYW5kIHRoZW4gam9pbiBhbGwgbGlzdHMgdG9nZXRoZXIgcmVwbGFjaW5n IHZtYS0+dm1hX2xpc3QuIERvd25zaWRlIGlzIAp3YXN0ZWQgc29ydGluZyBlZmZvcnQgaWYgZmV3 IGZpcnN0IGZvdW5kIGluYWN0aXZlcyBzYXRpc2Z5IHRoZSBldmljdGlvbiAKcGFzcy4uIHNvIG1h eWJlIGl0IGlzIG5vdCB3b3J0aCBpdC4gT3Igd2UgY291bGQgY2hlY2sgYXMgd2UgYnVpbGQuIE5v IAppZGVhIGlmIG1vcmUgb3JkZXIgYWZ0ZXIgdGhlIGV2aWN0aW9uIHBhc3Mgd291bGQgYmUgYmVu ZWZpY2lhbCB0aG91Z2guLiAKdGhpcyBhbGwgb25seSBhZmZlY3RzIGdndHQgaW4gcHJhY3RpY2Ug cmlnaHQ/Cgo+ICsKPiAgIAkJaWYgKGk5MTVfdm1hX2lzX2FjdGl2ZSh2bWEpKSB7Cj4gICAJCQlp ZiAodm1hID09IGFjdGl2ZSkgewo+ICAgCQkJCWlmIChmbGFncyAmIFBJTl9OT05CTE9DSykKPiBA QCAtMTgzLDcgKzE4Niw3IEBAIGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyhzdHJ1Y3QgaTkxNV9h ZGRyZXNzX3NwYWNlICp2bSwKPiAgIAkJCQlpZiAoIWFjdGl2ZSkKPiAgIAkJCQkJYWN0aXZlID0g dm1hOwo+ICAgCj4gLQkJCQlsaXN0X21vdmVfdGFpbCgmdm1hLT52bV9saW5rLCAmdm0tPmJvdW5k X2xpc3QpOwo+ICsJCQkJbGlzdF9tb3ZlX3RhaWwoJnZtYS0+dm1fbGluaywgJnZtLT52bWFfbGlz dCk7Cj4gICAJCQkJY29udGludWU7Cj4gICAJCQl9Cj4gICAJCX0KPiBAQCAtNDE5LDcgKzQyMiwx MCBAQCBpbnQgaTkxNV9nZW1fZXZpY3Rfdm0oc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0p Cj4gICAKPiAgIAlJTklUX0xJU1RfSEVBRCgmZXZpY3Rpb25fbGlzdCk7Cj4gICAJbXV0ZXhfbG9j aygmdm0tPm11dGV4KTsKPiAtCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCAmdm0tPmJvdW5kX2xp c3QsIHZtX2xpbmspIHsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCAmdm0tPnZtYV9saXN0 LCB2bV9saW5rKSB7Cj4gKwkJaWYgKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkp Cj4gKwkJCWNvbnRpbnVlOwo+ICsKPiAgIAkJaWYgKGk5MTVfdm1hX2lzX3Bpbm5lZCh2bWEpKQo+ ICAgCQkJY29udGludWU7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IGlu ZGV4IDdhZTEwZmJiMmVlMC4uMTdiNzUyZjlhMWU2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmMKPiBAQCAtNDkyLDggKzQ5Miw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfYWRkcmVz c19zcGFjZV9pbml0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLCBpbnQgc3ViY2xhc3Mp Cj4gICAKPiAgIAlzdGFzaF9pbml0KCZ2bS0+ZnJlZV9wYWdlcyk7Cj4gICAKPiAtCUlOSVRfTElT VF9IRUFEKCZ2bS0+dW5ib3VuZF9saXN0KTsKPiAtCUlOSVRfTElTVF9IRUFEKCZ2bS0+Ym91bmRf bGlzdCk7Cj4gKwlJTklUX0xJU1RfSEVBRCgmdm0tPnZtYV9saXN0KTsKPiAgIH0KPiAgIAo+ICAg c3RhdGljIHZvaWQgaTkxNV9hZGRyZXNzX3NwYWNlX2Zpbmkoc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm0pCj4gQEAgLTE5MzQsNyArMTkzMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV92bWEg KnBkX3ZtYV9jcmVhdGUoc3RydWN0IGdlbjZfaHdfcHBndHQgKnBwZ3R0LCBpbnQgc2l6ZSkKPiAg IAlJTklUX0xJU1RfSEVBRCgmdm1hLT5vYmpfbGluayk7Cj4gICAKPiAgIAltdXRleF9sb2NrKCZ2 bWEtPnZtLT5tdXRleCk7Cj4gLQlsaXN0X2FkZCgmdm1hLT52bV9saW5rLCAmdm1hLT52bS0+dW5i b3VuZF9saXN0KTsKPiArCWxpc3RfYWRkKCZ2bWEtPnZtX2xpbmssICZ2bWEtPnZtLT52bWFfbGlz dCk7Cj4gICAJbXV0ZXhfdW5sb2NrKCZ2bWEtPnZtLT5tdXRleCk7Cj4gICAKPiAgIAlyZXR1cm4g dm1hOwo+IEBAIC0yMTEzLDE5ICsyMTEyLDEyIEBAIHZvaWQgaTkxNV9wcGd0dF9jbG9zZShzdHJ1 Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKPiAgIAo+ICAgc3RhdGljIHZvaWQgcHBndHRfZGVz dHJveV92bWEoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCj4gICB7Cj4gLQlzdHJ1Y3Qg bGlzdF9oZWFkICpwaGFzZXNbXSA9IHsKPiAtCQkmdm0tPmJvdW5kX2xpc3QsCj4gLQkJJnZtLT51 bmJvdW5kX2xpc3QsCj4gLQkJTlVMTCwKPiAtCX0sICoqcGhhc2U7Cj4gKwlzdHJ1Y3QgaTkxNV92 bWEgKnZtYSwgKnZuOwo+ICAgCj4gICAJdm0tPmNsb3NlZCA9IHRydWU7Cj4gLQlmb3IgKHBoYXNl ID0gcGhhc2VzOyAqcGhhc2U7IHBoYXNlKyspIHsKPiAtCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYSwg KnZuOwo+IC0KPiAtCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodm1hLCB2biwgKnBoYXNlLCB2 bV9saW5rKQo+IC0JCQlpOTE1X3ZtYV9kZXN0cm95KHZtYSk7Cj4gLQl9Cj4gKwlsaXN0X2Zvcl9l YWNoX2VudHJ5X3NhZmUodm1hLCB2biwgJnZtLT52bWFfbGlzdCwgdm1fbGluaykKPiArCQlpOTE1 X3ZtYV9kZXN0cm95KHZtYSk7Cj4gKwlHRU1fQlVHX09OKCFsaXN0X2VtcHR5KCZ2bS0+dm1hX2xp c3QpKTsKPiAgIH0KPiAgIAo+ICAgdm9pZCBpOTE1X3BwZ3R0X3JlbGVhc2Uoc3RydWN0IGtyZWYg KmtyZWYpCj4gQEAgLTIxMzcsOSArMjEyOSw2IEBAIHZvaWQgaTkxNV9wcGd0dF9yZWxlYXNlKHN0 cnVjdCBrcmVmICprcmVmKQo+ICAgCj4gICAJcHBndHRfZGVzdHJveV92bWEoJnBwZ3R0LT52bSk7 Cj4gICAKPiAtCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJnBwZ3R0LT52bS5ib3VuZF9saXN0KSk7 Cj4gLQlHRU1fQlVHX09OKCFsaXN0X2VtcHR5KCZwcGd0dC0+dm0udW5ib3VuZF9saXN0KSk7Cj4g LQo+ICAgCXBwZ3R0LT52bS5jbGVhbnVwKCZwcGd0dC0+dm0pOwo+ICAgCWk5MTVfYWRkcmVzc19z cGFjZV9maW5pKCZwcGd0dC0+dm0pOwo+ICAgCWtmcmVlKHBwZ3R0KTsKPiBAQCAtMjgwMiw3ICsy NzkxLDcgQEAgdm9pZCBpOTE1X2dndHRfY2xlYW51cF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgp Owo+ICAgCWk5MTVfZ2VtX2ZpbmlfYWxpYXNpbmdfcHBndHQoZGV2X3ByaXYpOwo+ICAgCj4gLQls aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodm1hLCB2biwgJmdndHQtPnZtLmJvdW5kX2xpc3QsIHZt X2xpbmspCj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodm1hLCB2biwgJmdndHQtPnZtLnZt YV9saXN0LCB2bV9saW5rKQo+ICAgCQlXQVJOX09OKGk5MTVfdm1hX3VuYmluZCh2bWEpKTsKPiAg IAo+ICAgCWlmIChkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJmdndHQtPmVycm9yX2NhcHR1cmUpKQo+ IEBAIC0zNTE0LDcgKzM1MDMsNyBAQCB2b2lkIGk5MTVfZ2VtX3Jlc3RvcmVfZ3R0X21hcHBpbmdz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAlnZ3R0LT52bS5jbG9zZWQg PSB0cnVlOyAvKiBza2lwIHJld3JpdGluZyBQVEUgb24gVk1BIHVuYmluZCAqLwo+ICAgCj4gICAJ LyogY2xmbHVzaCBvYmplY3RzIGJvdW5kIGludG8gdGhlIEdHVFQgYW5kIHJlYmluZCB0aGVtLiAq Lwo+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHZtYSwgdm4sICZnZ3R0LT52bS5ib3VuZF9s aXN0LCB2bV9saW5rKSB7Cj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodm1hLCB2biwgJmdn dHQtPnZtLnZtYV9saXN0LCB2bV9saW5rKSB7Cj4gICAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmogPSB2bWEtPm9iajsKPiAgIAo+ICAgCQlpZiAoISh2bWEtPmZsYWdzICYgSTkxNV9W TUFfR0xPQkFMX0JJTkQpKQoKSXQgbG9va3MgbGlrZSB0aGlzIGNoZWNrIHByZXZlbnRzIGl0IGZy b20gcmUtYmluZGluZyB3aGF0IGhhc24ndCBiZWVuIApib3VuZC4gQnV0IHdoeSB3YXMgdGhpcyBj aGVjayBoZXJlIHdoZW4gd2Fsa2luZyB0aGUgYm91bmQgbGlzdD8gU2hvdWxkIAppdCBoYXZlIGJl ZW4gYSBHRU1fQlVHX09OIGNoZWNraW5nIHRoYXQgaXQgaXMgYm91bmQgaW5zdGVhZD8KCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBpbmRleCBiZDY3OWM4YzU2ZGQuLmFjMTFmMmJj ZTJkNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gQEAgLTI5OCwxNSAr Mjk4LDcgQEAgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSB7Cj4gICAJc3RydWN0IGk5MTVfcGFn ZV9kaXJlY3RvcnkgKnNjcmF0Y2hfcGQ7Cj4gICAJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3Rvcnlf cG9pbnRlciAqc2NyYXRjaF9wZHA7IC8qIEdFTjgrICYgNDhiIFBQR1RUICovCj4gICAKPiAtCS8q Kgo+IC0JICogTGlzdCBvZiB2bWEgY3VycmVudGx5IGJvdW5kLgo+IC0JICovCj4gLQlzdHJ1Y3Qg bGlzdF9oZWFkIGJvdW5kX2xpc3Q7Cj4gLQo+IC0JLyoqCj4gLQkgKiBMaXN0IG9mIHZtYSB0aGF0 IGFyZSBub3QgdW5ib3VuZC4KPiAtCSAqLwo+IC0Jc3RydWN0IGxpc3RfaGVhZCB1bmJvdW5kX2xp c3Q7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIHZtYV9saXN0Owo+ICAgCj4gICAJc3RydWN0IHBhZ2Vz dGFzaCBmcmVlX3BhZ2VzOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3Nocmlua2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJp bmtlci5jCj4gaW5kZXggOWQwNGMyNmMwNGY5Li5mNGJjNzJkNGY0NGYgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Nocmlua2VyLmMKPiBAQCAtNDkxLDggKzQ5MSw3IEBAIGk5 MTVfZ2VtX3Nocmlua2VyX3ZtYXAoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQg bG9uZyBldmVudCwgdm9pZCAqcHRyCj4gICAKPiAgIAkvKiBXZSBhbHNvIHdhbnQgdG8gY2xlYXIg YW55IGNhY2hlZCBpb21hcHMgYXMgdGhleSB3cmFwIHZtYXAgKi8KPiAgIAltdXRleF9sb2NrKCZp OTE1LT5nZ3R0LnZtLm11dGV4KTsKPiAtCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2bWEsIG5l eHQsCj4gLQkJCQkgJmk5MTUtPmdndHQudm0uYm91bmRfbGlzdCwgdm1fbGluaykgewo+ICsJbGlz dF9mb3JfZWFjaF9lbnRyeV9zYWZlKHZtYSwgbmV4dCwgJmk5MTUtPmdndHQudm0udm1hX2xpc3Qs IHZtX2xpbmspIHsKPiAgIAkJdW5zaWduZWQgbG9uZyBjb3VudCA9IHZtYS0+bm9kZS5zaXplID4+ IFBBR0VfU0hJRlQ7CgpTa2lwIHVuYm91bmQgaGVyZT8gT3IgeW91IGFyZSBwcm94eWluZyB0aGUg Y2hlY2sgd2l0aCB2bWEtPmlvbWFwPyBUaGF0IApjb3VsZCB1c2UgYSBjb21tZW50LgoKPiAgIAo+ ICAgCQlpZiAoIXZtYS0+aW9tYXAgfHwgaTkxNV92bWFfaXNfYWN0aXZlKHZtYSkpCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKPiBpbmRleCAyMWRlM2E1ZTk5MTAuLjdjODcy NWYxMmNlZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9s ZW4uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCj4gQEAg LTcwMywxMCArNzAzLDYgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFs bG9jYXRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYKPiAgIAl2bWEtPmZsYWdz IHw9IEk5MTVfVk1BX0dMT0JBTF9CSU5EOwo+ICAgCV9faTkxNV92bWFfc2V0X21hcF9hbmRfZmVu Y2VhYmxlKHZtYSk7Cj4gICAKPiAtCW11dGV4X2xvY2soJmdndHQtPnZtLm11dGV4KTsKPiAtCWxp c3RfbW92ZV90YWlsKCZ2bWEtPnZtX2xpbmssICZnZ3R0LT52bS5ib3VuZF9saXN0KTsKPiAtCW11 dGV4X3VubG9jaygmZ2d0dC0+dm0ubXV0ZXgpOwo+IC0KPiAgIAlzcGluX2xvY2soJmRldl9wcml2 LT5tbS5vYmpfbG9jayk7Cj4gICAJbGlzdF9tb3ZlX3RhaWwoJm9iai0+bW0ubGluaywgJmRldl9w cml2LT5tbS5ib3VuZF9saXN0KTsKPiAgIAlvYmotPmJpbmRfY291bnQrKzsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiBpbmRleCA2MWFlMDc5OTNhZTcuLjhjZDdlNDQ0ZjM4 ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+IEBAIC0xNjA5LDcg KzE2MDksNyBAQCBzdGF0aWMgdm9pZCBnZW1fY2FwdHVyZV92bShzdHJ1Y3QgaTkxNV9ncHVfc3Rh dGUgKmVycm9yLAo+ICAgCWludCBjb3VudDsKPiAgIAo+ICAgCWNvdW50ID0gMDsKPiAtCWxpc3Rf Zm9yX2VhY2hfZW50cnkodm1hLCAmdm0tPmJvdW5kX2xpc3QsIHZtX2xpbmspCj4gKwlsaXN0X2Zv cl9lYWNoX2VudHJ5KHZtYSwgJnZtLT52bWFfbGlzdCwgdm1fbGluaykKPiAgIAkJaWYgKGk5MTVf dm1hX2lzX2FjdGl2ZSh2bWEpKQo+ICAgCQkJY291bnQrKzsKPiAgIAo+IEBAIC0xNjE3LDcgKzE2 MTcsNyBAQCBzdGF0aWMgdm9pZCBnZW1fY2FwdHVyZV92bShzdHJ1Y3QgaTkxNV9ncHVfc3RhdGUg KmVycm9yLAo+ICAgCWlmIChjb3VudCkKPiAgIAkJYWN0aXZlX2JvID0ga2NhbGxvYyhjb3VudCwg c2l6ZW9mKCphY3RpdmVfYm8pLCBHRlBfQVRPTUlDKTsKPiAgIAlpZiAoYWN0aXZlX2JvKQo+IC0J CWNvdW50ID0gY2FwdHVyZV9lcnJvcl9ibyhhY3RpdmVfYm8sIGNvdW50LCAmdm0tPmJvdW5kX2xp c3QsCj4gKwkJY291bnQgPSBjYXB0dXJlX2Vycm9yX2JvKGFjdGl2ZV9ibywgY291bnQsICZ2bS0+ dm1hX2xpc3QsCj4gICAJCQkJCSB0cnVlLCBmYWxzZSk7Cj4gICAJZWxzZQo+ICAgCQljb3VudCA9 IDA7Cj4gQEAgLTE2NTksOCArMTY1OSw5IEBAIHN0YXRpYyB2b2lkIGNhcHR1cmVfcGlubmVkX2J1 ZmZlcnMoc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvcikKPiAgIAlpbnQgY291bnQ7Cj4gICAK PiAgIAljb3VudCA9IDA7Cj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJnZtLT5ib3VuZF9s aXN0LCB2bV9saW5rKQo+IC0JCWNvdW50Kys7Cj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwg JnZtLT52bWFfbGlzdCwgdm1fbGluaykKPiArCQlpZiAoaTkxNV92bWFfaXNfcGlubmVkKHZtYSkp Cj4gKwkJCWNvdW50Kys7Cj4gICAKPiAgIAlibyA9IE5VTEw7Cj4gICAJaWYgKGNvdW50KQo+IEBA IC0xNjY5LDcgKzE2NzAsNyBAQCBzdGF0aWMgdm9pZCBjYXB0dXJlX3Bpbm5lZF9idWZmZXJzKHN0 cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IpCj4gICAJCXJldHVybjsKPiAgIAo+ICAgCWVycm9y LT5waW5uZWRfYm9fY291bnQgPQo+IC0JCWNhcHR1cmVfZXJyb3JfYm8oYm8sIGNvdW50LCAmdm0t PmJvdW5kX2xpc3QsIGZhbHNlLCB0cnVlKTsKPiArCQljYXB0dXJlX2Vycm9yX2JvKGJvLCBjb3Vu dCwgJnZtLT52bWFfbGlzdCwgZmFsc2UsIHRydWUpOwo+ICAgCWVycm9yLT5waW5uZWRfYm8gPSBi bzsKPiAgIH0KPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Zt YS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwo+IGluZGV4IGRjYmQwZDM0NWM3 Mi4uYWQ3NmEzMzA5ODMwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf dm1hLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCj4gQEAgLTIxNSw3 ICsyMTUsNyBAQCB2bWFfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4g ICAJcmJfaW5zZXJ0X2NvbG9yKCZ2bWEtPm9ial9ub2RlLCAmb2JqLT52bWFfdHJlZSk7Cj4gICAK PiAgIAltdXRleF9sb2NrKCZ2bS0+bXV0ZXgpOwo+IC0JbGlzdF9hZGQoJnZtYS0+dm1fbGluaywg JnZtLT51bmJvdW5kX2xpc3QpOwo+ICsJbGlzdF9hZGRfdGFpbCgmdm1hLT52bV9saW5rLCAmdm0t PnZtYV9saXN0KTsKPiAgIAltdXRleF91bmxvY2soJnZtLT5tdXRleCk7Cj4gICAKPiAgIAlyZXR1 cm4gdm1hOwo+IEBAIC02NTksMTAgKzY1OSw2IEBAIGk5MTVfdm1hX2luc2VydChzdHJ1Y3QgaTkx NV92bWEgKnZtYSwgdTY0IHNpemUsIHU2NCBhbGlnbm1lbnQsIHU2NCBmbGFncykKPiAgIAlHRU1f QlVHX09OKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpOwo+ICAgCUdFTV9CVUdf T04oIWk5MTVfZ2VtX3ZhbGlkX2d0dF9zcGFjZSh2bWEsIGNhY2hlX2xldmVsKSk7Cj4gICAKPiAt CW11dGV4X2xvY2soJnZtYS0+dm0tPm11dGV4KTsKPiAtCWxpc3RfbW92ZV90YWlsKCZ2bWEtPnZt X2xpbmssICZ2bWEtPnZtLT5ib3VuZF9saXN0KTsKPiAtCW11dGV4X3VubG9jaygmdm1hLT52bS0+ bXV0ZXgpOwo+IC0KPiAgIAlpZiAodm1hLT5vYmopIHsKPiAgIAkJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOwo+ICAgCj4gQEAgLTY5Niw3ICs2OTIsNiBAQCBpOTE1 X3ZtYV9yZW1vdmUoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gICAKPiAgIAltdXRleF9sb2NrKCZ2 bWEtPnZtLT5tdXRleCk7Cj4gICAJZHJtX21tX3JlbW92ZV9ub2RlKCZ2bWEtPm5vZGUpOwo+IC0J bGlzdF9tb3ZlX3RhaWwoJnZtYS0+dm1fbGluaywgJnZtYS0+dm0tPnVuYm91bmRfbGlzdCk7Cj4g ICAJbXV0ZXhfdW5sb2NrKCZ2bWEtPnZtLT5tdXRleCk7Cj4gICAKPiAgIAkvKgo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZXZpY3QuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9ldmljdC5jCj4gaW5kZXggZWFl ZmJhNzQ3MGY3Li44NzUwY2ZiZjE0ODYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2V2aWN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaTkxNV9nZW1fZXZpY3QuYwo+IEBAIC01NywxMSArNTcsNiBAQCBzdGF0aWMg aW50IHBvcHVsYXRlX2dndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gICAJCXJl dHVybiAtRUlOVkFMOwo+ICAgCX0KPiAgIAo+IC0JaWYgKGxpc3RfZW1wdHkoJmk5MTUtPmdndHQu dm0uYm91bmRfbGlzdCkpIHsKPiAtCQlwcl9lcnIoIk5vIG9iamVjdHMgb24gdGhlIEdHVFQgaW5h Y3RpdmUgbGlzdCFcbiIpOwo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0JfQo+IC0KPiAgIAlyZXR1 cm4gMDsKPiAgIH0KPiAgIAo+IEBAIC03MSw4ICs2NiwxMCBAQCBzdGF0aWMgdm9pZCB1bnBpbl9n Z3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAgCXN0cnVjdCBpOTE1X3ZtYSAq dm1hOwo+ICAgCj4gICAJbXV0ZXhfbG9jaygmZ2d0dC0+dm0ubXV0ZXgpOwo+IC0JbGlzdF9mb3Jf ZWFjaF9lbnRyeSh2bWEsICZpOTE1LT5nZ3R0LnZtLmJvdW5kX2xpc3QsIHZtX2xpbmspCj4gLQkJ aTkxNV92bWFfdW5waW4odm1hKTsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCAmaTkxNS0+ Z2d0dC52bS52bWFfbGlzdCwgdm1fbGluaykgewo+ICsJCWlmIChpOTE1X3ZtYV9pc19waW5uZWQo dm1hKSkKPiArCQkJaTkxNV92bWFfdW5waW4odm1hKTsKPiArCX0KPiAgIAltdXRleF91bmxvY2so JmdndHQtPnZtLm11dGV4KTsKPiAgIH0KPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMKPiBpbmRleCA4NTBmOWVmZjYwMjkuLjU1MGNiNzJmMWUy YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1f Z3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0 LmMKPiBAQCAtMTIzNywxMCArMTIzNyw2IEBAIHN0YXRpYyB2b2lkIHRyYWNrX3ZtYV9iaW5kKHN0 cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICAgCV9faTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmop Owo+ICAgCj4gICAJdm1hLT5wYWdlcyA9IG9iai0+bW0ucGFnZXM7Cj4gLQo+IC0JbXV0ZXhfbG9j aygmdm1hLT52bS0+bXV0ZXgpOwo+IC0JbGlzdF9tb3ZlX3RhaWwoJnZtYS0+dm1fbGluaywgJnZt YS0+dm0tPmJvdW5kX2xpc3QpOwo+IC0JbXV0ZXhfdW5sb2NrKCZ2bWEtPnZtLT5tdXRleCk7Cj4g ICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQgZXhlcmNpc2VfbW9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwKPiAKClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==