From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 2/9] drm/amdgpu: Add PASID management Date: Sat, 26 Aug 2017 15:27:14 +0200 Message-ID: <994b23cd-67b3-4498-2c2b-d4fc2ea68be7@vodafone.de> References: <1503731949-22742-1-git-send-email-Felix.Kuehling@amd.com> <1503731949-22742-3-git-send-email-Felix.Kuehling@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1503731949-22742-3-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Felix Kuehling , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org QW0gMjYuMDguMjAxNyB1bSAwOToxOSBzY2hyaWViIEZlbGl4IEt1ZWhsaW5nOgo+IEFsbG93cyBh c3NpZ25pbmcgYSBQQVNJRCB0byBhIFZNIGZvciBpZGVudGlmeWluZyBWTXMgaW52b2x2ZWQgaW4g cGFnZQo+IGZhdWx0cy4gVGhlIGdsb2JhbCBQQVNJRCBtYW5hZ2VyIGlzIGFsc28gZXhwb3J0ZWQg aW4gdGhlIEtGRAo+IGludGVyZmFjZSBzbyB0aGF0IEFNREdQVSBhbmQgS0ZEIGNhbiBzaGFyZSB0 aGUgUEFTSUQgc3BhY2UuCj4KPiBQQVNJRHMgb2YgZGlmZmVyZW50IHNpemVzIGNhbiBiZSByZXF1 ZXN0ZWQuIE9uIEFQVXMsIHRoZSBQQVNJRCBzaXplCj4gaXMgZGV0ZXJpbmVkIGJ5IHRoZSBjYXBh YmlsaXRpZXMgb2YgdGhlIElPTU1VLiBTbyBLRkQgbXVzdCBiZSBhYmxlCj4gdG8gYWxsb2NhdGUg UEFTSURzIGluIGEgc21hbGxlciByYW5nZS4KPgo+IFRPRE86Cj4gKiBBY3R1YWxseSBhc3NpZ24g UEFTSURzIHRvIFZNcwo+ICogVXBkYXRlIHRoZSBQQVNJRC1WTUlEIG1hcHBpbmcgcmVnaXN0ZXJz IGR1cmluZyBDUwo+Cj4gQ2hhbmdlLUlkOiBJODhjOTM1N2E3YzU4NGYxMGU4NGI1NjA3YWMwOWVi YTc3YzgzMzM5Mwo+IFNpZ25lZC1vZmYtYnk6IEZlbGl4IEt1ZWhsaW5nIDxGZWxpeC5LdWVobGlu Z0BhbWQuY29tPgoKVGhlIHBhdGNoIGl0c2VsZiBpcyBSZXZpZXdlZC1ieTogQ2hyaXN0aWFuIEvD tm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPi4KCkJ1dCBJJ20gYSBiaXQgY29uZnVzZWQs IGRvZXNuJ3QgaGlzIHN0dWZmIGJlbG9uZyBpbnRvIHRoZSBJT01NVSBjb2RlPwoKUmVnYXJkcywK Q2hyaXN0aWFuLgoKPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9h bWRrZmRfZ2Z4X3Y3LmMgfCAgMiArCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfYW1ka2ZkX2dmeF92OC5jIHwgIDIgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2FtZGtmZF9nZnhfdjkuYyB8ICAyICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYyAgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2ttcy5jICAgICAgICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyAgICAgICAgICAgIHwgNzYgKysrKysrKysrKysrKysr KysrKysrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oICAgICAg ICAgICAgfCAxNCArKysrLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2tnZF9rZmRf aW50ZXJmYWNlLmggICB8ICA2ICsrCj4gICA4IGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25z KCspLCA1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y3LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfYW1ka2ZkX2dmeF92Ny5jCj4gaW5kZXggM2UyOGQyYi4uMDgwN2Q1MiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92Ny5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjcu Ywo+IEBAIC0xODgsNiArMTg4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxz IGtmZDJrZ2QgPSB7Cj4gICAJLmdldF9sb2NhbF9tZW1faW5mbyA9IGdldF9sb2NhbF9tZW1faW5m bywKPiAgIAkuZ2V0X2dwdV9jbG9ja19jb3VudGVyID0gZ2V0X2dwdV9jbG9ja19jb3VudGVyLAo+ ICAgCS5nZXRfbWF4X2VuZ2luZV9jbG9ja19pbl9taHogPSBnZXRfbWF4X2VuZ2luZV9jbG9ja19p bl9taHosCj4gKwkuYWxsb2NfcGFzaWQgPSBhbWRncHVfdm1fYWxsb2NfcGFzaWQsCj4gKwkuZnJl ZV9wYXNpZCA9IGFtZGdwdV92bV9mcmVlX3Bhc2lkLAo+ICAgCS5jcmVhdGVfcHJvY2Vzc192bSA9 IGFtZGdwdV9hbWRrZmRfZ3B1dm1fY3JlYXRlX3Byb2Nlc3Nfdm0sCj4gICAJLmRlc3Ryb3lfcHJv Y2Vzc192bSA9IGFtZGdwdV9hbWRrZmRfZ3B1dm1fZGVzdHJveV9wcm9jZXNzX3ZtLAo+ICAgCS5n ZXRfcHJvY2Vzc19wYWdlX2RpciA9IGFtZGdwdV9hbWRrZmRfZ3B1dm1fZ2V0X3Byb2Nlc3NfcGFn ZV9kaXIsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9h bWRrZmRfZ2Z4X3Y4LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2Zk X2dmeF92OC5jCj4gaW5kZXggM2I2YjRkOS4uYzIwYzAwMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OC5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjguYwo+IEBAIC0xNjIsNiAr MTYyLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzIGtmZDJrZ2QgPSB7Cj4g ICAJLmdldF9sb2NhbF9tZW1faW5mbyA9IGdldF9sb2NhbF9tZW1faW5mbywKPiAgIAkuZ2V0X2dw dV9jbG9ja19jb3VudGVyID0gZ2V0X2dwdV9jbG9ja19jb3VudGVyLAo+ICAgCS5nZXRfbWF4X2Vu Z2luZV9jbG9ja19pbl9taHogPSBnZXRfbWF4X2VuZ2luZV9jbG9ja19pbl9taHosCj4gKwkuYWxs b2NfcGFzaWQgPSBhbWRncHVfdm1fYWxsb2NfcGFzaWQsCj4gKwkuZnJlZV9wYXNpZCA9IGFtZGdw dV92bV9mcmVlX3Bhc2lkLAo+ICAgCS5jcmVhdGVfcHJvY2Vzc192bSA9IGFtZGdwdV9hbWRrZmRf Z3B1dm1fY3JlYXRlX3Byb2Nlc3Nfdm0sCj4gICAJLmRlc3Ryb3lfcHJvY2Vzc192bSA9IGFtZGdw dV9hbWRrZmRfZ3B1dm1fZGVzdHJveV9wcm9jZXNzX3ZtLAo+ICAgCS5jcmVhdGVfcHJvY2Vzc19n cHVtZW0gPSBjcmVhdGVfcHJvY2Vzc19ncHVtZW0sCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y5LmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OS5jCj4gaW5kZXggOTYxMzY5ZC4uYmI5OWM2 NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2Zk X2dmeF92OS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtm ZF9nZnhfdjkuYwo+IEBAIC0yMDksNiArMjA5LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBrZmQy a2dkX2NhbGxzIGtmZDJrZ2QgPSB7Cj4gICAJLmdldF9sb2NhbF9tZW1faW5mbyA9IGdldF9sb2Nh bF9tZW1faW5mbywKPiAgIAkuZ2V0X2dwdV9jbG9ja19jb3VudGVyID0gZ2V0X2dwdV9jbG9ja19j b3VudGVyLAo+ICAgCS5nZXRfbWF4X2VuZ2luZV9jbG9ja19pbl9taHogPSBnZXRfbWF4X2VuZ2lu ZV9jbG9ja19pbl9taHosCj4gKwkuYWxsb2NfcGFzaWQgPSBhbWRncHVfdm1fYWxsb2NfcGFzaWQs Cj4gKwkuZnJlZV9wYXNpZCA9IGFtZGdwdV92bV9mcmVlX3Bhc2lkLAo+ICAgCS5jcmVhdGVfcHJv Y2Vzc192bSA9IGFtZGdwdV9hbWRrZmRfZ3B1dm1fY3JlYXRlX3Byb2Nlc3Nfdm0sCj4gICAJLmRl c3Ryb3lfcHJvY2Vzc192bSA9IGFtZGdwdV9hbWRrZmRfZ3B1dm1fZGVzdHJveV9wcm9jZXNzX3Zt LAo+ICAgCS5jcmVhdGVfcHJvY2Vzc19ncHVtZW0gPSBjcmVhdGVfcHJvY2Vzc19ncHVtZW0sCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1 dm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYwo+ IGluZGV4IDM1ZjdkNzcuLjQ2MjAxMWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jCj4gQEAgLTEzOTcsNyArMTM5Nyw3IEBAIGlu dCBhbWRncHVfYW1ka2ZkX2dwdXZtX2NyZWF0ZV9wcm9jZXNzX3ZtKHN0cnVjdCBrZ2RfZGV2ICpr Z2QsIHZvaWQgKip2bSwKPiAgIAkJcmV0dXJuIC1FTk9NRU07Cj4gICAKPiAgIAkvKiBJbml0aWFs aXplIHRoZSBWTSBjb250ZXh0LCBhbGxvY2F0ZSB0aGUgcGFnZSBkaXJlY3RvcnkgYW5kIHplcm8g aXQgKi8KPiAtCXJldCA9IGFtZGdwdV92bV9pbml0KGFkZXYsICZuZXdfdm0tPmJhc2UsIEFNREdQ VV9WTV9DT05URVhUX0NPTVBVVEUpOwo+ICsJcmV0ID0gYW1kZ3B1X3ZtX2luaXQoYWRldiwgJm5l d192bS0+YmFzZSwgQU1ER1BVX1ZNX0NPTlRFWFRfQ09NUFVURSwgMCk7Cj4gICAJaWYgKHJldCAh PSAwKSB7Cj4gICAJCXByX2VycigiRmFpbGVkIGluaXQgdm0gcmV0ICVkXG4iLCByZXQpOwo+ICAg CQkvKiBVbmRvIGV2ZXJ5dGhpbmcgcmVsYXRlZCB0byB0aGUgbmV3IFZNIGNvbnRleHQgKi8KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jCj4gaW5kZXggZTM5MGMwMS4uYmEz ZGM0ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21z LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMKPiBAQCAt ODI1LDcgKzgyNSw3IEBAIGludCBhbWRncHVfZHJpdmVyX29wZW5fa21zKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICAgCX0KPiAgIAo+ICAgCXIg PSBhbWRncHVfdm1faW5pdChhZGV2LCAmZnByaXYtPnZtLAo+IC0JCQkgICBBTURHUFVfVk1fQ09O VEVYVF9HRlgpOwo+ICsJCQkgICBBTURHUFVfVk1fQ09OVEVYVF9HRlgsIDApOwo+ICAgCWlmIChy KSB7Cj4gICAJCWtmcmVlKGZwcml2KTsKPiAgIAkJZ290byBvdXRfc3VzcGVuZDsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+IGluZGV4IDcwZDc2MzIuLmM2MzU2OTkgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+IEBAIC0yNywxMiArMjcs NTkgQEAKPiAgICAqLwo+ICAgI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS1hcnJheS5oPgo+ICAg I2luY2x1ZGUgPGxpbnV4L2ludGVydmFsX3RyZWVfZ2VuZXJpYy5oPgo+ICsjaW5jbHVkZSA8bGlu dXgvaWRyLmg+Cj4gICAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiAgICNpbmNsdWRlIDxkcm0vYW1k Z3B1X2RybS5oPgo+ICAgI2luY2x1ZGUgImFtZGdwdS5oIgo+ICAgI2luY2x1ZGUgImFtZGdwdV90 cmFjZS5oIgo+ICAgCj4gICAvKgo+ICsgKiBQQVNJRCBtYW5hZ2VyCj4gKyAqCj4gKyAqIFBBU0lE cyBhcmUgZ2xvYmFsIGFkZHJlc3Mgc3BhY2UgaWRlbnRpZmllcnMgdGhhdCBjYW4gYmUgc2hhcmVk Cj4gKyAqIGJldHdlZW4gdGhlIEdQVSwgYW4gSU9NTVUgYW5kIHRoZSBkcml2ZXIuIFZNcyBvbiBk aWZmZXJlbnQgZGV2aWNlcwo+ICsgKiBtYXkgdXNlIHRoZSBzYW1lIFBBU0lEIGlmIHRoZXkgc2hh cmUgdGhlIHNhbWUgYWRkcmVzcwo+ICsgKiBzcGFjZS4gVGhlcmVmb3JlIFBBU0lEcyBhcmUgYWxs b2NhdGVkIHVzaW5nIGEgZ2xvYmFsIElEQS4gVk1zIGFyZQo+ICsgKiBsb29rZWQgdXAgZnJvbSB0 aGUgUEFTSUQgcGVyIGFtZGdwdV9kZXZpY2UuCj4gKyAqLwo+ICtzdGF0aWMgREVGSU5FX0lEQShh bWRncHVfdm1fcGFzaWRfaWRhKTsKPiArCj4gKy8qKgo+ICsgKiBhbWRncHVfdm1fYWxsb2NfcGFz aWQgLSBBbGxvY2F0ZSBhIFBBU0lECj4gKyAqIEBiaXRzOiBNYXhpbXVtIHdpZHRoIG9mIHRoZSBQ QVNJRCBpbiBiaXRzLCBtdXN0IGJlIGF0IGxlYXN0IDEKPiArICoKPiArICogQWxsb2NhdGVzIGEg UEFTSUQgb2YgdGhlIGdpdmVuIHdpZHRoIHdoaWxlIGtlZXBpbmcgc21hbGxlciBQQVNJRHMKPiAr ICogYXZhaWxhYmxlIGlmIHBvc3NpYmxlLgo+ICsgKgo+ICsgKiBSZXR1cm5zIGEgcG9zaXRpdmUg aW50ZWdlciBvbiBzdWNjZXNzLiBSZXR1cm5zICUtRUlOVkFMIGlmIGJpdHM9PTAuCj4gKyAqIFJl dHVybnMgJS1FTk9TUEMgaWYgbm8gUEFTSUQgd2FzIGF2YWxpYWJsZS4gUmV0dXJucyAlLUVOT01F TSBvbgo+ICsgKiBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlLgo+ICsgKi8KPiAraW50IGFtZGdw dV92bV9hbGxvY19wYXNpZCh1bnNpZ25lZCBpbnQgYml0cykKPiArewo+ICsJaW50IHBhc2lkID0g LUVJTlZBTDsKPiArCj4gKwlmb3IgKGJpdHMgPSBtaW4oYml0cywgMzFVKTsgYml0cyA+IDA7IGJp dHMtLSkgewo+ICsJCXBhc2lkID0gaWRhX3NpbXBsZV9nZXQoJmFtZGdwdV92bV9wYXNpZF9pZGEs Cj4gKwkJCQkgICAgICAgMVUgPDwgKGJpdHMgLSAxKSwgMVUgPDwgYml0cywKPiArCQkJCSAgICAg ICBHRlBfS0VSTkVMKTsKPiArCQlpZiAocGFzaWQgIT0gLUVOT1NQQykKPiArCQkJYnJlYWs7Cj4g Kwl9Cj4gKwo+ICsJcmV0dXJuIHBhc2lkOwo+ICt9Cj4gKwo+ICsvKioKPiArICogYW1kZ3B1X3Zt X2ZyZWVfcGFzaWQgLSBGcmVlIGEgUEFTSUQKPiArICogQHBhc2lkOiBQQVNJRCB0byBmcmVlCj4g KyAqLwo+ICt2b2lkIGFtZGdwdV92bV9mcmVlX3Bhc2lkKHVuc2lnbmVkIGludCBwYXNpZCkKPiAr ewo+ICsJaWRhX3NpbXBsZV9yZW1vdmUoJmFtZGdwdV92bV9wYXNpZF9pZGEsIHBhc2lkKTsKPiAr fQo+ICsKPiArLyoKPiAgICAqIEdQVVZNCj4gICAgKiBHUFVWTSBpcyBzaW1pbGFyIHRvIHRoZSBs ZWdhY3kgZ2FydCBvbiBvbGRlciBhc2ljcywgaG93ZXZlcgo+ICAgICogcmF0aGVyIHRoYW4gdGhl cmUgYmVpbmcgYSBzaW5nbGUgZ2xvYmFsIGdhcnQgdGFibGUKPiBAQCAtMjQ4Miw3ICsyNTI5LDcg QEAgdm9pZCBhbWRncHVfdm1fYWRqdXN0X3NpemUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs IHVpbnQ2NF90IHZtX3NpemUsIHVpbnQzMl8KPiAgICAqIEluaXQgQHZtIGZpZWxkcy4KPiAgICAq Lwo+ICAgaW50IGFtZGdwdV92bV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1 Y3QgYW1kZ3B1X3ZtICp2bSwKPiAtCQkgICBpbnQgdm1fY29udGV4dCkKPiArCQkgICBpbnQgdm1f Y29udGV4dCwgdW5zaWduZWQgaW50IHBhc2lkKQo+ICAgewo+ICAgCWNvbnN0IHVuc2lnbmVkIGFs aWduID0gbWluKEFNREdQVV9WTV9QVEJfQUxJR05fU0laRSwKPiAgIAkJQU1ER1BVX1ZNX1BURV9D T1VOVChhZGV2KSAqIDgpOwo+IEBAIC0yNTYyLDYgKzI2MDksMTkgQEAgaW50IGFtZGdwdV92bV9p bml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKPiAg IAlpZiAocikKPiAgIAkJZ290byBlcnJvcl9mcmVlX3Jvb3Q7Cj4gICAKPiArCWlmIChwYXNpZCkg ewo+ICsJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gKwo+ICsJCXNwaW5fbG9ja19pcnFzYXZlKCZh ZGV2LT52bV9tYW5hZ2VyLnBhc2lkX2xvY2ssIGZsYWdzKTsKPiArCQlyID0gaWRyX2FsbG9jKCZh ZGV2LT52bV9tYW5hZ2VyLnBhc2lkX2lkciwgdm0sIHBhc2lkLCBwYXNpZCArIDEsCj4gKwkJCSAg ICAgIEdGUF9BVE9NSUMpOwo+ICsJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFkZXYtPnZtX21h bmFnZXIucGFzaWRfbG9jaywgZmxhZ3MpOwo+ICsJCWlmIChyIDwgMCkKPiArCQkJZ290byBlcnJv cl9mcmVlX3Jvb3Q7Cj4gKwo+ICsJCXZtLT5wYXNpZCA9IHBhc2lkOwo+ICsJfQo+ICsKPiAgIAl2 bS0+dm1fY29udGV4dCA9IHZtX2NvbnRleHQ7Cj4gICAJaWYgKHZtX2NvbnRleHQgPT0gQU1ER1BV X1ZNX0NPTlRFWFRfQ09NUFVURSkgewo+ICAgCQltdXRleF9sb2NrKCZpZF9tZ3ItPmxvY2spOwo+ IEBAIC0yNjUwLDYgKzI3MTAsMTQgQEAgdm9pZCBhbWRncHVfdm1fZmluaShzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0pCj4gICAJCW11dGV4X3VubG9jaygm aWRfbWdyLT5sb2NrKTsKPiAgIAl9Cj4gICAKPiArCWlmICh2bS0+cGFzaWQpIHsKPiArCQl1bnNp Z25lZCBsb25nIGZsYWdzOwo+ICsKPiArCQlzcGluX2xvY2tfaXJxc2F2ZSgmYWRldi0+dm1fbWFu YWdlci5wYXNpZF9sb2NrLCBmbGFncyk7Cj4gKwkJaWRyX3JlbW92ZSgmYWRldi0+dm1fbWFuYWdl ci5wYXNpZF9pZHIsIHZtLT5wYXNpZCk7Cj4gKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYWRl di0+dm1fbWFuYWdlci5wYXNpZF9sb2NrLCBmbGFncyk7Cj4gKwl9Cj4gKwo+ICAgCWFtZF9zY2hl ZF9lbnRpdHlfZmluaSh2bS0+ZW50aXR5LnNjaGVkLCAmdm0tPmVudGl0eSk7Cj4gICAKPiAgIAlp ZiAoIVJCX0VNUFRZX1JPT1QoJnZtLT52YSkpIHsKPiBAQCAtMjcyOSw2ICsyNzk3LDkgQEAgdm9p ZCBhbWRncHVfdm1fbWFuYWdlcl9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAg CWFkZXYtPnZtX21hbmFnZXIudm1fdXBkYXRlX21vZGUgPSAwOwo+ICAgI2VuZGlmCj4gICAKPiAr CWlkcl9pbml0KCZhZGV2LT52bV9tYW5hZ2VyLnBhc2lkX2lkcik7Cj4gKwlzcGluX2xvY2tfaW5p dCgmYWRldi0+dm1fbWFuYWdlci5wYXNpZF9sb2NrKTsKPiArCj4gICAJYWRldi0+dm1fbWFuYWdl ci5uX2NvbXB1dGVfdm1zID0gMDsKPiAgIH0KPiAgIAo+IEBAIC0yNzQzLDYgKzI4MTQsOSBAQCB2 b2lkIGFtZGdwdV92bV9tYW5hZ2VyX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4g ICB7Cj4gICAJdW5zaWduZWQgaSwgajsKPiAgIAo+ICsJV0FSTl9PTighaWRyX2lzX2VtcHR5KCZh ZGV2LT52bV9tYW5hZ2VyLnBhc2lkX2lkcikpOwo+ICsJaWRyX2Rlc3Ryb3koJmFkZXYtPnZtX21h bmFnZXIucGFzaWRfaWRyKTsKPiArCj4gICAJZm9yIChpID0gMDsgaSA8IEFNREdQVV9NQVhfVk1I VUJTOyArK2kpIHsKPiAgIAkJc3RydWN0IGFtZGdwdV92bV9pZF9tYW5hZ2VyICppZF9tZ3IgPQo+ ICAgCQkJJmFkZXYtPnZtX21hbmFnZXIuaWRfbWdyW2ldOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV92bS5oCj4gaW5kZXggNDllMTVkNy4uNjkyYjA1YyAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCj4gQEAgLTI1LDYgKzI1LDcgQEAKPiAgICNkZWZp bmUgX19BTURHUFVfVk1fSF9fCj4gICAKPiAgICNpbmNsdWRlIDxsaW51eC9yYnRyZWUuaD4KPiAr I2luY2x1ZGUgPGxpbnV4L2lkci5oPgo+ICAgCj4gICAjaW5jbHVkZSAiZ3B1X3NjaGVkdWxlci5o Igo+ICAgI2luY2x1ZGUgImFtZGdwdV9zeW5jLmgiCj4gQEAgLTE0Myw4ICsxNDQsOSBAQCBzdHJ1 Y3QgYW1kZ3B1X3ZtIHsKPiAgIAkvKiBTY2hlZHVsZXIgZW50aXR5IGZvciBwYWdlIHRhYmxlIHVw ZGF0ZXMgKi8KPiAgIAlzdHJ1Y3QgYW1kX3NjaGVkX2VudGl0eQllbnRpdHk7Cj4gICAKPiAtCS8q IGNsaWVudCBpZCAqLwo+ICsJLyogY2xpZW50IGlkIGFuZCBQQVNJRCAoVE9ETzogcmVwbGFjZSBj bGllbnRfaWQgd2l0aCBQQVNJRCkgKi8KPiAgIAl1NjQgICAgICAgICAgICAgICAgICAgICBjbGll bnRfaWQ7Cj4gKwl1bnNpZ25lZCBpbnQJCXBhc2lkOwo+ICAgCS8qIGRlZGljYXRlZCB0byB2bSAq Lwo+ICAgCXN0cnVjdCBhbWRncHVfdm1faWQJKnJlc2VydmVkX3ZtaWRbQU1ER1BVX01BWF9WTUhV QlNdOwo+ICAgCj4gQEAgLTIxOSwxNCArMjIxLDIyIEBAIHN0cnVjdCBhbWRncHVfdm1fbWFuYWdl ciB7Cj4gICAJICovCj4gICAJaW50CQkJCQl2bV91cGRhdGVfbW9kZTsKPiAgIAo+ICsJLyogUEFT SUQgdG8gVk0gbWFwcGluZywgd2lsbCBiZSB1c2VkIGluIGludGVycnVwdCBjb250ZXh0IHRvCj4g KwkgKiBsb29rIHVwIFZNIG9mIGEgcGFnZSBmYXVsdAo+ICsJICovCj4gKwlzdHJ1Y3QgaWRyCQkJ CXBhc2lkX2lkcjsKPiArCXNwaW5sb2NrX3QJCQkJcGFzaWRfbG9jazsKPiArCj4gICAJLyogTnVt YmVyIG9mIENvbXB1dGUgVk1zLCB1c2VkIGZvciBkZXRlY3RpbmcgQ29tcHV0ZSBhY3Rpdml0eSAq Lwo+ICAgCXVuc2lnbmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX2NvbXB1dGVf dm1zOwo+ICAgfTsKPiAgIAo+ICtpbnQgYW1kZ3B1X3ZtX2FsbG9jX3Bhc2lkKHVuc2lnbmVkIGlu dCBiaXRzKTsKPiArdm9pZCBhbWRncHVfdm1fZnJlZV9wYXNpZCh1bnNpZ25lZCBpbnQgcGFzaWQp Owo+ICAgdm9pZCBhbWRncHVfdm1fbWFuYWdlcl9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KTsKPiAgIHZvaWQgYW1kZ3B1X3ZtX21hbmFnZXJfZmluaShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldik7Cj4gICBpbnQgYW1kZ3B1X3ZtX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtLAo+IC0JCSAgIGludCB2bV9jb250ZXh0KTsKPiArCQkg ICBpbnQgdm1fY29udGV4dCwgdW5zaWduZWQgaW50IHBhc2lkKTsKPiAgIHZvaWQgYW1kZ3B1X3Zt X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtKTsK PiAgIHZvaWQgYW1kZ3B1X3ZtX2dldF9wZF9ibyhzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKPiAgIAkJ CSBzdHJ1Y3QgbGlzdF9oZWFkICp2YWxpZGF0ZWQsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvaW5jbHVkZS9rZ2Rfa2ZkX2ludGVyZmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9pbmNsdWRlL2tnZF9rZmRfaW50ZXJmYWNlLmgKPiBpbmRleCBlODAyN2IzLi41ODMzZWY3IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9rZ2Rfa2ZkX2ludGVyZmFj ZS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2tnZF9rZmRfaW50ZXJmYWNl LmgKPiBAQCAtMTg4LDYgKzE4OCw5IEBAIHN0cnVjdCB0aWxlX2NvbmZpZyB7Cj4gICAgKgo+ICAg ICogQGdldF9tYXhfZW5naW5lX2Nsb2NrX2luX21oejogUmV0cmlldmVzIG1heGltdW0gR1BVIGNs b2NrIGluIE1Iego+ICAgICoKPiArICogQGFsbG9jX3Bhc2lkOiBBbGxvY2F0ZSBhIFBBU0lECj4g KyAqIEBmcmVlX3Bhc2lkOiBGcmVlIGEgUEFTSUQKPiArICoKPiAgICAqIEBwcm9ncmFtX3NoX21l bV9zZXR0aW5nczogQSBmdW5jdGlvbiB0aGF0IHNob3VsZCBpbml0aWF0ZSB0aGUgbWVtb3J5Cj4g ICAgKiBwcm9wZXJ0aWVzIHN1Y2ggYXMgbWFpbiBhcGVydHVyZSBtZW1vcnkgdHlwZSAoY2FjaGUg LyBub24gY2FjaGVkKSBhbmQKPiAgICAqIHNlY29uZGFyeSBhcGVydHVyZSBiYXNlIGFkZHJlc3Ms IHNpemUgYW5kIG1lbW9yeSB0eXBlLgo+IEBAIC0yNjQsNiArMjY3LDkgQEAgc3RydWN0IGtmZDJr Z2RfY2FsbHMgewo+ICAgCj4gICAJdWludDMyX3QgKCpnZXRfbWF4X2VuZ2luZV9jbG9ja19pbl9t aHopKHN0cnVjdCBrZ2RfZGV2ICprZ2QpOwo+ICAgCj4gKwlpbnQgKCphbGxvY19wYXNpZCkodW5z aWduZWQgaW50IGJpdHMpOwo+ICsJdm9pZCAoKmZyZWVfcGFzaWQpKHVuc2lnbmVkIGludCBwYXNp ZCk7Cj4gKwo+ICAgCWludCAoKmNyZWF0ZV9wcm9jZXNzX3ZtKShzdHJ1Y3Qga2dkX2RldiAqa2dk LCB2b2lkICoqdm0sCj4gICAJCQkJIHZvaWQgKipwcm9jZXNzX2luZm8pOwo+ICAgCXZvaWQgKCpk ZXN0cm95X3Byb2Nlc3Nfdm0pKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHZvaWQgKnZtKTsKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxp bmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK