From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leo Subject: Re: [PATCH] amdgpu/dc: Use DRM new-style object iterators. Date: Thu, 12 Oct 2017 09:55:54 -0400 Message-ID: References: <1507731880-5843-1-git-send-email-sunpeng.li@amd.com> <7dbcabe8-d3de-7cfa-1e4d-b61be746f0cd@linux.intel.com> <2b80ac05-111f-02c7-067a-50b73c5cf3c1@linux.intel.com> <7dca3262-5210-67f9-8e68-2f229ef4df51@amd.com> 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-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maarten Lankhorst , Harry Wentland , airlied@gmail.com, amd-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org CgpPbiAyMDE3LTEwLTEyIDAyOjAwIEFNLCBNYWFydGVuIExhbmtob3JzdCB3cm90ZToKPiBPcCAx MS0xMC0xNyBvbSAyMjo0MCBzY2hyZWVmIEhhcnJ5IFdlbnRsYW5kOgo+PiBPbiAyMDE3LTEwLTEx IDAzOjQ2IFBNLCBNYWFydGVuIExhbmtob3JzdCB3cm90ZToKPj4+IE9wIDExLTEwLTE3IG9tIDIw OjU1IHNjaHJlZWYgTGVvOgo+Pj4+Cj4+Pj4gT24gMjAxNy0xMC0xMSAxMDozMCBBTSwgTWFhcnRl biBMYW5raG9yc3Qgd3JvdGU6Cj4+Pj4+IE9wIDExLTEwLTE3IG9tIDE2OjI0IHNjaHJlZWYgc3Vu cGVuZy5saUBhbWQuY29tOgo+Pj4+Pj4gRnJvbTogIkxlbyAoU3VucGVuZykgTGkiIDxzdW5wZW5n LmxpQGFtZC5jb20+Cj4+Pj4+Pgo+Pj4+Pj4gVXNlIHRoZSBjb3JyZWN0IGZvcl9lYWNoX25ldy9v bGRfKiBpdGVyYXRvcnMgaW5zdGVhZCBvZiBmb3JfZWFjaF8qCj4+Pj4+Pgo+Pj4+Pj4gTGlzdCBv ZiBhZmZlY3RlZCBmdW5jdGlvbnM6Cj4+Pj4+Pgo+Pj4+Pj4gYW1kZ3B1X2RtX2ZpbmRfZmlyc3Rf Y3J0Y19tYXRjaGluZ19jb25uZWN0b3I6IHVzZSBmb3JfZWFjaF9uZXcKPj4+Pj4+ICAgICAgIC0g T2xkIGZyb21fc3RhdGVfdmFyIGZsYWcgd2FzIGFsd2F5cyBjaG9vc2luZyB0aGUgbmV3IHN0YXRl Cj4+Pj4+Pgo+Pj4+Pj4gYW1kZ3B1X2RtX2Rpc3BsYXlfcmVzdW1lOiB1c2UgZm9yX2VhY2hfbmV3 Cj4+Pj4+PiAgICAgICAtIGRybV9hdG9taWNfaGVscGVyX2R1cGxpY2F0ZV9zdGF0ZSBpcyBjYWxs ZWQgZHVyaW5nIHN1c3BlbmQgdG8KPj4+Pj4+ICAgICAgICAgY2FjaGUgdGhlIHN0YXRlCj4+Pj4+ PiAgICAgICAtIEl0IHNldHMgJ3N0YXRlJyB3aXRoaW4gdGhlIHN0YXRlIHRyaXBsZXQgdG8gJ25l d19zdGF0ZScKPj4+Pj4+Cj4+Pj4+PiBhbWRncHVfZG1fY29tbWl0X3BsYW5lczogdXNlIGZvcl9l YWNoX29sZAo+Pj4+Pj4gICAgICAgLSBDYWxsZWQgYWZ0ZXIgdGhlIHN0YXRlIHdhcyBzd2FwcGVk ICh2aWEgYXRvbWljIGNvbW1pdCB0YWlsKQo+Pj4+Pj4KPj4+Pj4+IGFtZGdwdV9kbV9hdG9taWNf Y29tbWl0OiB1c2UgZm9yX2VhY2hfbmV3Cj4+Pj4+PiAgICAgICAtIENhbGxlZCBiZWZvcmUgdGhl IHN0YXRlIGlzIHN3YXBwZWQKPj4+Pj4+Cj4+Pj4+PiBhbWRncHVfZG1fYXRvbWljX2NvbW1pdF90 YWlsOiB1c2UgZm9yX2VhY2hfb2xkCj4+Pj4+PiAgICAgICAtIENhbGxlZCBhZnRlciB0aGUgc3Rh dGUgd2FzIHN3YXBwZWQKPj4+Pj4+Cj4+Pj4+PiBkbV91cGRhdGVfY3J0Y3Nfc3RhdGU6IHVzZSBm b3JfZWFjaF9uZXcKPj4+Pj4+ICAgICAgIC0gQ2FsbGVkIGJlZm9yZSB0aGUgc3RhdGUgaXMgc3dh cHBlZCAodmlhIGF0b21pYyBjaGVjaykKPj4+Pj4+Cj4+Pj4+PiBhbWRncHVfZG1fYXRvbWljX2No ZWNrOiB1c2UgZm9yX2VhY2hfbmV3Cj4+Pj4+PiAgICAgICAtIENhbGxlZCBiZWZvcmUgdGhlIHN0 YXRlIGlzIHN3YXBwZWQKPj4+Pj4+Cj4+Pj4+PiBBbHNvIGZpeCBzb21lIHR5cG9zLgo+Pj4+Pj4K Pj4+Pj4+IGNyY3QgLT4gY3J0Ywo+Pj4+Pj4gdW5kZXJzYWNuIC0+IHVuZGVyc2Nhbgo+Pj4+Pj4K Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IExlbyAoU3VucGVuZykgTGkgPHN1bnBlbmcubGlAYW1kLmNv bT4KPj4+Pj4+IC0tLQo+Pj4+Pj4KPj4+Pj4+IEhpIERhdmUsCj4+Pj4+Pgo+Pj4+Pj4gVGhpcyBw YXRjaCBnb2VzIG9uIHRvcCBvZiB5b3VyIGZpeHVwIGZvciBuZXcgYXBpJ3MgcGF0Y2guIFBsZWFz ZSBmZWVsCj4+Pj4+PiBmcmVlIHRvIHNxdWFzaCB0aGVtLgo+Pj4+Pj4KPj4+Pj4+IFRoYW5rcywK Pj4+Pj4+IExlbwo+Pj4+Pj4KPj4+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9h bWRncHVfZG0vYW1kZ3B1X2RtLmMgfCAzOCArKysrKysrKystLS0tLS0tLS0tLS0tLQo+Pj4+Pj4g ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uaCB8ICA1 ICsrLQo+Pj4+Pj4gICAgMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAyNyBkZWxl dGlvbnMoLSkKPj4+Pj4+Cj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxh eS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMKPj4+Pj4+IGluZGV4IDliZmUxZjkuLjkzOTQ1NTggMTAw NjQ0Cj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2Ft ZGdwdV9kbS5jCj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1 X2RtL2FtZGdwdV9kbS5jCj4+Pj4+PiBAQCAtNTY4LDI1ICs1NjgsMTcgQEAgc3RhdGljIGludCBk bV9zdXNwZW5kKHZvaWQgKmhhbmRsZSkKPj4+Pj4+ICAgICAgICByZXR1cm4gcmV0Owo+Pj4+Pj4g ICAgfQo+Pj4+Pj4gICAgLXN0cnVjdCBhbWRncHVfZG1fY29ubmVjdG9yICphbWRncHVfZG1fZmlu ZF9maXJzdF9jcmN0X21hdGNoaW5nX2Nvbm5lY3RvcigKPj4+Pj4+ICtzdHJ1Y3QgYW1kZ3B1X2Rt X2Nvbm5lY3RvciAqYW1kZ3B1X2RtX2ZpbmRfZmlyc3RfY3J0Y19tYXRjaGluZ19jb25uZWN0b3Io Cj4+Pj4+PiAgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+Pj4+Pj4gLSAg ICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+Pj4+PiAtICAgIGJvb2wgZnJvbV9zdGF0ZV92YXIp Cj4+Pj4+PiArICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPj4+Pj4+ICAgIHsKPj4+Pj4+ICAg ICAgICB1aW50MzJfdCBpOwo+Pj4+Pj4gICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpjb25uX3N0YXRlOwo+Pj4+Pj4gICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3I7Cj4+Pj4+PiAgICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjX2Zyb21fc3RhdGU7Cj4+Pj4+ PiAgICAtICAgIGZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoCj4+Pj4+PiAtICAgICAg ICBzdGF0ZSwKPj4+Pj4+IC0gICAgICAgIGNvbm5lY3RvciwKPj4+Pj4+IC0gICAgICAgIGNvbm5f c3RhdGUsCj4+Pj4+PiAtICAgICAgICBpKSB7Cj4+Pj4+PiAtICAgICAgICBjcnRjX2Zyb21fc3Rh dGUgPQo+Pj4+Pj4gLSAgICAgICAgICAgIGZyb21fc3RhdGVfdmFyID8KPj4+Pj4+IC0gICAgICAg ICAgICAgICAgY29ubl9zdGF0ZS0+Y3J0YyA6Cj4+Pj4+PiAtICAgICAgICAgICAgICAgIGNvbm5l Y3Rvci0+c3RhdGUtPmNydGM7Cj4+Pj4+PiArICAgIGZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5f c3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgY29ubl9zdGF0ZSwgaSkgewo+Pj4+Pj4gKyAgICAgICAg Y3J0Y19mcm9tX3N0YXRlID0gY29ubl9zdGF0ZS0+Y3J0YzsKPj4+Pj4gUGxlYXNlIGFzc2lnbiBj cnRjX2Zyb21fc3RhdGUgaGVyZSB3aXRoIGRybV9hdG9taWNfZ2V0XyhuZXcvb2xkKV9jcnRjX3N0 YXRlLgo+Pj4+IFdlJ3JlIHRyeWluZyB0byBmZXRjaCBhIGRybV9jcnRjIGZyb20gYSBkcm1fY29u bmVjdG9yX3N0YXRlLCBJIGRvbid0IHRoaW5rIHRoZSBzdGF0ZSBnZXR0ZXJzIGFyZSBhcHBsaWNh YmxlIGhlcmUuCj4+Pj4KPj4+PiBBbHNvLCB0aGUgZnVuY3Rpb24gc2hvdWxkIHJlYWxseSBiZSBu YW1lZCAnZmluZF9maXJzdF9jb25uZWN0b3JfbWF0Y2hpbmdfY3J0YycuIEknbGwgZml4IHRoYXQu Cj4+PiBPaCBJIG1pc3VuZGVyc3Rvb2QuIEJ1dCBpbiBnZW5lcmFsIGRlcmVmZW5jaW5nICRvYmot PnN0YXRlIHNob3VsZCBiZSBmcm93bmVkIHVwb24uIElmIHlvdSBldmVyIHdhbnQgdG8gc3VwcG9y dCBhdG9taWMgZmxpcCBkZXB0aCA+IDEsCj4+PiBhbGwgdGhvc2UgcmVmZXJlbmNlcyBzaG91bGQg YmUgZ29uZSBmcm9tIHlvdXIgZHJpdmVyLCBhbmQgcmVwbGFjZWQgd2l0aCBnZXRfb2xkL25ld19z dGF0ZS4uCj4+IElmIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHkgdGhpcyBpcyB0aGUgZm9yd2FyZC1s b29raW5nIHdheSBvZiBob3cgd2UgZ2V0IHRoZQo+PiBzdGF0ZSBub3c/IEkgc3RpbGwgc2VlIHBs ZW50eSBvZiAkb2JqLT5zdGF0ZSBpbiBpOTE1IGFuZCBvdGhlciBkcml2ZXJzLgo+Pgo+PiBBbnkg b2JqZWN0aW9ucyB0byBkb2luZyB0aGlzIGFzIGEgZm9sbG93LXVwIHBhdGNoPwo+Pgo+PiBXaGF0 J3MgYXRvbWljIGZsaXAgZGVwdGggPiAxPwo+IAo+IFRoYXQgd2UgYWxsb3cgbXVsdGlwbGUgdW5j b21wbGV0ZWQgbm9uYmxvY2tpbmcgYXRvbWljIGNvbW1pdHMgdG8gdGhlIHNhbWUgY3J0YywKPiB3 aGljaCByZXF1aXJlcyB0aGF0IGR1cmluZyBjb21taXQsICRvYmotPnN0YXRlIGlzIG5vdCB0aGUg c2FtZSBhcwo+IG5ld18kb2JqX3N0YXRlIGFueSBtb3JlLiBJdCBjYW4gYmUgc2V0IHRvIGFuIGV2 ZW4gbmV3ZXIgc3RhdGUsIGJ1dCB0aGUgY3VycmVudAo+IGNvbW1pdCBoYXMgdG8gc2V0IHRoZSBz dGF0ZSB0aGF0IGlzIGluIHN0YXRlLT4kb2JqW2ldLm5ld19zdGF0ZS4gVGhpcyBjYW4gYmUKPiBv YnRhaW5lZCB3aXRoIGVpdGhlciB0aGUgaXRlcmF0b3JzLCBvciBkcm1fYXRvbWljX2dldF9uZXdf JG9ial9zdGF0ZS4KPiAKPiBUaGlzIGlzIHdoeSB3ZSB3ZSBnb3QgcmlkIG9mIHRoZSBvbGQgaXRl cmF0b3JzLCBnZXRfZXhpc3Rpbmdfc3RhdGUgYW5kICRvYmotPnN0YXRlCj4gd2VyZSBubyBsb25n ZXIgc3VmZmljaWVudCBmb3IgdGhpcy4KPiAKPiBVc2luZyBkcm1fYXRvbWljX2dldF9vbGQvbmV3 X29ial9zdGF0ZSBzaG91bGQgYmUgYSBzZXBhcmF0ZSBwYXRjaCwgYnV0IGNhbiBiZSBmaXhlZAo+ IG9wcG9ydHVuaXN0aWNhbGx5Lgo+IAo+IEJ1dCBzb21ldGhpbmcgbGlrZQo+IAo+IGZvcl9lYWNo X29sZF9jcnRjX2luX3N0YXRlKC4uLikgewo+IAluZXdfY3J0Y19zdGF0ZSA9IGNydGMtPnN0YXRl Cj4gCj4gCS4uLi4KPiB9Cj4gCj4gc2hvdWxkIGRlZmluaXRlbHkgYmUgZml4ZWQgaW4gdGhpcyBw YXRjaC4gSXQncyB3aGF0IHRoZSBpdGVyYXRvcnMgYXJlIGZvci4gOikKPiAKPiBJIGtub3cgaTkx NSBpcyBzdGlsbCBkZXJlZmVyZW5jaW5nICRvYmotPnN0YXRlLCBidXQgd2UncmUgdHJ5aW5nIHRv IHNsb3dseSBmaXggdGhlc2UKPiB3aGVuIHdlIGNvbWUgYWNyb3NzIHRoZW0uIFRoaXMgdXN1YWxs eSBpbnZvbHZlcyBwYXNzaW5nIHRoZSBjb3JyZWN0IHN0YXRlIG9iamVjdCB1cAo+IHRoZSBjYWxs Y2hhaW4sIHdoaWNoIGNhbiBiZSBxdWl0ZSBkZWVwLgo+IAo+IENoZWVycywKPiBNYWFydGVuCgpU aGFua3MgZm9yIHRoZSBjbGFyaWZpY2F0aW9uLgoKV2UncmUgaW4gYSBzaW1pbGFyIHNpdHVhdGlv biB3aXRoIHNvbWUgb2YgdGhlIGRlZXBseSBuZXN0ZWQgZnVuY3Rpb25zLCAKbW9zdCBvZiB3aGlj aCBkb24ndCB0YWtlIGluIHRoZSBzdGF0ZSBvYmplY3QuIFRoYXQgc2FpZCwgdGhlcmUgYXJlIGEg ZmV3IApmdW5jdGlvbnMgbG93ZXIgaW4gdGhlIGNhbGwgc3RhY2sgdGhhdCBhcmUgZWF0aW5nIHRo ZSBjb3JyZWN0IGF0b21pYyAKc3RhdGUgKGxpa2UgdGhlIG9uZXMgeW91J3ZlIHBvaW50ZWQgb3V0 KS4gV2UgY2FuIHRhcmdldCB0aG9zZSBmb3Igbm93LCAKYW5kIHRhcmdldCBtb3JlIHdoZW4gdGhl IG9wcG9ydHVuaXR5IGNvbWVzLgoKTGVvCgo+IAo+PiBIYXJyeQo+Pgo+Pj4+Pgo+Pj4+Pj4gICAg ICAgICAgICBpZiAoY3J0Y19mcm9tX3N0YXRlID09IGNydGMpCj4+Pj4+PiAgICAgICAgICAgICAg ICByZXR1cm4gdG9fYW1kZ3B1X2RtX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+Pj4+Pj4gQEAgLTM4 OTAsNyArMzg4Miw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kbV9jb21taXRfcGxhbmVzKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPj4+Pj4+ICAgICAgICB1bnNpZ25lZCBsb25nIGZs YWdzOwo+Pj4+Pj4gICAgICAgICAgLyogdXBkYXRlIHBsYW5lcyB3aGVuIG5lZWRlZCAqLwo+Pj4+ Pj4gLSAgICBmb3JfZWFjaF9uZXdfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBvbGRfcGxh bmVfc3RhdGUsIGkpIHsKPj4+Pj4+ICsgICAgZm9yX2VhY2hfb2xkX3BsYW5lX2luX3N0YXRlKHN0 YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLCBpKSB7Cj4+Pj4+PiAgICAgICAgICAgIHN0cnVj dCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0gcGxhbmUtPnN0YXRlOwo+Pj4+Pj4gICAg ICAgICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwbGFuZV9zdGF0ZS0+Y3J0YzsKPj4+Pj4+ ICAgICAgICAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+ZmI7 Cj4+Pj4+IFVzZSBmb3JfZWFjaF9vbGRuZXdfKl9pbl9zdGF0ZQo+Pj4+Pj4gQEAgLTQwMjQsNyAr NDAxNiw3IEBAIHZvaWQgYW1kZ3B1X2RtX2F0b21pY19jb21taXRfdGFpbCgKPj4+Pj4+ICAgICAg ICBkbV9zdGF0ZSA9IHRvX2RtX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4+Pj4+PiAgICAgICAgICAv KiB1cGRhdGUgY2hhbmdlZCBpdGVtcyAqLwo+Pj4+Pj4gLSAgICBmb3JfZWFjaF9uZXdfY3J0Y19p bl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIGkpIHsKPj4+Pj4+ICsgICAgZm9y X2VhY2hfb2xkX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLCBpKSB7 Cj4+Pj4+PiAgICAgICAgICAgIHN0cnVjdCBhbWRncHVfY3J0YyAqYWNydGMgPSB0b19hbWRncHVf Y3J0YyhjcnRjKTsKPj4+Pj4+ICAgICAgICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdf c3RhdGUgPSBjcnRjLT5zdGF0ZTsKPj4+Pj4gU2FtZS4KPj4+PiBHb29kIHBvaW50cywgaXQgc2Vl bXMgbGlrZSB0aGVyZSdzIHF1aXRlIGEgZmV3IHBsYWNlcyB3aGVyZSBkcm0gaW50ZXJmYWNlcyBj YW4gYmUgdXNlZC4gVGhhbmtzIGZvciBwb2ludGluZyB0aGlzIG91dC4KPj4+Pgo+Pj4+IExlbwo+ Pj4+Cj4+Pj4+PiAgICBAQCAtNDExMywxMSArNDEwNSw5IEBAIHZvaWQgYW1kZ3B1X2RtX2F0b21p Y19jb21taXRfdGFpbCgKPj4+Pj4+ICAgICAgICAgICAgICAgIG5ld19hY3J0Y19zdGF0ZSA9IHRv X2RtX2NydGNfc3RhdGUobmV3X2NydGNzW2ldLT5iYXNlLnN0YXRlKTsKPj4+Pj4+ICAgICAgICAg ICAgICAgICAgbmV3X3N0cmVhbSA9IG5ld19hY3J0Y19zdGF0ZS0+c3RyZWFtOwo+Pj4+Pj4gLSAg ICAgICAgICAgIGFjb25uZWN0b3IgPQo+Pj4+Pj4gLSAgICAgICAgICAgICAgICBhbWRncHVfZG1f ZmluZF9maXJzdF9jcmN0X21hdGNoaW5nX2Nvbm5lY3RvcigKPj4+Pj4+ICsgICAgICAgICAgICBh Y29ubmVjdG9yID0gYW1kZ3B1X2RtX2ZpbmRfZmlyc3RfY3J0Y19tYXRjaGluZ19jb25uZWN0b3Io Cj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLAo+Pj4+Pj4gLSAgICAgICAgICAg ICAgICAgICAgJm5ld19jcnRjc1tpXS0+YmFzZSwKPj4+Pj4+IC0gICAgICAgICAgICAgICAgICAg IGZhbHNlKTsKPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICZuZXdfY3J0Y3NbaV0tPmJhc2Up Owo+Pj4+Pj4gICAgICAgICAgICAgICAgaWYgKCFhY29ubmVjdG9yKSB7Cj4+Pj4+PiAgICAgICAg ICAgICAgICAgICAgRFJNX0RFQlVHX0RSSVZFUigiQXRvbWljIGNvbW1pdDogRmFpbGVkIHRvIGZp bmQgY29ubmVjdG9yIGZvciBhY3J0YyBpZDolZCAiCj4+Pj4+PiAgICAgICAgICAgICAgICAgICAg ICAgICAic2tpcHBpbmcgZnJlZXN5bmMgaW5pdFxuIiwKPj4+Pj4+IEBAIC00MTUwLDggKzQxNDAs OCBAQCB2b2lkIGFtZGdwdV9kbV9hdG9taWNfY29tbWl0X3RhaWwoCj4+Pj4+PiAgICAgICAgICAg IH0KPj4+Pj4+ICAgICAgICB9Cj4+Pj4+PiAgICAtICAgIC8qIEhhbmRsZSBzY2FsaW5nIGFuZCB1 bmRlcnNhY24gY2hhbmdlcyovCj4+Pj4+PiAtICAgIGZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5f c3RhdGUoc3RhdGUsIGNvbm5lY3Rvciwgb2xkX2Nvbm5fc3RhdGUsIGkpIHsKPj4+Pj4+ICsgICAg LyogSGFuZGxlIHNjYWxpbmcgYW5kIHVuZGVyc2NhbiBjaGFuZ2VzKi8KPj4+Pj4+ICsgICAgZm9y X2VhY2hfb2xkX2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBvbGRfY29ubl9z dGF0ZSwgaSkgewo+Pj4+Pj4gICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2RtX2Nvbm5lY3RvciAq YWNvbm5lY3RvciA9IHRvX2FtZGdwdV9kbV9jb25uZWN0b3IoY29ubmVjdG9yKTsKPj4+Pj4+ICAg ICAgICAgICAgc3RydWN0IGRtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29uX25ld19zdGF0ZSA9Cj4+Pj4+ PiAgICAgICAgICAgICAgICAgICAgdG9fZG1fY29ubmVjdG9yX3N0YXRlKGFjb25uZWN0b3ItPmJh c2Uuc3RhdGUpOwo+Pj4+PiBTYW1lIGhlcmUuLgo+Pj4+Pj4gQEAgLTQyMDUsNyArNDE5NSw3IEBA IHZvaWQgYW1kZ3B1X2RtX2F0b21pY19jb21taXRfdGFpbCgKPj4+Pj4+ICAgICAgICB9Cj4+Pj4+ PiAgICAgICAgICAvKiB1cGRhdGUgcGxhbmVzIHdoZW4gbmVlZGVkIHBlciBjcnRjKi8KPj4+Pj4+ IC0gICAgZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIHBjcnRjLCBvbGRfY3J0Y19z dGF0ZSwgaikgewo+Pj4+Pj4gKyAgICBmb3JfZWFjaF9vbGRfY3J0Y19pbl9zdGF0ZShzdGF0ZSwg cGNydGMsIG9sZF9jcnRjX3N0YXRlLCBqKSB7Cj4+Pj4+PiAgICAgICAgICAgIG5ld19hY3J0Y19z dGF0ZSA9IHRvX2RtX2NydGNfc3RhdGUocGNydGMtPnN0YXRlKTsKPj4+Pj4gU2FtZS4KPj4+Pj4+ ICAgICAgICAgICAgaWYgKG5ld19hY3J0Y19zdGF0ZS0+c3RyZWFtKQo+Pj4+Pj4gQEAgLTQyMTgs NyArNDIwOCw3IEBAIHZvaWQgYW1kZ3B1X2RtX2F0b21pY19jb21taXRfdGFpbCgKPj4+Pj4+ICAg ICAgICAgKiBtYXJrIGNvbnN1bWVkIGV2ZW50IGZvciBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRf aHdfZG9uZQo+Pj4+Pj4gICAgICAgICAqLwo+Pj4+Pj4gICAgICAgIHNwaW5fbG9ja19pcnFzYXZl KCZhZGV2LT5kZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Cj4+Pj4+PiAtICAgIGZvcl9lYWNoX25l d19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgaSkgewo+Pj4+Pj4g KyAgICBmb3JfZWFjaF9vbGRfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3Rh dGUsIGkpIHsKPj4+Pj4+ICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9jcnRjICphY3J0YyA9IHRv X2FtZGdwdV9jcnRjKGNydGMpOwo+Pj4+Pj4gICAgICAgICAgICAgIGlmIChhY3J0Yy0+YmFzZS5z dGF0ZS0+ZXZlbnQpCj4+Pj4+IFNhbWUuIFlvdSdyZSBkZXJlZmVyZW5jaW5nIGNydGMtPnN0YXRl Cj4+Pj4+PiBAQCAtNDQwMiw3ICs0MzkyLDcgQEAgc3RhdGljIGludCBkbV91cGRhdGVfY3J0Y3Nf c3RhdGUoCj4+Pj4+PiAgICAgICAgICAgIG5ld19hY3J0Y19zdGF0ZSA9IHRvX2RtX2NydGNfc3Rh dGUoY3J0Y19zdGF0ZSk7Cj4+Pj4+PiAgICAgICAgICAgIGFjcnRjID0gdG9fYW1kZ3B1X2NydGMo Y3J0Yyk7Cj4+Pj4+PiAgICAtICAgICAgICBhY29ubmVjdG9yID0gYW1kZ3B1X2RtX2ZpbmRfZmly c3RfY3JjdF9tYXRjaGluZ19jb25uZWN0b3Ioc3RhdGUsIGNydGMsIHRydWUpOwo+Pj4+Pj4gKyAg ICAgICAgYWNvbm5lY3RvciA9IGFtZGdwdV9kbV9maW5kX2ZpcnN0X2NydGNfbWF0Y2hpbmdfY29u bmVjdG9yKHN0YXRlLCBjcnRjKTsKPj4+Pj4+ICAgICAgICAgICAgICAvKiBUT0RPIFRoaXMgaGFj ayBzaG91bGQgZ28gYXdheSAqLwo+Pj4+Pj4gICAgICAgICAgICBpZiAoYWNvbm5lY3Rvcikgewo+ Pj4+Pj4gQEAgLTQ3MTUsNyArNDcwNSw3IEBAIGludCBhbWRncHVfZG1fYXRvbWljX2NoZWNrKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+Pj4+PiAgICAgICAgIGlmIChyZXQpCj4+Pj4+PiAgICAg ICAgICAgICBnb3RvIGZhaWw7Cj4+Pj4+PiAgICAtICAgIC8qIENoZWNrIHNjYWxpbmcgYW5kIHVu ZGVyc2FjbiBjaGFuZ2VzKi8KPj4+Pj4+ICsgICAgLyogQ2hlY2sgc2NhbGluZyBhbmQgdW5kZXJz Y2FuIGNoYW5nZXMqLwo+Pj4+Pj4gICAgICAgIC8qVE9ETyBSZW1vdmVkIHNjYWxpbmcgY2hhbmdl cyB2YWxpZGF0aW9uIGR1ZSB0byBpbmFiaWxpdHkgdG8gY29tbWl0Cj4+Pj4+PiAgICAgICAgICog bmV3IHN0cmVhbSBpbnRvIGNvbnRleHQgd1xvIGNhdXNpbmcgZnVsbCByZXNldC4gTmVlZCB0bwo+ Pj4+Pj4gICAgICAgICAqIGRlY2lkZSBob3cgdG8gaGFuZGxlLgo+Pj4+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmggYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5oCj4+Pj4+PiBpbmRl eCA2MzBlNmNkLi5jMWI3N2JkIDEwMDY0NAo+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uaAo+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uaAo+Pj4+Pj4gQEAgLTIyNiwxMCAr MjI2LDkgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBhbWRncHVfaXBfYmxvY2tfdmVyc2lvbiBkbV9p cF9ibG9jazsKPj4+Pj4+ICAgIHZvaWQgYW1kZ3B1X2RtX3VwZGF0ZV9jb25uZWN0b3JfYWZ0ZXJf ZGV0ZWN0KAo+Pj4+Pj4gICAgICAgIHN0cnVjdCBhbWRncHVfZG1fY29ubmVjdG9yICphY29ubmVj dG9yKTsKPj4+Pj4+ICAgIC1zdHJ1Y3QgYW1kZ3B1X2RtX2Nvbm5lY3RvciAqYW1kZ3B1X2RtX2Zp bmRfZmlyc3RfY3JjdF9tYXRjaGluZ19jb25uZWN0b3IoCj4+Pj4+PiArc3RydWN0IGFtZGdwdV9k bV9jb25uZWN0b3IgKmFtZGdwdV9kbV9maW5kX2ZpcnN0X2NydGNfbWF0Y2hpbmdfY29ubmVjdG9y KAo+Pj4+Pj4gICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPj4+Pj4+IC0g ICAgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+Pj4+Pj4gLSAgICBib29sIGZyb21fc3RhdGVfdmFy KTsKPj4+Pj4+ICsgICAgc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPj4+Pj4+ICAgICAgICBzdHJ1 Y3QgYW1kZ3B1X2ZyYW1lYnVmZmVyOwo+Pj4+Pgo+IApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK