From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?TWFyZWsgT2zFocOhaw==?= Subject: Re: [PATCH 9/9] drm/amdgpu: WIP add IOCTL interface for per VM BOs Date: Fri, 25 Aug 2017 18:22:12 +0200 Message-ID: References: <1503653899-1781-1-git-send-email-deathsimple@vodafone.de> <1503653899-1781-9-git-send-email-deathsimple@vodafone.de> <19c04fac-1fdd-1436-e85c-95dd4ac02b1b@amd.com> <9304342a-def2-187e-4e9c-d872c58cdc17@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <9304342a-def2-187e-4e9c-d872c58cdc17-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org> 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: =?UTF-8?Q?Christian_K=C3=B6nig?= Cc: zhoucm1 , "Olsak, Marek" , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org T24gRnJpLCBBdWcgMjUsIDIwMTcgYXQgMzowMCBQTSwgQ2hyaXN0aWFuIEvDtm5pZwo8ZGVhdGhz aW1wbGVAdm9kYWZvbmUuZGU+IHdyb3RlOgo+IEFtIDI1LjA4LjIwMTcgdW0gMTI6MzIgc2Nocmll YiB6aG91Y20xOgo+Pgo+Pgo+Pgo+PiBPbiAyMDE35bm0MDjmnIgyNeaXpSAxNzozOCwgQ2hyaXN0 aWFuIEvDtm5pZyB3cm90ZToKPj4+Cj4+PiBGcm9tOiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3Rp YW4ua29lbmlnQGFtZC5jb20+Cj4+Pgo+Pj4gQWRkIHRoZSBJT0NUTCBpbnRlcmZhY2Ugc28gdGhh dCBhcHBsaWNhdGlvbnMgY2FuIGFsbG9jYXRlIHBlciBWTSBCT3MuCj4+Pgo+Pj4gU3RpbGwgV0lQ IHNpbmNlIG5vdCBhbGwgY29ybmVyIGNhc2VzIGFyZSB0ZXN0ZWQgeWV0LCBidXQgdGhpcyByZWR1 Y2VzCj4+PiBhdmVyYWdlCj4+PiBDUyBvdmVyaGVhZCBmb3IgMTBLIEJPcyBmcm9tIDIxbXMgZG93 biB0byA0OHVzLgo+Pgo+PiBXb3csIGNoZWVycywgZXZlbnR1YWxseSB5b3UgZ2V0IHBlciB2bSBi byB0byBzYW1lIHJlc2VydmF0aW9uIHdpdGggUEQvcHRzLAo+PiBpbmRlZWQgc2F2ZSBhIGxvdCBv ZiBibyBsaXN0Lgo+Cj4KPiBEb24ndCBjaGVlciB0byBsb3VkIHlldCwgdGhhdCBpcyBhIGNvbXBs ZXRlbHkgY29uc3RydWN0ZWQgdGVzdCBjYXNlLgo+Cj4gU28gZmFyIEkgd2Fzbid0IGFibGUgdG8g YXJjaGl2ZSBhbnkgaW1wcm92ZW1lbnRzIHdpdGggYW55IHJlYWwgZ2FtZSBvbiB0aGlzCj4gd2l0 aCBNZXNhLgo+Cj4gQlRXOiBNYXJlayBjYW4geW91IHRha2UgYSBsb29rIHdpdGggc29tZSBDUFUg Ym91bmQgdGVzdHM/IEkgY2FuIHByb3ZpZGUgYQo+IGtlcm5lbCBicmFuY2ggaWYgbmVjZXNzYXJ5 LgoKRG8geW91IGhhdmUgYSBicmFuY2ggdGhhdCB3b3JrcyBvbiBSYXZlbj8gVGhpcyBwYXRjaCBz ZXJpZXMgZG9lc24ndCwKYW5kIEkgZGlkbid0IGludmVzdGlnYXRlIHdoeS4KCk1hcmVrCgo+Cj4g UmVnYXJkcywKPiBDaHJpc3RpYW4uCj4KPgo+PiBvdmVyYWxsIGxvb2tzIGdvb2QsIEkgd2lsbCB0 YWtlIGEgZGV0YWlsZWQgY2hlY2sgZm9yIHRoaXMgdG9tb3Jyb3cuCj4+Cj4+IFJlZ2FyZHMsCj4+ IERhdmlkIFpob3UKPj4+Cj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8 Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+Pj4gLS0tCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdS5oICAgICAgIHwgIDcgKystLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZmIuYyAgICB8ICAyICstCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9nZW0uYyAgIHwgNTkKPj4+ICsrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ByaW1lLmMg fCAgMyArLQo+Pj4gICBpbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaCAgICAgICAgICAgICB8 ICAyICsrCj4+PiAgIDUgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRp b25zKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdS5oCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4+PiBpbmRl eCBiMWU4MTdjLi4yMWNhYjM2IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1LmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dS5oCj4+PiBAQCAtNDU3LDkgKzQ1NywxMCBAQCBzdHJ1Y3QgYW1kZ3B1X3NhX2JvIHsKPj4+ICAg ICovCj4+PiAgIHZvaWQgYW1kZ3B1X2dlbV9mb3JjZV9yZWxlYXNlKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KTsKPj4+ICAgaW50IGFtZGdwdV9nZW1fb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwgdW5zaWduZWQgbG9uZwo+Pj4gc2l6ZSwKPj4+IC0gICAgICAgICAg ICAgICAgaW50IGFsaWdubWVudCwgdTMyIGluaXRpYWxfZG9tYWluLAo+Pj4gLSAgICAgICAgICAg ICAgICB1NjQgZmxhZ3MsIGJvb2wga2VybmVsLAo+Pj4gLSAgICAgICAgICAgICAgICBzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3QgKipvYmopOwo+Pj4gKyAgICAgICAgICAgICAgICAgaW50IGFsaWdubWVu dCwgdTMyIGluaXRpYWxfZG9tYWluLAo+Pj4gKyAgICAgICAgICAgICAgICAgdTY0IGZsYWdzLCBi b29sIGtlcm5lbCwKPj4+ICsgICAgICAgICAgICAgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmpl Y3QgKnJlc3YsCj4+PiArICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipv YmopOwo+Pj4gICAgIGludCBhbWRncHVfbW9kZV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdiwKPj4+ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZiLmMK Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZiLmMKPj4+IGluZGV4IDBl OTA3ZWEuLjcyNTZmODMgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfZmIuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2ZiLmMKPj4+IEBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIGludCBhbWRncHVmYl9jcmVhdGVf cGlubmVkX29iamVjdChzdHJ1Y3QKPj4+IGFtZGdwdV9mYmRldiAqcmZiZGV2LAo+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgIEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQg fAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fQ09O VElHVU9VUyB8Cj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgQU1ER1BVX0dFTV9DUkVBVEVf VlJBTV9DTEVBUkVELAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgJmdvYmopOwo+ Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgTlVMTCwgJmdvYmopOwo+Pj4gICAgICAg aWYgKHJldCkgewo+Pj4gICAgICAgICAgIHByX2VycigiZmFpbGVkIHRvIGFsbG9jYXRlIGZyYW1l YnVmZmVyICglZClcbiIsIGFsaWduZWRfc2l6ZSk7Cj4+PiAgICAgICAgICAgcmV0dXJuIC1FTk9N RU07Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dl bS5jCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYwo+Pj4gaW5k ZXggZDAyODgwNi4uYjhlOGQ2NyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9nZW0uYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2dlbS5jCj4+PiBAQCAtNDQsMTEgKzQ0LDEyIEBAIHZvaWQgYW1kZ3B1X2dlbV9vYmpl Y3RfZnJlZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QKPj4+ICpnb2JqKQo+Pj4gICB9Cj4+PiAgICAg aW50IGFtZGdwdV9nZW1fb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwg dW5zaWduZWQKPj4+IGxvbmcgc2l6ZSwKPj4+IC0gICAgICAgICAgICAgICAgaW50IGFsaWdubWVu dCwgdTMyIGluaXRpYWxfZG9tYWluLAo+Pj4gLSAgICAgICAgICAgICAgICB1NjQgZmxhZ3MsIGJv b2wga2VybmVsLAo+Pj4gLSAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipv YmopCj4+PiArICAgICAgICAgICAgICAgICBpbnQgYWxpZ25tZW50LCB1MzIgaW5pdGlhbF9kb21h aW4sCj4+PiArICAgICAgICAgICAgICAgICB1NjQgZmxhZ3MsIGJvb2wga2VybmVsLAo+Pj4gKyAg ICAgICAgICAgICAgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKPj4+ICsgICAg ICAgICAgICAgICAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKm9iaikKPj4+ICAgewo+Pj4gLSAg ICBzdHJ1Y3QgYW1kZ3B1X2JvICpyb2JqOwo+Pj4gKyAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibzsK Pj4+ICAgICAgIGludCByOwo+Pj4gICAgICAgICAqb2JqID0gTlVMTDsKPj4+IEBAIC01OSw3ICs2 MCw3IEBAIGludCBhbWRncHVfZ2VtX29iamVjdF9jcmVhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UK Pj4+ICphZGV2LCB1bnNpZ25lZCBsb25nIHNpemUsCj4+PiAgICAgcmV0cnk6Cj4+PiAgICAgICBy ID0gYW1kZ3B1X2JvX2NyZWF0ZShhZGV2LCBzaXplLCBhbGlnbm1lbnQsIGtlcm5lbCwgaW5pdGlh bF9kb21haW4sCj4+PiAtICAgICAgICAgICAgICAgICBmbGFncywgTlVMTCwgTlVMTCwgMCwgJnJv YmopOwo+Pj4gKyAgICAgICAgICAgICAgICAgZmxhZ3MsIE5VTEwsIHJlc3YsIDAsICZibyk7Cj4+ PiAgICAgICBpZiAocikgewo+Pj4gICAgICAgICAgIGlmIChyICE9IC1FUkVTVEFSVFNZUykgewo+ Pj4gICAgICAgICAgICAgICBpZiAoaW5pdGlhbF9kb21haW4gPT0gQU1ER1BVX0dFTV9ET01BSU5f VlJBTSkgewo+Pj4gQEAgLTcxLDcgKzcyLDcgQEAgaW50IGFtZGdwdV9nZW1fb2JqZWN0X2NyZWF0 ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZQo+Pj4gKmFkZXYsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKPj4+ ICAgICAgICAgICB9Cj4+PiAgICAgICAgICAgcmV0dXJuIHI7Cj4+PiAgICAgICB9Cj4+PiAtICAg ICpvYmogPSAmcm9iai0+Z2VtX2Jhc2U7Cj4+PiArICAgICpvYmogPSAmYm8tPmdlbV9iYXNlOwo+ Pj4gICAgICAgICByZXR1cm4gMDsKPj4+ICAgfQo+Pj4gQEAgLTEzNiwxMyArMTM3LDE0IEBAIHZv aWQgYW1kZ3B1X2dlbV9vYmplY3RfY2xvc2Uoc3RydWN0IGRybV9nZW1fb2JqZWN0Cj4+PiAqb2Jq LAo+Pj4gICAgICAgc3RydWN0IGFtZGdwdV92bSAqdm0gPSAmZnByaXYtPnZtOwo+Pj4gICAgICAg ICBzdHJ1Y3QgYW1kZ3B1X2JvX2xpc3RfZW50cnkgdm1fcGQ7Cj4+PiAtICAgIHN0cnVjdCBsaXN0 X2hlYWQgbGlzdDsKPj4+ICsgICAgc3RydWN0IGxpc3RfaGVhZCBsaXN0LCBkdXBsaWNhdGVzOwo+ Pj4gICAgICAgc3RydWN0IHR0bV92YWxpZGF0ZV9idWZmZXIgdHY7Cj4+PiAgICAgICBzdHJ1Y3Qg d3dfYWNxdWlyZV9jdHggdGlja2V0Owo+Pj4gICAgICAgc3RydWN0IGFtZGdwdV9ib192YSAqYm9f dmE7Cj4+PiAgICAgICBpbnQgcjsKPj4+ICAgICAgICAgSU5JVF9MSVNUX0hFQUQoJmxpc3QpOwo+ Pj4gKyAgICBJTklUX0xJU1RfSEVBRCgmZHVwbGljYXRlcyk7Cj4+PiAgICAgICAgIHR2LmJvID0g JmJvLT50Ym87Cj4+PiAgICAgICB0di5zaGFyZWQgPSB0cnVlOwo+Pj4gQEAgLTE1MCw3ICsxNTIs NyBAQCB2b2lkIGFtZGdwdV9nZW1fb2JqZWN0X2Nsb3NlKHN0cnVjdCBkcm1fZ2VtX29iamVjdAo+ Pj4gKm9iaiwKPj4+ICAgICAgICAgYW1kZ3B1X3ZtX2dldF9wZF9ibyh2bSwgJmxpc3QsICZ2bV9w ZCk7Cj4+PiAgIC0gICAgciA9IHR0bV9ldV9yZXNlcnZlX2J1ZmZlcnMoJnRpY2tldCwgJmxpc3Qs IGZhbHNlLCBOVUxMKTsKPj4+ICsgICAgciA9IHR0bV9ldV9yZXNlcnZlX2J1ZmZlcnMoJnRpY2tl dCwgJmxpc3QsIGZhbHNlLCAmZHVwbGljYXRlcyk7Cj4+PiAgICAgICBpZiAocikgewo+Pj4gICAg ICAgICAgIGRldl9lcnIoYWRldi0+ZGV2LCAibGVha2luZyBibyB2YSBiZWNhdXNlICIKPj4+ICAg ICAgICAgICAgICAgIndlIGZhaWwgdG8gcmVzZXJ2ZSBibyAoJWQpXG4iLCByKTsKPj4+IEBAIC0x ODUsOSArMTg3LDEyIEBAIGludCBhbWRncHVfZ2VtX2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+Pj4gdm9pZCAqZGF0YSwKPj4+ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBk cm1fZmlsZSAqZmlscCkKPj4+ICAgewo+Pj4gICAgICAgc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4gKyAgICBzdHJ1Y3QgYW1kZ3B1X2Zwcml2ICpmcHJp diA9IGZpbHAtPmRyaXZlcl9wcml2Owo+Pj4gKyAgICBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSA9ICZm cHJpdi0+dm07Cj4+PiAgICAgICB1bmlvbiBkcm1fYW1kZ3B1X2dlbV9jcmVhdGUgKmFyZ3MgPSBk YXRhOwo+Pj4gICAgICAgdWludDY0X3QgZmxhZ3MgPSBhcmdzLT5pbi5kb21haW5fZmxhZ3M7Cj4+ PiAgICAgICB1aW50NjRfdCBzaXplID0gYXJncy0+aW4uYm9fc2l6ZTsKPj4+ICsgICAgc3RydWN0 IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiA9IE5VTEw7Cj4+PiAgICAgICBzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKmdvYmo7Cj4+PiAgICAgICB1aW50MzJfdCBoYW5kbGU7Cj4+PiAgICAgICBpbnQg cjsKPj4+IEBAIC0xOTYsNyArMjAxLDggQEAgaW50IGFtZGdwdV9nZW1fY3JlYXRlX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+PiB2b2lkICpkYXRhLAo+Pj4gICAgICAgaWYgKGZsYWdz ICYgfihBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVEIHwKPj4+ICAgICAgICAg ICAgICAgICBBTURHUFVfR0VNX0NSRUFURV9OT19DUFVfQUNDRVNTIHwKPj4+ICAgICAgICAgICAg ICAgICBBTURHUFVfR0VNX0NSRUFURV9DUFVfR1RUX1VTV0MgfAo+Pj4gLSAgICAgICAgICAgICAg QU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DTEVBUkVEKSkKPj4+ICsgICAgICAgICAgICAgIEFNREdQ VV9HRU1fQ1JFQVRFX1ZSQU1fQ0xFQVJFRCB8Cj4+PiArICAgICAgICAgICAgICBBTURHUFVfR0VN X0NSRUFURV9MT0NBTCkpCj4+PiAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+PiAgICAgICAg IC8qIHJlamVjdCBpbnZhbGlkIGdlbSBkb21haW5zICovCj4+PiBAQCAtMjIzLDkgKzIyOSwyNSBA QCBpbnQgYW1kZ3B1X2dlbV9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4+ IHZvaWQgKmRhdGEsCj4+PiAgICAgICB9Cj4+PiAgICAgICBzaXplID0gcm91bmR1cChzaXplLCBQ QUdFX1NJWkUpOwo+Pj4gICArICAgIGlmIChmbGFncyAmIEFNREdQVV9HRU1fQ1JFQVRFX0xPQ0FM KSB7Cj4+PiArICAgICAgICByID0gYW1kZ3B1X2JvX3Jlc2VydmUodm0tPnJvb3QuYmFzZS5ibywg ZmFsc2UpOwo+Pj4gKyAgICAgICAgaWYgKHIpCj4+PiArICAgICAgICAgICAgcmV0dXJuIHI7Cj4+ PiArCj4+PiArICAgICAgICByZXN2ID0gdm0tPnJvb3QuYmFzZS5iby0+dGJvLnJlc3Y7Cj4+PiAr ICAgIH0KPj4+ICsKPj4+ICAgICAgIHIgPSBhbWRncHVfZ2VtX29iamVjdF9jcmVhdGUoYWRldiwg c2l6ZSwgYXJncy0+aW4uYWxpZ25tZW50LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAodTMy KSgweGZmZmZmZmZmICYgYXJncy0+aW4uZG9tYWlucyksCj4+PiAtICAgICAgICAgICAgICAgICAg ICAgZmxhZ3MsIGZhbHNlLCAmZ29iaik7Cj4+PiArICAgICAgICAgICAgICAgICAgICAgZmxhZ3Ms IGZhbHNlLCByZXN2LCAmZ29iaik7Cj4+PiArICAgIGlmIChmbGFncyAmIEFNREdQVV9HRU1fQ1JF QVRFX0xPQ0FMKSB7Cj4+PiArICAgICAgICBpZiAoIXIpIHsKPj4+ICsgICAgICAgICAgICBzdHJ1 Y3QgYW1kZ3B1X2JvICphYm8gPSBnZW1fdG9fYW1kZ3B1X2JvKGdvYmopOwo+Pj4gKwo+Pj4gKyAg ICAgICAgICAgIGFiby0+cGFyZW50ID0gYW1kZ3B1X2JvX3JlZih2bS0+cm9vdC5iYXNlLmJvKTsK Pj4+ICsgICAgICAgIH0KPj4+ICsgICAgICAgIGFtZGdwdV9ib191bnJlc2VydmUodm0tPnJvb3Qu YmFzZS5ibyk7Cj4+PiArICAgIH0KPj4+ICAgICAgIGlmIChyKQo+Pj4gICAgICAgICAgIHJldHVy biByOwo+Pj4gICBAQCAtMjY3LDkgKzI4OSw4IEBAIGludCBhbWRncHVfZ2VtX3VzZXJwdHJfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UKPj4+ICpkZXYsIHZvaWQgKmRhdGEsCj4+PiAgICAgICB9Cj4+ PiAgICAgICAgIC8qIGNyZWF0ZSBhIGdlbSBvYmplY3QgdG8gY29udGFpbiB0aGlzIG9iamVjdCBp biAqLwo+Pj4gLSAgICByID0gYW1kZ3B1X2dlbV9vYmplY3RfY3JlYXRlKGFkZXYsIGFyZ3MtPnNp emUsIDAsCj4+PiAtICAgICAgICAgICAgICAgICAgICAgQU1ER1BVX0dFTV9ET01BSU5fQ1BVLCAw LAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgIDAsICZnb2JqKTsKPj4+ICsgICAgciA9IGFtZGdw dV9nZW1fb2JqZWN0X2NyZWF0ZShhZGV2LCBhcmdzLT5zaXplLCAwLAo+Pj4gQU1ER1BVX0dFTV9E T01BSU5fQ1BVLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIDAsIDAsIE5VTEwsICZnb2JqKTsK Pj4+ICAgICAgIGlmIChyKQo+Pj4gICAgICAgICAgIHJldHVybiByOwo+Pj4gICBAQCAtNTIxLDcg KzU0Miw3IEBAIGludCBhbWRncHVfZ2VtX3ZhX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4+PiB2b2lkICpkYXRhLAo+Pj4gICAgICAgc3RydWN0IGFtZGdwdV9ib19saXN0X2VudHJ5IHZt X3BkOwo+Pj4gICAgICAgc3RydWN0IHR0bV92YWxpZGF0ZV9idWZmZXIgdHY7Cj4+PiAgICAgICBz dHJ1Y3Qgd3dfYWNxdWlyZV9jdHggdGlja2V0Owo+Pj4gLSAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxp c3Q7Cj4+PiArICAgIHN0cnVjdCBsaXN0X2hlYWQgbGlzdCwgZHVwbGljYXRlczsKPj4+ICAgICAg IHVpbnQ2NF90IHZhX2ZsYWdzOwo+Pj4gICAgICAgaW50IHIgPSAwOwo+Pj4gICBAQCAtNTU3LDYg KzU3OCw3IEBAIGludCBhbWRncHVfZ2VtX3ZhX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4+PiB2b2lkICpkYXRhLAo+Pj4gICAgICAgfQo+Pj4gICAgICAgICBJTklUX0xJU1RfSEVBRCgm bGlzdCk7Cj4+PiArICAgIElOSVRfTElTVF9IRUFEKCZkdXBsaWNhdGVzKTsKPj4+ICAgICAgIGlm ICgoYXJncy0+b3BlcmF0aW9uICE9IEFNREdQVV9WQV9PUF9DTEVBUikgJiYKPj4+ICAgICAgICAg ICAhKGFyZ3MtPmZsYWdzICYgQU1ER1BVX1ZNX1BBR0VfUFJUKSkgewo+Pj4gICAgICAgICAgIGdv YmogPSBkcm1fZ2VtX29iamVjdF9sb29rdXAoZmlscCwgYXJncy0+aGFuZGxlKTsKPj4+IEBAIC01 NzMsNyArNTk1LDcgQEAgaW50IGFtZGdwdV9nZW1fdmFfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZAo+Pj4gKmRhdGEsCj4+PiAgICAgICAgIGFtZGdwdV92bV9nZXRfcGRfYm8oJmZw cml2LT52bSwgJmxpc3QsICZ2bV9wZCk7Cj4+PiAgIC0gICAgciA9IHR0bV9ldV9yZXNlcnZlX2J1 ZmZlcnMoJnRpY2tldCwgJmxpc3QsIHRydWUsIE5VTEwpOwo+Pj4gKyAgICByID0gdHRtX2V1X3Jl c2VydmVfYnVmZmVycygmdGlja2V0LCAmbGlzdCwgdHJ1ZSwgJmR1cGxpY2F0ZXMpOwo+Pj4gICAg ICAgaWYgKHIpCj4+PiAgICAgICAgICAgZ290byBlcnJvcl91bnJlZjsKPj4+ICAgQEAgLTYzOSw2 ICs2NjEsNyBAQCBpbnQgYW1kZ3B1X2dlbV92YV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+Pj4gdm9pZCAqZGF0YSwKPj4+ICAgaW50IGFtZGdwdV9nZW1fb3BfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4+ICAgICAgICAgICAgICAgc3RydWN0IGRybV9m aWxlICpmaWxwKQo+Pj4gICB7Cj4+PiArICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPj4+ICAgICAgIHN0cnVjdCBkcm1fYW1kZ3B1X2dlbV9vcCAqYXJn cyA9IGRhdGE7Cj4+PiAgICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmo7Cj4+PiAgICAg ICBzdHJ1Y3QgYW1kZ3B1X2JvICpyb2JqOwo+Pj4gQEAgLTY4Niw2ICs3MDksOSBAQCBpbnQgYW1k Z3B1X2dlbV9vcF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkCj4+PiAqZGF0YSwK Pj4+ICAgICAgICAgICBpZiAocm9iai0+YWxsb3dlZF9kb21haW5zID09IEFNREdQVV9HRU1fRE9N QUlOX1ZSQU0pCj4+PiAgICAgICAgICAgICAgIHJvYmotPmFsbG93ZWRfZG9tYWlucyB8PSBBTURH UFVfR0VNX0RPTUFJTl9HVFQ7Cj4+PiAgICsgICAgICAgIGlmIChyb2JqLT5mbGFncyAmIEFNREdQ VV9HRU1fQ1JFQVRFX0xPQ0FMKQo+Pj4gKyAgICAgICAgICAgIGFtZGdwdV92bV9ib19pbnZhbGlk YXRlKGFkZXYsIHJvYmosIHRydWUpOwo+Pj4gKwo+Pj4gICAgICAgICAgIGFtZGdwdV9ib191bnJl c2VydmUocm9iaik7Cj4+PiAgICAgICAgICAgYnJlYWs7Cj4+PiAgICAgICBkZWZhdWx0Ogo+Pj4g QEAgLTcxNSw4ICs3NDEsNyBAQCBpbnQgYW1kZ3B1X21vZGVfZHVtYl9jcmVhdGUoc3RydWN0IGRy bV9maWxlCj4+PiAqZmlsZV9wcml2LAo+Pj4gICAgICAgciA9IGFtZGdwdV9nZW1fb2JqZWN0X2Ny ZWF0ZShhZGV2LCBhcmdzLT5zaXplLCAwLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICBBTURH UFVfR0VNX0RPTUFJTl9WUkFNLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICBBTURHUFVfR0VN X0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVELAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgIHR0 bV9ib190eXBlX2RldmljZSwKPj4+IC0gICAgICAgICAgICAgICAgICAgICAmZ29iaik7Cj4+PiAr ICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIE5VTEwsICZnb2JqKTsKPj4+ICAgICAgIGlmIChy KQo+Pj4gICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+Pj4gICBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ByaW1lLmMKPj4+IGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ByaW1lLmMKPj4+IGluZGV4IDViM2Y5MjguLmY0MDc0OTkgMTAw NjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcHJpbWUuYwo+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ByaW1lLmMKPj4+IEBA IC0xMzYsNyArMTM2LDggQEAgc3RydWN0IGRtYV9idWYgKmFtZGdwdV9nZW1fcHJpbWVfZXhwb3J0 KHN0cnVjdAo+Pj4gZHJtX2RldmljZSAqZGV2LAo+Pj4gICB7Cj4+PiAgICAgICBzdHJ1Y3QgYW1k Z3B1X2JvICpibyA9IGdlbV90b19hbWRncHVfYm8oZ29iaik7Cj4+PiAgIC0gICAgaWYgKGFtZGdw dV90dG1fdHRfZ2V0X3VzZXJtbShiby0+dGJvLnR0bSkpCj4+PiArICAgIGlmIChhbWRncHVfdHRt X3R0X2dldF91c2VybW0oYm8tPnRiby50dG0pIHx8Cj4+PiArICAgICAgICBiby0+ZmxhZ3MgJiBB TURHUFVfR0VNX0NSRUFURV9MT0NBTCkKPj4+ICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRVBF Uk0pOwo+Pj4gICAgICAgICByZXR1cm4gZHJtX2dlbV9wcmltZV9leHBvcnQoZGV2LCBnb2JqLCBm bGFncyk7Cj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKPj4+ IGIvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKPj4+IGluZGV4IGQwZWU3MzkuLjA1MjQx YTYgMTAwNjQ0Cj4+PiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaAo+Pj4gKysr IGIvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKPj4+IEBAIC04OSw2ICs4OSw4IEBAIGV4 dGVybiAiQyIgewo+Pj4gICAjZGVmaW5lIEFNREdQVV9HRU1fQ1JFQVRFX1NIQURPVyAgICAgICAg KDEgPDwgNCkKPj4+ICAgLyogRmxhZyB0aGF0IGFsbG9jYXRpbmcgdGhlIEJPIHNob3VsZCB1c2Ug bGluZWFyIFZSQU0gKi8KPj4+ICAgI2RlZmluZSBBTURHUFVfR0VNX0NSRUFURV9WUkFNX0NPTlRJ R1VPVVMgICAgKDEgPDwgNSkKPj4+ICsvKiBGbGFnIHRoYXQgQk8gaXMgbG9jYWwgaW4gdGhlIFZN ICovCj4+PiArI2RlZmluZSBBTURHUFVfR0VNX0NSRUFURV9MT0NBTCAgICAgICAgICAgICgxIDw8 IDYpCj4+PiAgICAgc3RydWN0IGRybV9hbWRncHVfZ2VtX2NyZWF0ZV9pbiAgewo+Pj4gICAgICAg LyoqIHRoZSByZXF1ZXN0ZWQgbWVtb3J5IHNpemUgKi8KPj4KPj4KPj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QK Pj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cj4KPgo+Cj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBhbWQtZ2Z4IG1haWxpbmcgbGlzdAo+ IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vYW1kLWdmeAo=