From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bas Nieuwenhuizen Subject: Re: [PATCH libdrm] amdgpu: add a faster BO list API Date: Wed, 16 Jan 2019 13:46:06 +0100 Message-ID: References: <20190107193104.4361-1-maraeo@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190107193104.4361-1-maraeo-Re5JQEeQqe8AvxtiuMwx3w@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?B?TWFyZWsgT2zFocOhaw==?= Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org U28gcmFuZG9tIHF1ZXN0aW9uczoKCjEpIEluIHRoaXMgZGlzY3Vzc2lvbiBpdCB3YXMgbWVudGlv bmVkIHRoYXQgc29tZSBWdWxrYW4gZHJpdmVycyBzdGlsbAp1c2UgdGhlIGJvX2xpc3QgaW50ZXJm YWNlLiBJIHRoaW5rIHRoYXQgaW1wbGllcyByYWR2IGFzIEkgdGhpbmsgd2UncmUKc3RpbGwgdXNp bmcgYm9fbGlzdC4gSXMgdGhlcmUgYW55IG90aGVyIEFQSSB3ZSBzaG91bGQgYmUgdXNpbmc/IChB bHNvLAp3aXRoIFZLX0VYVF9kZXNjcmlwdG9yX2luZGV4aW5nIEkgc3VzcGVjdCB3ZSdsbCBiZSBt b3ZpbmcgbW9yZSB0b3dhcmRzCmEgZ2xvYmFsIGJvIGxpc3QgaW5zdGVhZCBvZiBhIGNtZCBidWZm ZXIgb25lLCBhcyB3ZSBjYW5ub3Qga25vdyBhbGwKdGhlIEJPcyByZWZlcmVuY2VkIGFueW1vcmUs IGJ1dCBub3Qgc3VyZSB3aGF0IGVuZCBzdGF0ZSBoZXJlIHdpbGwgYmUpLgoKMikgVGhlIG90aGVy IGFsdGVybmF0aXZlIG1lbnRpb25lZCB3YXMgYWRkaW5nIHRoZSBidWZmZXJzIGRpcmVjdGx5Cmlu dG8gdGhlIHN1Ym1pdCBpb2N0bC4gSXMgdGhpcyB0aGUgZGVzaXJlZCBlbmQgc3RhdGUgKHRob3Vn aCBhcyBhYm92ZQpJJ20gbm90IHN1cmUgaG93IHRoYXQgd29ya3MgZm9yIHZ1bGthbik/IElmIHll cywgd2hhdCBpcyB0aGUgdGltZWxpbmUKZm9yIHRoaXMgdGhhdCB3ZSBuZWVkIHNvbWV0aGluZyBp biB0aGUgaW50ZXJpbT8KCjMpIERpZCB3ZSBtZWFzdXJlIGFueSBwZXJmb3JtYW5jZSBiZW5lZml0 PwoKSW4gZ2VuZXJhbCBJJ2QgbGlrZSB0byB0byBhY2sgdGhlIHJhdyBibyBsaXN0IGNyZWF0aW9u IGZ1bmN0aW9uIGFzCnRoaXMgaW50ZXJmYWNlIHNlZW1zIGVhc2llciB0byB1c2UuIFRoZSB0d28g YXJyYXlzIHRoaW5nIGhhcyBhbHdheXMKYmVlbiBraW5kIG9mIGEgcGFpbiB3aGVuIHdlIHdhbnQg dG8gdXNlIGUuZy4gYnVpbHRpbiBzb3J0IGZ1bmN0aW9ucyB0bwptYWtlIHN1cmUgd2UgaGF2ZSBu byBkdXBsaWNhdGUgQk9zLCBidXQgaGF2ZSBzb21lIGNvbW1lbnRzIGJlbG93LgoKT24gTW9uLCBK YW4gNywgMjAxOSBhdCA4OjMxIFBNIE1hcmVrIE9sxaHDoWsgPG1hcmFlb0BnbWFpbC5jb20+IHdy b3RlOgo+Cj4gRnJvbTogTWFyZWsgT2zFocOhayA8bWFyZWsub2xzYWtAYW1kLmNvbT4KPgo+IC0t LQo+ICBhbWRncHUvYW1kZ3B1LXN5bWJvbC1jaGVjayB8ICAzICsrCj4gIGFtZGdwdS9hbWRncHUu aCAgICAgICAgICAgIHwgNTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0K PiAgYW1kZ3B1L2FtZGdwdV9iby5jICAgICAgICAgfCAzNiArKysrKysrKysrKysrKysrKysrKysr KysKPiAgYW1kZ3B1L2FtZGdwdV9jcy5jICAgICAgICAgfCAyNSArKysrKysrKysrKysrKysrKwo+ ICA0IGZpbGVzIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4KPiBk aWZmIC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdS1zeW1ib2wtY2hlY2sgYi9hbWRncHUvYW1kZ3B1LXN5 bWJvbC1jaGVjawo+IGluZGV4IDZmNWUwZjk1Li45NmE0NGI0MCAxMDA3NTUKPiAtLS0gYS9hbWRn cHUvYW1kZ3B1LXN5bWJvbC1jaGVjawo+ICsrKyBiL2FtZGdwdS9hbWRncHUtc3ltYm9sLWNoZWNr Cj4gQEAgLTEyLDIwICsxMiwyMiBAQCBfZWRhdGEKPiAgX2VuZAo+ICBfZmluaQo+ICBfaW5pdAo+ ICBhbWRncHVfYm9fYWxsb2MKPiAgYW1kZ3B1X2JvX2NwdV9tYXAKPiAgYW1kZ3B1X2JvX2NwdV91 bm1hcAo+ICBhbWRncHVfYm9fZXhwb3J0Cj4gIGFtZGdwdV9ib19mcmVlCj4gIGFtZGdwdV9ib19p bXBvcnQKPiAgYW1kZ3B1X2JvX2luY19yZWYKPiArYW1kZ3B1X2JvX2xpc3RfY3JlYXRlX3Jhdwo+ ICthbWRncHVfYm9fbGlzdF9kZXN0cm95X3Jhdwo+ICBhbWRncHVfYm9fbGlzdF9jcmVhdGUKPiAg YW1kZ3B1X2JvX2xpc3RfZGVzdHJveQo+ICBhbWRncHVfYm9fbGlzdF91cGRhdGUKPiAgYW1kZ3B1 X2JvX3F1ZXJ5X2luZm8KPiAgYW1kZ3B1X2JvX3NldF9tZXRhZGF0YQo+ICBhbWRncHVfYm9fdmFf b3AKPiAgYW1kZ3B1X2JvX3ZhX29wX3Jhdwo+ICBhbWRncHVfYm9fd2FpdF9mb3JfaWRsZQo+ICBh bWRncHVfY3JlYXRlX2JvX2Zyb21fdXNlcl9tZW0KPiAgYW1kZ3B1X2NzX2NodW5rX2ZlbmNlX2lu Zm9fdG9fZGF0YQo+IEBAIC00MCwyMCArNDIsMjEgQEAgYW1kZ3B1X2NzX2Rlc3Ryb3lfc2VtYXBo b3JlCj4gIGFtZGdwdV9jc19kZXN0cm95X3N5bmNvYmoKPiAgYW1kZ3B1X2NzX2V4cG9ydF9zeW5j b2JqCj4gIGFtZGdwdV9jc19mZW5jZV90b19oYW5kbGUKPiAgYW1kZ3B1X2NzX2ltcG9ydF9zeW5j b2JqCj4gIGFtZGdwdV9jc19xdWVyeV9mZW5jZV9zdGF0dXMKPiAgYW1kZ3B1X2NzX3F1ZXJ5X3Jl c2V0X3N0YXRlCj4gIGFtZGdwdV9xdWVyeV9zd19pbmZvCj4gIGFtZGdwdV9jc19zaWduYWxfc2Vt YXBob3JlCj4gIGFtZGdwdV9jc19zdWJtaXQKPiAgYW1kZ3B1X2NzX3N1Ym1pdF9yYXcKPiArYW1k Z3B1X2NzX3N1Ym1pdF9yYXcyCj4gIGFtZGdwdV9jc19zeW5jb2JqX2V4cG9ydF9zeW5jX2ZpbGUK PiAgYW1kZ3B1X2NzX3N5bmNvYmpfaW1wb3J0X3N5bmNfZmlsZQo+ICBhbWRncHVfY3Nfc3luY29i al9yZXNldAo+ICBhbWRncHVfY3Nfc3luY29ial9zaWduYWwKPiAgYW1kZ3B1X2NzX3N5bmNvYmpf d2FpdAo+ICBhbWRncHVfY3Nfd2FpdF9mZW5jZXMKPiAgYW1kZ3B1X2NzX3dhaXRfc2VtYXBob3Jl Cj4gIGFtZGdwdV9kZXZpY2VfZGVpbml0aWFsaXplCj4gIGFtZGdwdV9kZXZpY2VfaW5pdGlhbGl6 ZQo+ICBhbWRncHVfZmluZF9ib19ieV9jcHVfbWFwcGluZwo+IGRpZmYgLS1naXQgYS9hbWRncHUv YW1kZ3B1LmggYi9hbWRncHUvYW1kZ3B1LmgKPiBpbmRleCBkYzUxNjU5YS4uNWI4MDAwMzMgMTAw NjQ0Cj4gLS0tIGEvYW1kZ3B1L2FtZGdwdS5oCj4gKysrIGIvYW1kZ3B1L2FtZGdwdS5oCj4gQEAg LTM1LDIwICszNSwyMSBAQAo+ICAjZGVmaW5lIF9BTURHUFVfSF8KPgo+ICAjaW5jbHVkZSA8c3Rk aW50Lmg+Cj4gICNpbmNsdWRlIDxzdGRib29sLmg+Cj4KPiAgI2lmZGVmIF9fY3BsdXNwbHVzCj4g IGV4dGVybiAiQyIgewo+ICAjZW5kaWYKPgo+ICBzdHJ1Y3QgZHJtX2FtZGdwdV9pbmZvX2h3X2lw Owo+ICtzdHJ1Y3QgZHJtX2FtZGdwdV9ib19saXN0X2VudHJ5Owo+Cj4gIC8qLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0qLwo+ICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGVmaW5lcyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KPiAgLyotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSov Cj4KPiAgLyoqCj4gICAqIERlZmluZSBtYXguIG51bWJlciBvZiBDb21tYW5kIEJ1ZmZlcnMgKElC KSB3aGljaCBjb3VsZCBiZSBzZW50IHRvIHRoZSBzaW5nbGUKPiAgICogaGFyZHdhcmUgSVAgdG8g YWNjb21tb2RhdGUgQ0UvREUgcmVxdWlyZW1lbnRzCj4gICAqCj4gICAqIFxzYSBhbWRncHVfY3Nf aWJfaW5mbwo+IEBAIC03NjcsMzQgKzc2OCw2NSBAQCBpbnQgYW1kZ3B1X2JvX2NwdV91bm1hcChh bWRncHVfYm9faGFuZGxlIGJ1Zl9oYW5kbGUpOwo+ICAgKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhbmQgbm8gR1BVIGFjY2VzcyBpcyBzY2hlZHVsZWQuCj4gICAqICAgICAgICAgICAgICAg ICAgICAgICAgICAxIEdQVSBhY2Nlc3MgaXMgaW4gZmx5IG9yIHNjaGVkdWxlZAo+ICAgKgo+ICAg KiBccmV0dXJuICAgMCAtIG9uIHN1Y2Nlc3MKPiAgICogICAgICAgICAgPDAgLSBOZWdhdGl2ZSBQ T1NJWCBFcnJvciBjb2RlCj4gICAqLwo+ICBpbnQgYW1kZ3B1X2JvX3dhaXRfZm9yX2lkbGUoYW1k Z3B1X2JvX2hhbmRsZSBidWZfaGFuZGxlLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50NjRfdCB0aW1lb3V0X25zLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sICpi dWZmZXJfYnVzeSk7Cj4KPiArLyoqCj4gKyAqIENyZWF0ZXMgYSBCTyBsaXN0IGhhbmRsZSBmb3Ig Y29tbWFuZCBzdWJtaXNzaW9uLgo+ICsgKgo+ICsgKiBccGFyYW0gICBkZXYgICAgICAgICAgICAg ICAgICAgICAgICAtIFxjIFtpbl0gRGV2aWNlIGhhbmRsZS4KPiArICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNlZSAjYW1kZ3B1X2RldmljZV9pbml0aWFsaXplKCkKPiArICogXHBh cmFtICAgbnVtYmVyX29mX2J1ZmZlcnMgIC0gXGMgW2luXSBOdW1iZXIgb2YgQk9zIGluIHRoZSBs aXN0Cj4gKyAqIFxwYXJhbSAgIGJ1ZmZlcnMgICAgICAgICAgICAtIFxjIFtpbl0gTGlzdCBvZiBC TyBoYW5kbGVzCj4gKyAqIFxwYXJhbSAgIHJlc3VsdCAgICAgICAgICAgICAtIFxjIFtvdXRdIENy ZWF0ZWQgQk8gbGlzdCBoYW5kbGUKPiArICoKPiArICogXHJldHVybiAgIDAgb24gc3VjY2Vzc1xu Cj4gKyAqICAgICAgICAgIDwwIC0gTmVnYXRpdmUgUE9TSVggRXJyb3IgY29kZQo+ICsgKgo+ICsg KiBcc2EgYW1kZ3B1X2JvX2xpc3RfZGVzdHJveV9yYXcoKQo+ICsqLwo+ICtpbnQgYW1kZ3B1X2Jv X2xpc3RfY3JlYXRlX3JhdyhhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDMyX3QgbnVtYmVyX29mX2J1ZmZlcnMsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9hbWRncHVfYm9fbGlzdF9lbnRyeSAqYnVm ZmVycywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqcmVzdWx0KTsK ClNvIEFGQUlVICBkcm1fYW1kZ3B1X2JvX2xpc3RfZW50cnkgdGFrZXMgYSByYXcgYm8gaGFuZGxl IHdoaWxlIHdlCm5ldmVyIGdldCBhIHJhdyBibyBoYW5kbGUgZnJvbSBsaWJkcm1fYW1kZ3B1LiBI b3cgYXJlIHdlIHN1cHBvc2VkIHRvCmZpbGwgaXQgaW4/CgpXaGF0IGRvIHdlIHdpbiBieSBoYXZp bmcgdGhlIHJhdyBoYW5kbGUgZm9yIHRoZSBib19saXN0PyBJZiB3ZSB3b3VsZApub3QgcmV0dXJu IHRoZSByYXcgaGFuZGxlIHdlIHdvdWxkIG5vdCBuZWVkIHRoZSBzdWJtaXRfcmF3Mi4KCj4gKwo+ ICsvKioKPiArICogRGVzdHJveXMgYSBCTyBsaXN0IGhhbmRsZS4KPiArICoKPiArICogXHBhcmFt ICAgYm9fbGlzdCAgICAtIFxjIFtpbl0gQk8gbGlzdCBoYW5kbGUuCj4gKyAqCj4gKyAqIFxyZXR1 cm4gICAwIG9uIHN1Y2Nlc3Ncbgo+ICsgKiAgICAgICAgICA8MCAtIE5lZ2F0aXZlIFBPU0lYIEVy cm9yIGNvZGUKPiArICoKPiArICogXHNhIGFtZGdwdV9ib19saXN0X2NyZWF0ZV9yYXcoKSwgYW1k Z3B1X2NzX3N1Ym1pdF9yYXcyKCkKPiArKi8KPiAraW50IGFtZGdwdV9ib19saXN0X2Rlc3Ryb3lf cmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwgdWludDMyX3QgYm9fbGlzdCk7Cj4gKwo+ICAv KioKPiAgICogQ3JlYXRlcyBhIEJPIGxpc3QgaGFuZGxlIGZvciBjb21tYW5kIHN1Ym1pc3Npb24u Cj4gICAqCj4gICAqIFxwYXJhbSAgIGRldiAgICAgICAgICAgICAgICAgICAgICAgIC0gXGMgW2lu XSBEZXZpY2UgaGFuZGxlLgo+ICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2Vl ICNhbWRncHVfZGV2aWNlX2luaXRpYWxpemUoKQo+ICAgKiBccGFyYW0gICBudW1iZXJfb2ZfcmVz b3VyY2VzICAgICAgICAtIFxjIFtpbl0gTnVtYmVyIG9mIEJPcyBpbiB0aGUgbGlzdAo+ICAgKiBc cGFyYW0gICByZXNvdXJjZXMgICAgICAgICAgLSBcYyBbaW5dIExpc3Qgb2YgQk8gaGFuZGxlcwo+ ICAgKiBccGFyYW0gICByZXNvdXJjZV9wcmlvcyAgICAgLSBcYyBbaW5dIE9wdGlvbmFsIHByaW9y aXR5IGZvciBlYWNoIGhhbmRsZQo+ICAgKiBccGFyYW0gICByZXN1bHQgICAgICAgICAgICAgLSBc YyBbb3V0XSBDcmVhdGVkIEJPIGxpc3QgaGFuZGxlCj4gICAqCj4gICAqIFxyZXR1cm4gICAwIG9u IHN1Y2Nlc3Ncbgo+ICAgKiAgICAgICAgICA8MCAtIE5lZ2F0aXZlIFBPU0lYIEVycm9yIGNvZGUK PiAgICoKPiAtICogXHNhIGFtZGdwdV9ib19saXN0X2Rlc3Ryb3koKQo+ICsgKiBcc2EgYW1kZ3B1 X2JvX2xpc3RfZGVzdHJveSgpLCBhbWRncHVfY3Nfc3VibWl0X3JhdzIoKQo+ICAqLwo+ICBpbnQg YW1kZ3B1X2JvX2xpc3RfY3JlYXRlKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG51bWJlcl9vZl9yZXNvdXJjZXMsCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICBhbWRncHVfYm9faGFuZGxlICpyZXNvdXJjZXMsCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpyZXNvdXJjZV9wcmlvcywKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFtZGdwdV9ib19saXN0X2hhbmRsZSAqcmVzdWx0KTsKPgo+ICAvKioK PiAgICogRGVzdHJveXMgYSBCTyBsaXN0IGhhbmRsZS4KPiAgICoKPiBAQCAtMTU4MCwyMCArMTYx Miw0MiBAQCBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVuazsKPiAgc3RydWN0IGRybV9hbWRncHVf Y3NfY2h1bmtfZGVwOwo+ICBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19kYXRhOwo+Cj4gIGlu dCBhbWRncHVfY3Nfc3VibWl0X3JhdyhhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4gICAgICAg ICAgICAgICAgICAgICAgICAgIGFtZGdwdV9jb250ZXh0X2hhbmRsZSBjb250ZXh0LAo+ICAgICAg ICAgICAgICAgICAgICAgICAgICBhbWRncHVfYm9fbGlzdF9oYW5kbGUgYm9fbGlzdF9oYW5kbGUs Cj4gICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1fY2h1bmtzLAo+ICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVuayAqY2h1bmtzLAo+ICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqc2VxX25vKTsKPgo+ICsvKioKPiArICogU3Vi bWl0IHJhdyBjb21tYW5kIHN1Ym1pc3Npb24gdG8gdGhlIGtlcm5lbCB3aXRoIGEgcmF3IEJPIGxp c3QgaGFuZGxlLgo+ICsgKgo+ICsgKiBccGFyYW0gICBkZXYgICAgICAgICAgICAgICAtIFxjIFtp bl0gZGV2aWNlIGhhbmRsZQo+ICsgKiBccGFyYW0gICBjb250ZXh0ICAgIC0gXGMgW2luXSBjb250 ZXh0IGhhbmRsZSBmb3IgY29udGV4dCBpZAo+ICsgKiBccGFyYW0gICBib19saXN0X2hhbmRsZSAt IFxjIFtpbl0gcmF3IGJvIGxpc3QgaGFuZGxlICgwIGZvciBub25lKQo+ICsgKiBccGFyYW0gICBu dW1fY2h1bmtzIC0gXGMgW2luXSBudW1iZXIgb2YgQ1MgY2h1bmtzIHRvIHN1Ym1pdAo+ICsgKiBc cGFyYW0gICBjaHVua3MgICAgIC0gXGMgW2luXSBhcnJheSBvZiBDUyBjaHVua3MKPiArICogXHBh cmFtICAgc2VxX25vICAgICAtIFxjIFtvdXRdIG91dHB1dCBzZXF1ZW5jZSBudW1iZXIgZm9yIHN1 Ym1pc3Npb24uCj4gKyAqCj4gKyAqIFxyZXR1cm4gICAwIG9uIHN1Y2Nlc3Ncbgo+ICsgKiAgICAg ICAgICA8MCAtIE5lZ2F0aXZlIFBPU0lYIEVycm9yIGNvZGUKPiArICoKPiArICogXHNhIGFtZGdw dV9ib19saXN0X2NyZWF0ZV9yYXcoKSwgYW1kZ3B1X2JvX2xpc3RfZGVzdHJveV9yYXcoKQo+ICsg Ki8KPiAraW50IGFtZGdwdV9jc19zdWJtaXRfcmF3MihhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYs Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBhbWRncHVfY29udGV4dF9oYW5kbGUgY29udGV4 dCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGJvX2xpc3RfaGFuZGxlLAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bV9jaHVua3MsCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVuayAqY2h1bmtzLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgKnNlcV9ubyk7Cj4gKwo+ICB2b2lkIGFtZGdw dV9jc19jaHVua19mZW5jZV90b19kZXAoc3RydWN0IGFtZGdwdV9jc19mZW5jZSAqZmVuY2UsCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2No dW5rX2RlcCAqZGVwKTsKPiAgdm9pZCBhbWRncHVfY3NfY2h1bmtfZmVuY2VfaW5mb190b19kYXRh KHN0cnVjdCBhbWRncHVfY3NfZmVuY2VfaW5mbyAqZmVuY2VfaW5mbywKPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfZGF0 YSAqZGF0YSk7Cj4KPiAgLyoqCj4gICAqIFJlc2VydmUgVk1JRAo+ICAgKiBccGFyYW0gICBjb250 ZXh0IC0gXGMgW2luXSAgR1BVIENvbnRleHQKPiAgICogXHBhcmFtICAgZmxhZ3MgLSBcYyBbaW5d ICBUQkQKPiAgICoKPiBkaWZmIC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdV9iby5jIGIvYW1kZ3B1L2Ft ZGdwdV9iby5jCj4gaW5kZXggYzBmNDJlODEuLjIxYmM3M2FhIDEwMDY0NAo+IC0tLSBhL2FtZGdw dS9hbWRncHVfYm8uYwo+ICsrKyBiL2FtZGdwdS9hbWRncHVfYm8uYwo+IEBAIC02MTEsMjAgKzYx MSw1NiBAQCBkcm1fcHVibGljIGludCBhbWRncHVfY3JlYXRlX2JvX2Zyb21fdXNlcl9tZW0oYW1k Z3B1X2RldmljZV9oYW5kbGUgZGV2LAo+ICAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZkZXYt PmJvX3RhYmxlX211dGV4KTsKPiAgICAgICAgIHIgPSBoYW5kbGVfdGFibGVfaW5zZXJ0KCZkZXYt PmJvX2hhbmRsZXMsICgqYnVmX2hhbmRsZSktPmhhbmRsZSwKPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICpidWZfaGFuZGxlKTsKPiAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2Nr KCZkZXYtPmJvX3RhYmxlX211dGV4KTsKPiAgICAgICAgIGlmIChyKQo+ICAgICAgICAgICAgICAg ICBhbWRncHVfYm9fZnJlZSgqYnVmX2hhbmRsZSk7Cj4gIG91dDoKPiAgICAgICAgIHJldHVybiBy Owo+ICB9Cj4KPiArZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2JvX2xpc3RfY3JlYXRlX3JhdyhhbWRn cHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50MzJfdCBudW1iZXJfb2ZfYnVmZmVycywKPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYW1kZ3B1X2JvX2xpc3RfZW50cnkgKmJ1 ZmZlcnMsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCAqcmVzdWx0KQo+ICt7Cj4gKyAgICAgICB1bmlvbiBkcm1fYW1kZ3B1X2JvX2xpc3QgYXJnczsK PiArICAgICAgIGludCByOwo+ICsKPiArICAgICAgIG1lbXNldCgmYXJncywgMCwgc2l6ZW9mKGFy Z3MpKTsKPiArICAgICAgIGFyZ3MuaW4ub3BlcmF0aW9uID0gQU1ER1BVX0JPX0xJU1RfT1BfQ1JF QVRFOwo+ICsgICAgICAgYXJncy5pbi5ib19udW1iZXIgPSBudW1iZXJfb2ZfYnVmZmVyczsKPiAr ICAgICAgIGFyZ3MuaW4uYm9faW5mb19zaXplID0gc2l6ZW9mKHN0cnVjdCBkcm1fYW1kZ3B1X2Jv X2xpc3RfZW50cnkpOwo+ICsgICAgICAgYXJncy5pbi5ib19pbmZvX3B0ciA9ICh1aW50NjRfdCko dWludHB0cl90KWJ1ZmZlcnM7Cj4gKwo+ICsgICAgICAgciA9IGRybUNvbW1hbmRXcml0ZVJlYWQo ZGV2LT5mZCwgRFJNX0FNREdQVV9CT19MSVNULAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmFyZ3MsIHNpemVvZihhcmdzKSk7Cj4gKyAgICAgICBpZiAocikKPiArICAgICAgICAg ICAgICAgcmV0dXJuIHI7Cj4gKwo+ICsgICAgICAgKnJlc3VsdCA9IGFyZ3Mub3V0Lmxpc3RfaGFu ZGxlOwo+ICsgICAgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK2RybV9wdWJsaWMgaW50IGFtZGdw dV9ib19saXN0X2Rlc3Ryb3lfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBib19saXN0KQo+ICt7 Cj4gKyAgICAgICB1bmlvbiBkcm1fYW1kZ3B1X2JvX2xpc3QgYXJnczsKPiArCj4gKyAgICAgICBt ZW1zZXQoJmFyZ3MsIDAsIHNpemVvZihhcmdzKSk7Cj4gKyAgICAgICBhcmdzLmluLm9wZXJhdGlv biA9IEFNREdQVV9CT19MSVNUX09QX0RFU1RST1k7Cj4gKyAgICAgICBhcmdzLmluLmxpc3RfaGFu ZGxlID0gYm9fbGlzdDsKPiArCj4gKyAgICAgICByZXR1cm4gZHJtQ29tbWFuZFdyaXRlUmVhZChk ZXYtPmZkLCBEUk1fQU1ER1BVX0JPX0xJU1QsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmYXJncywgc2l6ZW9mKGFyZ3MpKTsKPiArfQo+ICsKPiAgZHJtX3B1YmxpYyBpbnQg YW1kZ3B1X2JvX2xpc3RfY3JlYXRlKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbnVtYmVyX29mX3Jlc291cmNl cywKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2JvX2hhbmRs ZSAqcmVzb3VyY2VzLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 OF90ICpyZXNvdXJjZV9wcmlvcywKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYW1kZ3B1X2JvX2xpc3RfaGFuZGxlICpyZXN1bHQpCj4gIHsKPiAgICAgICAgIHN0cnVjdCBk cm1fYW1kZ3B1X2JvX2xpc3RfZW50cnkgKmxpc3Q7Cj4gICAgICAgICB1bmlvbiBkcm1fYW1kZ3B1 X2JvX2xpc3QgYXJnczsKPiAgICAgICAgIHVuc2lnbmVkIGk7Cj4gICAgICAgICBpbnQgcjsKPiBk aWZmIC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdV9jcy5jIGIvYW1kZ3B1L2FtZGdwdV9jcy5jCj4gaW5k ZXggM2I4MjMxYWEuLjViZWRmNzQ4IDEwMDY0NAo+IC0tLSBhL2FtZGdwdS9hbWRncHVfY3MuYwo+ ICsrKyBiL2FtZGdwdS9hbWRncHVfY3MuYwo+IEBAIC03MjQsMjAgKzcyNCw0NSBAQCBkcm1fcHVi bGljIGludCBhbWRncHVfY3Nfc3VibWl0X3JhdyhhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4g ICAgICAgICByID0gZHJtQ29tbWFuZFdyaXRlUmVhZChkZXYtPmZkLCBEUk1fQU1ER1BVX0NTLAo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNzLCBzaXplb2YoY3MpKTsKPiAgICAg ICAgIGlmIChyKQo+ICAgICAgICAgICAgICAgICByZXR1cm4gcjsKPgo+ICAgICAgICAgaWYgKHNl cV9ubykKPiAgICAgICAgICAgICAgICAgKnNlcV9ubyA9IGNzLm91dC5oYW5kbGU7Cj4gICAgICAg ICByZXR1cm4gMDsKPiAgfQo+Cj4gK2RybV9wdWJsaWMgaW50IGFtZGdwdV9jc19zdWJtaXRfcmF3 MihhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFtZGdwdV9jb250ZXh0X2hhbmRsZSBjb250ZXh0LAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBib19saXN0X2hhbmRsZSwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bV9jaHVua3MsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rICpj aHVua3MsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90ICpz ZXFfbm8pCj4gK3sKPiArICAgICAgIHVuaW9uIGRybV9hbWRncHVfY3MgY3MgPSB7MH07Cj4gKyAg ICAgICB1aW50NjRfdCAqY2h1bmtfYXJyYXk7Cj4gKyAgICAgICBpbnQgaSwgcjsKPiArCj4gKyAg ICAgICBjaHVua19hcnJheSA9IGFsbG9jYShzaXplb2YodWludDY0X3QpICogbnVtX2NodW5rcyk7 Cj4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX2NodW5rczsgaSsrKQo+ICsgICAgICAgICAg ICAgICBjaHVua19hcnJheVtpXSA9ICh1aW50NjRfdCkodWludHB0cl90KSZjaHVua3NbaV07Cj4g KyAgICAgICBjcy5pbi5jaHVua3MgPSAodWludDY0X3QpKHVpbnRwdHJfdCljaHVua19hcnJheTsK PiArICAgICAgIGNzLmluLmN0eF9pZCA9IGNvbnRleHQtPmlkOwo+ICsgICAgICAgY3MuaW4uYm9f bGlzdF9oYW5kbGUgPSBib19saXN0X2hhbmRsZTsKPiArICAgICAgIGNzLmluLm51bV9jaHVua3Mg PSBudW1fY2h1bmtzOwo+ICsgICAgICAgciA9IGRybUNvbW1hbmRXcml0ZVJlYWQoZGV2LT5mZCwg RFJNX0FNREdQVV9DUywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjcywgc2l6 ZW9mKGNzKSk7Cj4gKyAgICAgICBpZiAoIXIgJiYgc2VxX25vKQo+ICsgICAgICAgICAgICAgICAq c2VxX25vID0gY3Mub3V0LmhhbmRsZTsKPiArICAgICAgIHJldHVybiByOwo+ICt9Cj4gKwo+ICBk cm1fcHVibGljIHZvaWQgYW1kZ3B1X2NzX2NodW5rX2ZlbmNlX2luZm9fdG9fZGF0YShzdHJ1Y3Qg YW1kZ3B1X2NzX2ZlbmNlX2luZm8gKmZlbmNlX2luZm8sCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX2RhdGEgKmRhdGEp Cj4gIHsKPiAgICAgICAgIGRhdGEtPmZlbmNlX2RhdGEuaGFuZGxlID0gZmVuY2VfaW5mby0+aGFu ZGxlLT5oYW5kbGU7Cj4gICAgICAgICBkYXRhLT5mZW5jZV9kYXRhLm9mZnNldCA9IGZlbmNlX2lu Zm8tPm9mZnNldCAqIHNpemVvZih1aW50NjRfdCk7Cj4gIH0KPgo+ICBkcm1fcHVibGljIHZvaWQg YW1kZ3B1X2NzX2NodW5rX2ZlbmNlX3RvX2RlcChzdHJ1Y3QgYW1kZ3B1X2NzX2ZlbmNlICpmZW5j ZSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9h bWRncHVfY3NfY2h1bmtfZGVwICpkZXApCj4gIHsKPiAtLQo+IDIuMTcuMQo+Cj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBhbWQtZ2Z4IG1haWxpbmcg bGlzdAo+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vYW1kLWdmeAo=