From mboxrd@z Thu Jan 1 00:00:00 1970 From: zhoucm1 Subject: Re: [PATCH 9/9] drm/amdgpu: WIP add IOCTL interface for per VM BOs Date: Mon, 28 Aug 2017 12:21:48 +0800 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"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: 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: =?UTF-8?Q?Christian_K=c3=b6nig?= , =?UTF-8?B?TWFyZWsgT2zFocOhaw==?= Cc: "Olsak, Marek" , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org CgpPbiAyMDE35bm0MDjmnIgyN+aXpSAxODowMywgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBB bSAyNS4wOC4yMDE3IHVtIDIxOjE5IHNjaHJpZWIgQ2hyaXN0aWFuIEvDtm5pZzoKPj4gQW0gMjUu MDguMjAxNyB1bSAxODoyMiBzY2hyaWViIE1hcmVrIE9sxaHDoWs6Cj4+PiBPbiBGcmksIEF1ZyAy NSwgMjAxNyBhdCAzOjAwIFBNLCBDaHJpc3RpYW4gS8O2bmlnCj4+PiA8ZGVhdGhzaW1wbGVAdm9k YWZvbmUuZGU+IHdyb3RlOgo+Pj4+IEFtIDI1LjA4LjIwMTcgdW0gMTI6MzIgc2NocmllYiB6aG91 Y20xOgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBPbiAyMDE35bm0MDjmnIgyNeaXpSAxNzozOCwgQ2hyaXN0 aWFuIEvDtm5pZyB3cm90ZToKPj4+Pj4+IEZyb206IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlh bi5rb2VuaWdAYW1kLmNvbT4KPj4+Pj4+Cj4+Pj4+PiBBZGQgdGhlIElPQ1RMIGludGVyZmFjZSBz byB0aGF0IGFwcGxpY2F0aW9ucyBjYW4gYWxsb2NhdGUgcGVyIFZNIAo+Pj4+Pj4gQk9zLgo+Pj4+ Pj4KPj4+Pj4+IFN0aWxsIFdJUCBzaW5jZSBub3QgYWxsIGNvcm5lciBjYXNlcyBhcmUgdGVzdGVk IHlldCwgYnV0IHRoaXMgCj4+Pj4+PiByZWR1Y2VzCj4+Pj4+PiBhdmVyYWdlCj4+Pj4+PiBDUyBv dmVyaGVhZCBmb3IgMTBLIEJPcyBmcm9tIDIxbXMgZG93biB0byA0OHVzLgo+Pj4+PiBXb3csIGNo ZWVycywgZXZlbnR1YWxseSB5b3UgZ2V0IHBlciB2bSBibyB0byBzYW1lIHJlc2VydmF0aW9uIHdp dGggCj4+Pj4+IFBEL3B0cywKPj4+Pj4gaW5kZWVkIHNhdmUgYSBsb3Qgb2YgYm8gbGlzdC4KPj4+ Pgo+Pj4+IERvbid0IGNoZWVyIHRvIGxvdWQgeWV0LCB0aGF0IGlzIGEgY29tcGxldGVseSBjb25z dHJ1Y3RlZCB0ZXN0IGNhc2UuCj4+Pj4KPj4+PiBTbyBmYXIgSSB3YXNuJ3QgYWJsZSB0byBhcmNo aXZlIGFueSBpbXByb3ZlbWVudHMgd2l0aCBhbnkgcmVhbCBnYW1lIAo+Pj4+IG9uIHRoaXMKPj4+ PiB3aXRoIE1lc2EuCldpdGggdGhpbmtpbmcgbW9yZSwgdG9vIG1hbnkgQk9zIHNoYXJlIG9uZSBy ZXNlcnZhdGlvbiwgd2hpY2ggY291bGQgCnJlc3VsdCBpbiByZXNlcnZhdGlvbiBsb2NrIG9mdGVu IGlzIGJ1c3ksIGlmIGV2aWN0aW9uIG9yIGRlc3Ryb3kgYWxzbyAKaGFwcGVucyBvZnRlbiBpbiB0 aGUgbWVhbmluZyB0aW1lLCB0aGVuIHdoaWNoIGNvdWxkIGVmZmVjdCBWTSB1cGRhdGUgYW5kIApD UyBzdWJtaXNzaW9uIGFzIHdlbGwuCgpBbnl3YXksIHRoaXMgaXMgdmVyeSBnb29kIHN0YXJ0IGFu ZCB0cnkgdGhhdCB3ZSByZWR1Y2UgQ1Mgb3ZlcmhlYWQsIAplc3BlY2lhbGx5IHdlJ3ZlIHNlZW4g InJlZHVjZXMgYXZlcmFnZSBDUyBvdmVyaGVhZCBmb3IgMTBLIEJPcyBmcm9tIDIxbXMgCmRvd24g dG8gNDh1cy4gIi4KClJlZ2FyZHMsCkRhdmlkIFpob3UKPj4+Pgo+Pj4+IEJUVzogTWFyZWsgY2Fu IHlvdSB0YWtlIGEgbG9vayB3aXRoIHNvbWUgQ1BVIGJvdW5kIHRlc3RzPyBJIGNhbiAKPj4+PiBw cm92aWRlIGEKPj4+PiBrZXJuZWwgYnJhbmNoIGlmIG5lY2Vzc2FyeS4KPj4+IERvIHlvdSBoYXZl IGEgYnJhbmNoIHRoYXQgd29ya3Mgb24gUmF2ZW4/IFRoaXMgcGF0Y2ggc2VyaWVzIGRvZXNuJ3Qs Cj4+PiBhbmQgSSBkaWRuJ3QgaW52ZXN0aWdhdGUgd2h5Lgo+Pgo+PiBJIHdpbGwgY29tZSB1cCB3 aXRoIG9uZSBvbiBNb25kYXkuCj4KPiBCcmFuY2ggdm1faW1wcm92ZW1lbnRzIG9uIAo+IGdpdDov L3Blb3BsZS5mcmVlZGVza3RvcC5vcmcvfmRlYXRoc2ltcGxlL2xpbnV4IHRvZ2V0aGVyIHdpdGgg dGhlIAo+IGF0dGFjaGVkIHBhdGNoIHNob3VsZCB3b3JrLgo+Cj4gT25seSB0ZXN0aW5nIG9uIFRv bmdhLCBidXQgdGhhdCdzIGJhc2VkIG9uIGFtZC1zdGFnaW5nLTQuMTIgYW5kIHNvIAo+IHNob3Vs ZCB3b3JrIG9uIFJhdmVuIGFzIHdlbGwuIElmIG5vdCBJIHN0aWxsIGhhdmUgYSBidWcgc29tZXdo ZXJlIAo+IHdoaWNoIG5lZWRzIHRvIGJlIGZpeGVkLgo+Cj4gVGhhbmtzLAo+IENocmlzdGlhbi4K Pj4KPj4gSGF2ZSBhIG5pY2Ugd2Vla2VuZCBndXlzLAo+PiBDaHJpc3RpYW4uCj4+Cj4+Pgo+Pj4g TWFyZWsKPj4+Cj4+Pj4gUmVnYXJkcywKPj4+PiBDaHJpc3RpYW4uCj4+Pj4KPj4+Pgo+Pj4+PiBv dmVyYWxsIGxvb2tzIGdvb2QsIEkgd2lsbCB0YWtlIGEgZGV0YWlsZWQgY2hlY2sgZm9yIHRoaXMg dG9tb3Jyb3cuCj4+Pj4+Cj4+Pj4+IFJlZ2FyZHMsCj4+Pj4+IERhdmlkIFpob3UKPj4+Pj4+Cj4+ Pj4+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFt ZC5jb20+Cj4+Pj4+PiAtLS0KPj4+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdS5oICAgICAgIHwgIDcgKystLQo+Pj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2ZiLmMgICAgfCAgMiArLQo+Pj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2dlbS5jICAgfCA1OQo+Pj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLQo+Pj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ByaW1l LmMgfCAgMyArLQo+Pj4+Pj4gICAgaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmggICAgICAg ICAgICAgfCAgMiArKwo+Pj4+Pj4gICAgNSBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCsp LCAyMiBkZWxldGlvbnMoLSkKPj4+Pj4+Cj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1LmgKPj4+Pj4+IGluZGV4IGIxZTgxN2MuLjIxY2FiMzYgMTAwNjQ0Cj4+Pj4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+Pj4+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPj4+Pj4+IEBAIC00NTcsOSArNDU3LDEw IEBAIHN0cnVjdCBhbWRncHVfc2FfYm8gewo+Pj4+Pj4gICAgICovCj4+Pj4+PiAgICB2b2lkIGFt ZGdwdV9nZW1fZm9yY2VfcmVsZWFzZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4+Pj4+ PiAgICBpbnQgYW1kZ3B1X2dlbV9vYmplY3RfY3JlYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LCAKPj4+Pj4+IHVuc2lnbmVkIGxvbmcKPj4+Pj4+IHNpemUsCj4+Pj4+PiAtICAgICAgICAg ICAgICAgIGludCBhbGlnbm1lbnQsIHUzMiBpbml0aWFsX2RvbWFpbiwKPj4+Pj4+IC0gICAgICAg ICAgICAgICAgdTY0IGZsYWdzLCBib29sIGtlcm5lbCwKPj4+Pj4+IC0gICAgICAgICAgICAgICAg c3RydWN0IGRybV9nZW1fb2JqZWN0ICoqb2JqKTsKPj4+Pj4+ICsgICAgICAgICAgICAgICAgIGlu dCBhbGlnbm1lbnQsIHUzMiBpbml0aWFsX2RvbWFpbiwKPj4+Pj4+ICsgICAgICAgICAgICAgICAg IHU2NCBmbGFncywgYm9vbCBrZXJuZWwsCj4+Pj4+PiArICAgICAgICAgICAgICAgICBzdHJ1Y3Qg cmVzZXJ2YXRpb25fb2JqZWN0ICpyZXN2LAo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgc3RydWN0 IGRybV9nZW1fb2JqZWN0ICoqb2JqKTsKPj4+Pj4+ICAgICAgaW50IGFtZGdwdV9tb2RlX2R1bWJf Y3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+Pj4+Pj4gICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZiLmMKPj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2ZiLmMKPj4+Pj4+IGluZGV4IDBlOTA3ZWEuLjcyNTZmODMgMTAwNjQ0 Cj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmIuYwo+Pj4+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZiLmMKPj4+Pj4+IEBA IC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIGludCBhbWRncHVmYl9jcmVhdGVfcGlubmVkX29iamVj dChzdHJ1Y3QKPj4+Pj4+IGFtZGdwdV9mYmRldiAqcmZiZGV2LAo+Pj4+Pj4gQU1ER1BVX0dFTV9D UkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCB8Cj4+Pj4+PiBBTURHUFVfR0VNX0NSRUFURV9WUkFN X0NPTlRJR1VPVVMgfAo+Pj4+Pj4gQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DTEVBUkVELAo+Pj4+ Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgJmdvYmopOwo+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAgdHJ1ZSwgTlVMTCwgJmdvYmopOwo+Pj4+Pj4gICAgICAgIGlmIChyZXQp IHsKPj4+Pj4+ICAgICAgICAgICAgcHJfZXJyKCJmYWlsZWQgdG8gYWxsb2NhdGUgZnJhbWVidWZm ZXIgKCVkKVxuIiwgCj4+Pj4+PiBhbGlnbmVkX3NpemUpOwo+Pj4+Pj4gICAgICAgICAgICByZXR1 cm4gLUVOT01FTTsKPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfZ2VtLmMKPj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2dlbS5jCj4+Pj4+PiBpbmRleCBkMDI4ODA2Li5iOGU4ZDY3IDEwMDY0NAo+Pj4+Pj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jCj4+Pj4+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMKPj4+Pj4+IEBAIC00NCwxMSArNDQs MTIgQEAgdm9pZCBhbWRncHVfZ2VtX29iamVjdF9mcmVlKHN0cnVjdCAKPj4+Pj4+IGRybV9nZW1f b2JqZWN0Cj4+Pj4+PiAqZ29iaikKPj4+Pj4+ICAgIH0KPj4+Pj4+ICAgICAgaW50IGFtZGdwdV9n ZW1fb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgCj4+Pj4+PiB1bnNp Z25lZAo+Pj4+Pj4gbG9uZyBzaXplLAo+Pj4+Pj4gLSAgICAgICAgICAgICAgICBpbnQgYWxpZ25t ZW50LCB1MzIgaW5pdGlhbF9kb21haW4sCj4+Pj4+PiAtICAgICAgICAgICAgICAgIHU2NCBmbGFn cywgYm9vbCBrZXJuZWwsCj4+Pj4+PiAtICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fZ2VtX29i amVjdCAqKm9iaikKPj4+Pj4+ICsgICAgICAgICAgICAgICAgIGludCBhbGlnbm1lbnQsIHUzMiBp bml0aWFsX2RvbWFpbiwKPj4+Pj4+ICsgICAgICAgICAgICAgICAgIHU2NCBmbGFncywgYm9vbCBr ZXJuZWwsCj4+Pj4+PiArICAgICAgICAgICAgICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0 ICpyZXN2LAo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICoq b2JqKQo+Pj4+Pj4gICAgewo+Pj4+Pj4gLSAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpyb2JqOwo+Pj4+ Pj4gKyAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibzsKPj4+Pj4+ICAgICAgICBpbnQgcjsKPj4+Pj4+ ICAgICAgICAgICpvYmogPSBOVUxMOwo+Pj4+Pj4gQEAgLTU5LDcgKzYwLDcgQEAgaW50IGFtZGdw dV9nZW1fb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZQo+Pj4+Pj4gKmFkZXYsIHVu c2lnbmVkIGxvbmcgc2l6ZSwKPj4+Pj4+ICAgICAgcmV0cnk6Cj4+Pj4+PiAgICAgICAgciA9IGFt ZGdwdV9ib19jcmVhdGUoYWRldiwgc2l6ZSwgYWxpZ25tZW50LCBrZXJuZWwsIAo+Pj4+Pj4gaW5p dGlhbF9kb21haW4sCj4+Pj4+PiAtICAgICAgICAgICAgICAgICBmbGFncywgTlVMTCwgTlVMTCwg MCwgJnJvYmopOwo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgZmxhZ3MsIE5VTEwsIHJlc3YsIDAs ICZibyk7Cj4+Pj4+PiAgICAgICAgaWYgKHIpIHsKPj4+Pj4+ICAgICAgICAgICAgaWYgKHIgIT0g LUVSRVNUQVJUU1lTKSB7Cj4+Pj4+PiAgICAgICAgICAgICAgICBpZiAoaW5pdGlhbF9kb21haW4g PT0gQU1ER1BVX0dFTV9ET01BSU5fVlJBTSkgewo+Pj4+Pj4gQEAgLTcxLDcgKzcyLDcgQEAgaW50 IGFtZGdwdV9nZW1fb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZQo+Pj4+Pj4gKmFk ZXYsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKPj4+Pj4+ICAgICAgICAgICAgfQo+Pj4+Pj4gICAgICAg ICAgICByZXR1cm4gcjsKPj4+Pj4+ICAgICAgICB9Cj4+Pj4+PiAtICAgICpvYmogPSAmcm9iai0+ Z2VtX2Jhc2U7Cj4+Pj4+PiArICAgICpvYmogPSAmYm8tPmdlbV9iYXNlOwo+Pj4+Pj4gICAgICAg ICAgcmV0dXJuIDA7Cj4+Pj4+PiAgICB9Cj4+Pj4+PiBAQCAtMTM2LDEzICsxMzcsMTQgQEAgdm9p ZCBhbWRncHVfZ2VtX29iamVjdF9jbG9zZShzdHJ1Y3QgCj4+Pj4+PiBkcm1fZ2VtX29iamVjdAo+ Pj4+Pj4gKm9iaiwKPj4+Pj4+ICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSA9ICZmcHJpdi0+ dm07Cj4+Pj4+PiAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvX2xpc3RfZW50cnkgdm1fcGQ7Cj4+ Pj4+PiAtICAgIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKPj4+Pj4+ICsgICAgc3RydWN0IGxpc3Rf aGVhZCBsaXN0LCBkdXBsaWNhdGVzOwo+Pj4+Pj4gICAgICAgIHN0cnVjdCB0dG1fdmFsaWRhdGVf YnVmZmVyIHR2Owo+Pj4+Pj4gICAgICAgIHN0cnVjdCB3d19hY3F1aXJlX2N0eCB0aWNrZXQ7Cj4+ Pj4+PiAgICAgICAgc3RydWN0IGFtZGdwdV9ib192YSAqYm9fdmE7Cj4+Pj4+PiAgICAgICAgaW50 IHI7Cj4+Pj4+PiAgICAgICAgICBJTklUX0xJU1RfSEVBRCgmbGlzdCk7Cj4+Pj4+PiArICAgIElO SVRfTElTVF9IRUFEKCZkdXBsaWNhdGVzKTsKPj4+Pj4+ICAgICAgICAgIHR2LmJvID0gJmJvLT50 Ym87Cj4+Pj4+PiAgICAgICAgdHYuc2hhcmVkID0gdHJ1ZTsKPj4+Pj4+IEBAIC0xNTAsNyArMTUy LDcgQEAgdm9pZCBhbWRncHVfZ2VtX29iamVjdF9jbG9zZShzdHJ1Y3QgCj4+Pj4+PiBkcm1fZ2Vt X29iamVjdAo+Pj4+Pj4gKm9iaiwKPj4+Pj4+ICAgICAgICAgIGFtZGdwdV92bV9nZXRfcGRfYm8o dm0sICZsaXN0LCAmdm1fcGQpOwo+Pj4+Pj4gICAgLSAgICByID0gdHRtX2V1X3Jlc2VydmVfYnVm ZmVycygmdGlja2V0LCAmbGlzdCwgZmFsc2UsIE5VTEwpOwo+Pj4+Pj4gKyAgICByID0gdHRtX2V1 X3Jlc2VydmVfYnVmZmVycygmdGlja2V0LCAmbGlzdCwgZmFsc2UsICZkdXBsaWNhdGVzKTsKPj4+ Pj4+ICAgICAgICBpZiAocikgewo+Pj4+Pj4gICAgICAgICAgICBkZXZfZXJyKGFkZXYtPmRldiwg ImxlYWtpbmcgYm8gdmEgYmVjYXVzZSAiCj4+Pj4+PiAgICAgICAgICAgICAgICAid2UgZmFpbCB0 byByZXNlcnZlIGJvICglZClcbiIsIHIpOwo+Pj4+Pj4gQEAgLTE4NSw5ICsxODcsMTIgQEAgaW50 IGFtZGdwdV9nZW1fY3JlYXRlX2lvY3RsKHN0cnVjdCAKPj4+Pj4+IGRybV9kZXZpY2UgKmRldiwK Pj4+Pj4+IHZvaWQgKmRhdGEsCj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9m aWxlICpmaWxwKQo+Pj4+Pj4gICAgewo+Pj4+Pj4gICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4+Pj4+ICsgICAgc3RydWN0IGFtZGdwdV9mcHJp diAqZnByaXYgPSBmaWxwLT5kcml2ZXJfcHJpdjsKPj4+Pj4+ICsgICAgc3RydWN0IGFtZGdwdV92 bSAqdm0gPSAmZnByaXYtPnZtOwo+Pj4+Pj4gICAgICAgIHVuaW9uIGRybV9hbWRncHVfZ2VtX2Ny ZWF0ZSAqYXJncyA9IGRhdGE7Cj4+Pj4+PiAgICAgICAgdWludDY0X3QgZmxhZ3MgPSBhcmdzLT5p bi5kb21haW5fZmxhZ3M7Cj4+Pj4+PiAgICAgICAgdWludDY0X3Qgc2l6ZSA9IGFyZ3MtPmluLmJv X3NpemU7Cj4+Pj4+PiArICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YgPSBOVUxM Owo+Pj4+Pj4gICAgICAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ29iajsKPj4+Pj4+ICAgICAg ICB1aW50MzJfdCBoYW5kbGU7Cj4+Pj4+PiAgICAgICAgaW50IHI7Cj4+Pj4+PiBAQCAtMTk2LDcg KzIwMSw4IEBAIGludCBhbWRncHVfZ2VtX2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAK Pj4+Pj4+ICpkZXYsCj4+Pj4+PiB2b2lkICpkYXRhLAo+Pj4+Pj4gICAgICAgIGlmIChmbGFncyAm IH4oQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCB8Cj4+Pj4+PiAgICAgICAg ICAgICAgICAgIEFNREdQVV9HRU1fQ1JFQVRFX05PX0NQVV9BQ0NFU1MgfAo+Pj4+Pj4gICAgICAg ICAgICAgICAgICBBTURHUFVfR0VNX0NSRUFURV9DUFVfR1RUX1VTV0MgfAo+Pj4+Pj4gLSAgICAg ICAgICAgICAgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DTEVBUkVEKSkKPj4+Pj4+ICsgICAgICAg ICAgICAgIEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fQ0xFQVJFRCB8Cj4+Pj4+PiArICAgICAgICAg ICAgICBBTURHUFVfR0VNX0NSRUFURV9MT0NBTCkpCj4+Pj4+PiAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOwo+Pj4+Pj4gICAgICAgICAgLyogcmVqZWN0IGludmFsaWQgZ2VtIGRvbWFpbnMgKi8K Pj4+Pj4+IEBAIC0yMjMsOSArMjI5LDI1IEBAIGludCBhbWRncHVfZ2VtX2NyZWF0ZV9pb2N0bChz dHJ1Y3QgCj4+Pj4+PiBkcm1fZGV2aWNlICpkZXYsCj4+Pj4+PiB2b2lkICpkYXRhLAo+Pj4+Pj4g ICAgICAgIH0KPj4+Pj4+ICAgICAgICBzaXplID0gcm91bmR1cChzaXplLCBQQUdFX1NJWkUpOwo+ Pj4+Pj4gICAgKyAgICBpZiAoZmxhZ3MgJiBBTURHUFVfR0VNX0NSRUFURV9MT0NBTCkgewo+Pj4+ Pj4gKyAgICAgICAgciA9IGFtZGdwdV9ib19yZXNlcnZlKHZtLT5yb290LmJhc2UuYm8sIGZhbHNl KTsKPj4+Pj4+ICsgICAgICAgIGlmIChyKQo+Pj4+Pj4gKyAgICAgICAgICAgIHJldHVybiByOwo+ Pj4+Pj4gKwo+Pj4+Pj4gKyAgICAgICAgcmVzdiA9IHZtLT5yb290LmJhc2UuYm8tPnRiby5yZXN2 Owo+Pj4+Pj4gKyAgICB9Cj4+Pj4+PiArCj4+Pj4+PiAgICAgICAgciA9IGFtZGdwdV9nZW1fb2Jq ZWN0X2NyZWF0ZShhZGV2LCBzaXplLCBhcmdzLT5pbi5hbGlnbm1lbnQsCj4+Pj4+PiAgICAgICAg ICAgICAgICAgICAgICAgICAodTMyKSgweGZmZmZmZmZmICYgYXJncy0+aW4uZG9tYWlucyksCj4+ Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgZmxhZ3MsIGZhbHNlLCAmZ29iaik7Cj4+Pj4+PiAr ICAgICAgICAgICAgICAgICAgICAgZmxhZ3MsIGZhbHNlLCByZXN2LCAmZ29iaik7Cj4+Pj4+PiAr ICAgIGlmIChmbGFncyAmIEFNREdQVV9HRU1fQ1JFQVRFX0xPQ0FMKSB7Cj4+Pj4+PiArICAgICAg ICBpZiAoIXIpIHsKPj4+Pj4+ICsgICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICphYm8gPSBn ZW1fdG9fYW1kZ3B1X2JvKGdvYmopOwo+Pj4+Pj4gKwo+Pj4+Pj4gKyAgICAgICAgICAgIGFiby0+ cGFyZW50ID0gYW1kZ3B1X2JvX3JlZih2bS0+cm9vdC5iYXNlLmJvKTsKPj4+Pj4+ICsgICAgICAg IH0KPj4+Pj4+ICsgICAgICAgIGFtZGdwdV9ib191bnJlc2VydmUodm0tPnJvb3QuYmFzZS5ibyk7 Cj4+Pj4+PiArICAgIH0KPj4+Pj4+ICAgICAgICBpZiAocikKPj4+Pj4+ICAgICAgICAgICAgcmV0 dXJuIHI7Cj4+Pj4+PiAgICBAQCAtMjY3LDkgKzI4OSw4IEBAIGludCBhbWRncHVfZ2VtX3VzZXJw dHJfaW9jdGwoc3RydWN0IAo+Pj4+Pj4gZHJtX2RldmljZQo+Pj4+Pj4gKmRldiwgdm9pZCAqZGF0 YSwKPj4+Pj4+ICAgICAgICB9Cj4+Pj4+PiAgICAgICAgICAvKiBjcmVhdGUgYSBnZW0gb2JqZWN0 IHRvIGNvbnRhaW4gdGhpcyBvYmplY3QgaW4gKi8KPj4+Pj4+IC0gICAgciA9IGFtZGdwdV9nZW1f b2JqZWN0X2NyZWF0ZShhZGV2LCBhcmdzLT5zaXplLCAwLAo+Pj4+Pj4gLSAgICAgICAgICAgICAg ICAgICAgIEFNREdQVV9HRU1fRE9NQUlOX0NQVSwgMCwKPj4+Pj4+IC0gICAgICAgICAgICAgICAg ICAgICAwLCAmZ29iaik7Cj4+Pj4+PiArICAgIHIgPSBhbWRncHVfZ2VtX29iamVjdF9jcmVhdGUo YWRldiwgYXJncy0+c2l6ZSwgMCwKPj4+Pj4+IEFNREdQVV9HRU1fRE9NQUlOX0NQVSwKPj4+Pj4+ ICsgICAgICAgICAgICAgICAgICAgICAwLCAwLCBOVUxMLCAmZ29iaik7Cj4+Pj4+PiAgICAgICAg aWYgKHIpCj4+Pj4+PiAgICAgICAgICAgIHJldHVybiByOwo+Pj4+Pj4gICAgQEAgLTUyMSw3ICs1 NDIsNyBAQCBpbnQgYW1kZ3B1X2dlbV92YV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAKPj4+Pj4+ ICpkZXYsCj4+Pj4+PiB2b2lkICpkYXRhLAo+Pj4+Pj4gICAgICAgIHN0cnVjdCBhbWRncHVfYm9f bGlzdF9lbnRyeSB2bV9wZDsKPj4+Pj4+ICAgICAgICBzdHJ1Y3QgdHRtX3ZhbGlkYXRlX2J1ZmZl ciB0djsKPj4+Pj4+ICAgICAgICBzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggdGlja2V0Owo+Pj4+Pj4g LSAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cj4+Pj4+PiArICAgIHN0cnVjdCBsaXN0X2hlYWQg bGlzdCwgZHVwbGljYXRlczsKPj4+Pj4+ICAgICAgICB1aW50NjRfdCB2YV9mbGFnczsKPj4+Pj4+ ICAgICAgICBpbnQgciA9IDA7Cj4+Pj4+PiAgICBAQCAtNTU3LDYgKzU3OCw3IEBAIGludCBhbWRn cHVfZ2VtX3ZhX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlIAo+Pj4+Pj4gKmRldiwKPj4+Pj4+IHZv aWQgKmRhdGEsCj4+Pj4+PiAgICAgICAgfQo+Pj4+Pj4gICAgICAgICAgSU5JVF9MSVNUX0hFQUQo Jmxpc3QpOwo+Pj4+Pj4gKyAgICBJTklUX0xJU1RfSEVBRCgmZHVwbGljYXRlcyk7Cj4+Pj4+PiAg ICAgICAgaWYgKChhcmdzLT5vcGVyYXRpb24gIT0gQU1ER1BVX1ZBX09QX0NMRUFSKSAmJgo+Pj4+ Pj4gICAgICAgICAgICAhKGFyZ3MtPmZsYWdzICYgQU1ER1BVX1ZNX1BBR0VfUFJUKSkgewo+Pj4+ Pj4gICAgICAgICAgICBnb2JqID0gZHJtX2dlbV9vYmplY3RfbG9va3VwKGZpbHAsIGFyZ3MtPmhh bmRsZSk7Cj4+Pj4+PiBAQCAtNTczLDcgKzU5NSw3IEBAIGludCBhbWRncHVfZ2VtX3ZhX2lvY3Rs KHN0cnVjdCBkcm1fZGV2aWNlIAo+Pj4+Pj4gKmRldiwgdm9pZAo+Pj4+Pj4gKmRhdGEsCj4+Pj4+ PiAgICAgICAgICBhbWRncHVfdm1fZ2V0X3BkX2JvKCZmcHJpdi0+dm0sICZsaXN0LCAmdm1fcGQp Owo+Pj4+Pj4gICAgLSAgICByID0gdHRtX2V1X3Jlc2VydmVfYnVmZmVycygmdGlja2V0LCAmbGlz dCwgdHJ1ZSwgTlVMTCk7Cj4+Pj4+PiArICAgIHIgPSB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKCZ0 aWNrZXQsICZsaXN0LCB0cnVlLCAmZHVwbGljYXRlcyk7Cj4+Pj4+PiAgICAgICAgaWYgKHIpCj4+ Pj4+PiAgICAgICAgICAgIGdvdG8gZXJyb3JfdW5yZWY7Cj4+Pj4+PiAgICBAQCAtNjM5LDYgKzY2 MSw3IEBAIGludCBhbWRncHVfZ2VtX3ZhX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlIAo+Pj4+Pj4g KmRldiwKPj4+Pj4+IHZvaWQgKmRhdGEsCj4+Pj4+PiAgICBpbnQgYW1kZ3B1X2dlbV9vcF9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+Pj4+Pj4gICAgICAgICAgICAg ICAgc3RydWN0IGRybV9maWxlICpmaWxwKQo+Pj4+Pj4gICAgewo+Pj4+Pj4gKyAgICBzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+Pj4+PiAgICAgICAgc3Ry dWN0IGRybV9hbWRncHVfZ2VtX29wICphcmdzID0gZGF0YTsKPj4+Pj4+ICAgICAgICBzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3QgKmdvYmo7Cj4+Pj4+PiAgICAgICAgc3RydWN0IGFtZGdwdV9ibyAqcm9i ajsKPj4+Pj4+IEBAIC02ODYsNiArNzA5LDkgQEAgaW50IGFtZGdwdV9nZW1fb3BfaW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgCj4+Pj4+PiAqZGV2LCB2b2lkCj4+Pj4+PiAqZGF0YSwKPj4+Pj4+ICAg ICAgICAgICAgaWYgKHJvYmotPmFsbG93ZWRfZG9tYWlucyA9PSBBTURHUFVfR0VNX0RPTUFJTl9W UkFNKQo+Pj4+Pj4gICAgICAgICAgICAgICAgcm9iai0+YWxsb3dlZF9kb21haW5zIHw9IEFNREdQ VV9HRU1fRE9NQUlOX0dUVDsKPj4+Pj4+ICAgICsgICAgICAgIGlmIChyb2JqLT5mbGFncyAmIEFN REdQVV9HRU1fQ1JFQVRFX0xPQ0FMKQo+Pj4+Pj4gKyAgICAgICAgICAgIGFtZGdwdV92bV9ib19p bnZhbGlkYXRlKGFkZXYsIHJvYmosIHRydWUpOwo+Pj4+Pj4gKwo+Pj4+Pj4gICAgICAgICAgICBh bWRncHVfYm9fdW5yZXNlcnZlKHJvYmopOwo+Pj4+Pj4gICAgICAgICAgICBicmVhazsKPj4+Pj4+ ICAgICAgICBkZWZhdWx0Ogo+Pj4+Pj4gQEAgLTcxNSw4ICs3NDEsNyBAQCBpbnQgYW1kZ3B1X21v ZGVfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlCj4+Pj4+PiAqZmlsZV9wcml2LAo+Pj4+Pj4g ICAgICAgIHIgPSBhbWRncHVfZ2VtX29iamVjdF9jcmVhdGUoYWRldiwgYXJncy0+c2l6ZSwgMCwK Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgIEFNREdQVV9HRU1fRE9NQUlOX1ZSQU0sCj4+ Pj4+PiBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVELAo+Pj4+Pj4gLSAgICAg ICAgICAgICAgICAgICAgIHR0bV9ib190eXBlX2RldmljZSwKPj4+Pj4+IC0gICAgICAgICAgICAg ICAgICAgICAmZ29iaik7Cj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIE5VTEws ICZnb2JqKTsKPj4+Pj4+ICAgICAgICBpZiAocikKPj4+Pj4+ICAgICAgICAgICAgcmV0dXJuIC1F Tk9NRU07Cj4+Pj4+PiAgICBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ByaW1lLmMKPj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3ByaW1lLmMKPj4+Pj4+IGluZGV4IDViM2Y5MjguLmY0MDc0OTkgMTAwNjQ0Cj4+Pj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcHJpbWUuYwo+Pj4+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ByaW1lLmMKPj4+Pj4+IEBAIC0xMzYs NyArMTM2LDggQEAgc3RydWN0IGRtYV9idWYgKmFtZGdwdV9nZW1fcHJpbWVfZXhwb3J0KHN0cnVj dAo+Pj4+Pj4gZHJtX2RldmljZSAqZGV2LAo+Pj4+Pj4gICAgewo+Pj4+Pj4gICAgICAgIHN0cnVj dCBhbWRncHVfYm8gKmJvID0gZ2VtX3RvX2FtZGdwdV9ibyhnb2JqKTsKPj4+Pj4+ICAgIC0gICAg aWYgKGFtZGdwdV90dG1fdHRfZ2V0X3VzZXJtbShiby0+dGJvLnR0bSkpCj4+Pj4+PiArICAgIGlm IChhbWRncHVfdHRtX3R0X2dldF91c2VybW0oYm8tPnRiby50dG0pIHx8Cj4+Pj4+PiArICAgICAg ICBiby0+ZmxhZ3MgJiBBTURHUFVfR0VNX0NSRUFURV9MT0NBTCkKPj4+Pj4+ICAgICAgICAgICAg cmV0dXJuIEVSUl9QVFIoLUVQRVJNKTsKPj4+Pj4+ICAgICAgICAgIHJldHVybiBkcm1fZ2VtX3By aW1lX2V4cG9ydChkZXYsIGdvYmosIGZsYWdzKTsKPj4+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRl L3VhcGkvZHJtL2FtZGdwdV9kcm0uaAo+Pj4+Pj4gYi9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9k cm0uaAo+Pj4+Pj4gaW5kZXggZDBlZTczOS4uMDUyNDFhNiAxMDA2NDQKPj4+Pj4+IC0tLSBhL2lu Y2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oCj4+Pj4+PiArKysgYi9pbmNsdWRlL3VhcGkvZHJt L2FtZGdwdV9kcm0uaAo+Pj4+Pj4gQEAgLTg5LDYgKzg5LDggQEAgZXh0ZXJuICJDIiB7Cj4+Pj4+ PiAgICAjZGVmaW5lIEFNREdQVV9HRU1fQ1JFQVRFX1NIQURPVyAgICAgICAgKDEgPDwgNCkKPj4+ Pj4+ICAgIC8qIEZsYWcgdGhhdCBhbGxvY2F0aW5nIHRoZSBCTyBzaG91bGQgdXNlIGxpbmVhciBW UkFNICovCj4+Pj4+PiAgICAjZGVmaW5lIEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fQ09OVElHVU9V UyAgICAoMSA8PCA1KQo+Pj4+Pj4gKy8qIEZsYWcgdGhhdCBCTyBpcyBsb2NhbCBpbiB0aGUgVk0g Ki8KPj4+Pj4+ICsjZGVmaW5lIEFNREdQVV9HRU1fQ1JFQVRFX0xPQ0FMICAgICAgICAgICAgKDEg PDwgNikKPj4+Pj4+ICAgICAgc3RydWN0IGRybV9hbWRncHVfZ2VtX2NyZWF0ZV9pbiAgewo+Pj4+ Pj4gICAgICAgIC8qKiB0aGUgcmVxdWVzdGVkIG1lbW9yeSBzaXplICovCj4+Pj4+Cj4+Pj4+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4+IGFtZC1n ZnggbWFpbGluZyBsaXN0Cj4+Pj4+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4+ IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo+ Pj4+Cj4+Pj4KPj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+Pj4+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4+Pj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPj4+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2FtZC1nZngKPj4KPj4KPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQt Z2Z4Cg==