From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH] drm/amdgpu: Reorder uvd ring init before uvd resume Date: Mon, 19 Nov 2018 09:55:07 +0100 Message-ID: <7173078a-3962-9f0f-e457-0bb55e9a127f@gmail.com> References: <20181116093424.6599-1-chris@chris-wilson.co.uk> Reply-To: christian.koenig@amd.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181116093424.6599-1-chris@chris-wilson.co.uk> 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: Chris Wilson , amd-gfx@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org QW0gMTYuMTEuMTggdW0gMTA6MzQgc2NocmllYiBDaHJpcyBXaWxzb246Cj4gQXMgYW1kX3V2ZF9y ZXN1bWUoKSBhY2Nlc3NlcyB0aGUgdXZkIHJpbmcsIGl0IG11c3QgYmUgaW5pdGlhbGlzZWQgZmly c3QKPiBvciBlbHNlIHdlIHRyaWdnZXIgZXJyb3JzIGxpa2U6Cj4KPiBbICAgIDUuNTk1OTYzXSBb ZHJtXSBGb3VuZCBVVkQgZmlybXdhcmUgVmVyc2lvbjogMS44NyBGYW1pbHkgSUQ6IDE3Cj4gWyAg ICA1LjU5NTk2OV0gW2RybV0gUFNQIGxvYWRpbmcgVVZEIGZpcm13YXJlCj4gWyAgICA1LjU5NjI2 Nl0gLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0tCj4gWyAgICA1LjU5NjI2OF0g T0RFQlVHOiBhc3NlcnRfaW5pdCBub3QgYXZhaWxhYmxlIChhY3RpdmUgc3RhdGUgMCkgb2JqZWN0 IHR5cGU6IHRpbWVyX2xpc3QgaGludDogICAgICAgICAgIChudWxsKQo+IFsgICAgNS41OTYyODVd IFdBUk5JTkc6IENQVTogMCBQSUQ6IDUwNyBhdCBsaWIvZGVidWdvYmplY3RzLmM6MzI5IGRlYnVn X3ByaW50X29iamVjdCsweDZhLzB4ODAKPiBbICAgIDUuNTk2Mjg2XSBNb2R1bGVzIGxpbmtlZCBp bjogYW1kZ3B1KCspIGhpZF9sb2dpdGVjaF9oaWRwcCgrKSBjaGFzaCBncHVfc2NoZWQgYW1kX2lv bW11X3YyIHR0bSBkcm1fa21zX2hlbHBlciBjcmMzMmNfaW50ZWwgZHJtIGhpZF9zb255IGZmX21l bWxlc3MgaWdiIGhpZF9sb2dpdGVjaF9kaiBudm1lIGRjYSBpMmNfYWxnb19iaXQgbnZtZV9jb3Jl IHdtaSBwaW5jdHJsX2FtZCB1YXMgdXNiX3N0b3JhZ2UKPiBbICAgIDUuNTk2Mjk5XSBDUFU6IDAg UElEOiA1MDcgQ29tbTogc3lzdGVtZC11ZGV2ZCBUYWludGVkOiBHICAgICAgICBXICAgICAgICAg NC4yMC4wLTAucmMxLmdpdDQuMS5mYzMwLng4Nl82NCAjMQo+IFsgICAgNS41OTYzMDFdIEhhcmR3 YXJlIG5hbWU6IFN5c3RlbSBtYW51ZmFjdHVyZXIgU3lzdGVtIFByb2R1Y3QgTmFtZS9ST0cgU1RS SVggWDQ3MC1JIEdBTUlORywgQklPUyAwOTAxIDA3LzIzLzIwMTgKPiBbICAgIDUuNTk2MzAzXSBS SVA6IDAwMTA6ZGVidWdfcHJpbnRfb2JqZWN0KzB4NmEvMHg4MAo+IFsgICAgNS41OTYzMDVdIENv ZGU6IDhiIDQzIDEwIDgzIGMyIDAxIDhiIDRiIDE0IDRjIDg5IGU2IDg5IDE1IGU2IDgyIGIwIDAy IDRjIDhiIDQ1IDAwIDQ4IGM3IGM3IDYwIGZkIDM0IGE2IDQ4IDhiIDE0IGM1IGEwIGRhIDA4IGE2 IGU4IDZhIDZhIGI4IGZmIDwwZj4gMGIgNWIgODMgMDUgZDAgNDUgM2UgMDEgMDEgNWQgNDEgNWMg YzMgODMgMDUgYzUgNDUgM2UgMDEgMDEgYzMKPiBbICAgIDUuNTk2MzA2XSBSU1A6IDAwMTg6ZmZm ZmEwMmFjODYzZjhjMCBFRkxBR1M6IDAwMDEwMjgyCj4gWyAgICA1LjU5NjMwN10gUkFYOiAwMDAw MDAwMDAwMDAwMDAwIFJCWDogZmZmZmEwMmFjODYzZjhlMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDYK PiBbICAgIDUuNTk2MzA4XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDcgUlNJOiBmZmZmOTE2MGU5YTdi ZmU4IFJESTogZmZmZjkxNjBmOTFkNmM2MAo+IFsgICAgNS41OTYzMTBdIFJCUDogZmZmZmZmZmZh Njc0Mjc0MCBSMDg6IDAwMDAwMDAwMDAwMDAwMDIgUjA5OiAwMDAwMDAwMDAwMDAwMDAwCj4gWyAg ICA1LjU5NjMxMV0gUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDAwMCBS MTI6IGZmZmZmZmZmYTYzNGZmNjkKPiBbICAgIDUuNTk2MzEyXSBSMTM6IDAwMDAwMDAwMDAwYjc5 ZDAgUjE0OiBmZmZmZmZmZmE4MGY3NmQ4IFIxNTogMDAwMDAwMDAwMDI2NjAwMAo+IFsgICAgNS41 OTYzMTNdIEZTOiAgMDAwMDdmNzYyYWJmNzk0MCgwMDAwKSBHUzpmZmZmOTE2MGY5MDAwMDAwKDAw MDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKPiBbICAgIDUuNTk2MzE0XSBDUzogIDAwMTAgRFM6 IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCj4gWyAgICA1LjU5NjMxNV0gQ1Iy OiAwMDAwNTVmZGM1OTNmMDAwIENSMzogMDAwMDAwMDdlOTk5YzAwMCBDUjQ6IDAwMDAwMDAwMDAz NDA2ZjAKPiBbICAgIDUuNTk2MzE3XSBDYWxsIFRyYWNlOgo+IFsgICAgNS41OTYzMjFdICBkZWJ1 Z19vYmplY3RfYXNzZXJ0X2luaXQrMHgxNGEvMHgxODAKPiBbICAgIDUuNTk2MzI3XSAgZGVsX3Rp bWVyKzB4MmUvMHg5MAo+IFsgICAgNS41OTYzODNdICBhbWRncHVfZmVuY2VfcHJvY2VzcysweDQ3 LzB4MTAwIFthbWRncHVdCj4gWyAgICA1LjU5NjQzMF0gIGFtZGdwdV91dmRfcmVzdW1lKzB4ZjYv MHgxMjAgW2FtZGdwdV0KPiBbICAgIDUuNTk2NDc1XSAgdXZkX3Y3XzBfc3dfaW5pdCsweGUwLzB4 MjgwIFthbWRncHVdCj4gWyAgICA1LjU5NjUyM10gIGFtZGdwdV9kZXZpY2VfaW5pdC5jb2xkLjMw KzB4Zjk3LzB4MTRiNiBbYW1kZ3B1XQo+IFsgICAgNS41OTY1NjNdICA/IGFtZGdwdV9kcml2ZXJf bG9hZF9rbXMrMHg1My8weDMzMCBbYW1kZ3B1XQo+IFsgICAgNS41OTY2MDRdICBhbWRncHVfZHJp dmVyX2xvYWRfa21zKzB4ODYvMHgzMzAgW2FtZGdwdV0KPiBbICAgIDUuNTk2NjE0XSAgZHJtX2Rl dl9yZWdpc3RlcisweDExNS8weDE1MCBbZHJtXQo+IFsgICAgNS41OTY2NTRdICBhbWRncHVfcGNp X3Byb2JlKzB4YmQvMHgxMjAgW2FtZGdwdV0KPiBbICAgIDUuNTk2NjU4XSAgbG9jYWxfcGNpX3By b2JlKzB4NDEvMHg5MAo+IFsgICAgNS41OTY2NjFdICBwY2lfZGV2aWNlX3Byb2JlKzB4MTg4LzB4 MWEwCj4gWyAgICA1LjU5NjY2Nl0gIHJlYWxseV9wcm9iZSsweGY4LzB4M2IwCj4gWyAgICA1LjU5 NjY2OV0gIGRyaXZlcl9wcm9iZV9kZXZpY2UrMHhiMy8weGYwCj4gWyAgICA1LjU5NjY3Ml0gIF9f ZHJpdmVyX2F0dGFjaCsweGUxLzB4MTEwCj4gWyAgICA1LjU5NjY3NF0gID8gZHJpdmVyX3Byb2Jl X2RldmljZSsweGYwLzB4ZjAKPiBbICAgIDUuNTk2Njc2XSAgYnVzX2Zvcl9lYWNoX2RldisweDc5 LzB4YzAKPiBbICAgIDUuNTk2Njc5XSAgYnVzX2FkZF9kcml2ZXIrMHgxNTUvMHgyMzAKPiBbICAg IDUuNTk2NjgxXSAgPyAweGZmZmZmZmZmYzA3ZDkwMDAKPiBbICAgIDUuNTk2NjgzXSAgZHJpdmVy X3JlZ2lzdGVyKzB4NmIvMHhiMAo+IFsgICAgNS41OTY2ODVdICA/IDB4ZmZmZmZmZmZjMDdkOTAw MAo+IFsgICAgNS41OTY2ODhdICBkb19vbmVfaW5pdGNhbGwrMHg1ZC8weDJiZQo+IFsgICAgNS41 OTY2OTFdICA/IHJjdV9yZWFkX2xvY2tfc2NoZWRfaGVsZCsweDc5LzB4ODAKPiBbICAgIDUuNTk2 NjkzXSAgPyBrbWVtX2NhY2hlX2FsbG9jX3RyYWNlKzB4MjY0LzB4MjkwCj4gWyAgICA1LjU5NjY5 NV0gID8gZG9faW5pdF9tb2R1bGUrMHgyMi8weDIxMAo+IFsgICAgNS41OTY2OThdICBkb19pbml0 X21vZHVsZSsweDVhLzB4MjEwCj4gWyAgICA1LjU5NjcwMV0gIGxvYWRfbW9kdWxlKzB4MjEzNy8w eDI0MzAKPiBbICAgIDUuNTk2NzAzXSAgPyBsb2NrZGVwX2hhcmRpcnFzX29uKzB4ZWQvMHgxODAK PiBbICAgIDUuNTk2NzE0XSAgPyBfX2RvX3N5c19pbml0X21vZHVsZSsweDE1MC8weDFhMAo+IFsg ICAgNS41OTY3MTVdICBfX2RvX3N5c19pbml0X21vZHVsZSsweDE1MC8weDFhMAo+IFsgICAgNS41 OTY3MjJdICBkb19zeXNjYWxsXzY0KzB4NjAvMHgxZjAKPiBbICAgIDUuNTk2NzI1XSAgZW50cnlf U1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDkvMHhiZQo+IFsgICAgNS41OTY3MjZdIFJJUDog MDAzMzoweDdmNzYyYjg3N2RlZQo+IFsgICAgNS41OTY3MjhdIENvZGU6IDQ4IDhiIDBkIDlkIDIw IDBjIDAwIGY3IGQ4IDY0IDg5IDAxIDQ4IDgzIGM4IGZmIGMzIDY2IDJlIDBmIDFmIDg0IDAwIDAw IDAwIDAwIDAwIDkwIGYzIDBmIDFlIGZhIDQ5IDg5IGNhIGI4IGFmIDAwIDAwIDAwIDBmIDA1IDw0 OD4gM2QgMDEgZjAgZmYgZmYgNzMgMDEgYzMgNDggOGIgMGQgNmEgMjAgMGMgMDAgZjcgZDggNjQg ODkgMDEgNDgKPiBbICAgIDUuNTk2NzI5XSBSU1A6IDAwMmI6MDAwMDdmZmM3NzdiODU1OCBFRkxB R1M6IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMGFmCj4gWyAgICA1LjU5NjczMF0g UkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDU1ZmRjNDhkYTMyMCBSQ1g6IDAwMDA3Zjc2 MmI4NzdkZWUKPiBbICAgIDUuNTk2NzMxXSBSRFg6IDAwMDA3Zjc2MmI5ZjI4NGQgUlNJOiAwMDAw MDAwMDAwNmM1ZmM2IFJESTogMDAwMDU1ZmRjNTI3YTA2MAo+IFsgICAgNS41OTY3MzJdIFJCUDog MDAwMDdmNzYyYjlmMjg0ZCBSMDg6IDAwMDAwMDAwMDAwMDAwMDMgUjA5OiAwMDAwMDAwMDAwMDAw MDAyCj4gWyAgICA1LjU5NjczM10gUjEwOiAwMDAwNTVmZGM0OGFkMDEwIFIxMTogMDAwMDAwMDAw MDAwMDI0NiBSMTI6IDAwMDA1NWZkYzUyN2EwNjAKPiBbICAgIDUuNTk2NzM0XSBSMTM6IDAwMDA1 NWZkYzQ4ZGNhMjAgUjE0OiAwMDAwMDAwMDAwMDIwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMAo+ IFsgICAgNS41OTY3NDBdIGlycSBldmVudCBzdGFtcDogMTM0NjE4Cj4gWyAgICA1LjU5Njc0M10g aGFyZGlycXMgbGFzdCAgZW5hYmxlZCBhdCAoMTM0NjE3KTogWzxmZmZmZmZmZmE1MTNkNTJlPl0g Y29uc29sZV91bmxvY2srMHg0NWUvMHg2MTAKPiBbICAgIDUuNTk2NzQ0XSBoYXJkaXJxcyBsYXN0 IGRpc2FibGVkIGF0ICgxMzQ2MTgpOiBbPGZmZmZmZmZmYTUwMDM3ZTg+XSB0cmFjZV9oYXJkaXJx c19vZmZfdGh1bmsrMHgxYS8weDFjCj4gWyAgICA1LjU5Njc0Nl0gc29mdGlycXMgbGFzdCAgZW5h YmxlZCBhdCAoMTMzMTQ2KTogWzxmZmZmZmZmZmE1ZTAwMzY1Pl0gX19kb19zb2Z0aXJxKzB4MzY1 LzB4NDdjCj4gWyAgICA1LjU5Njc0OF0gc29mdGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoMTMzMTM5 KTogWzxmZmZmZmZmZmE1MGM2NGY5Pl0gaXJxX2V4aXQrMHgxMTkvMHgxMjAKPiBbICAgIDUuNTk2 NzQ5XSAtLS1bIGVuZCB0cmFjZSBlYWVlNTA4YWJmZWJjY2RjIF0tLS0KPgo+IEJ1Z3ppbGxhOiBo dHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg3MDkKPiBTaWdu ZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzog QWxleCBEZXVjaGVyIDxhbGV4ZGV1Y2hlckBnbWFpbC5jb20+CgpHb29kIGNhdGNoLCBSZXZpZXdl ZC1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPi4KCkdvaW5n IHRvIHB1c2ggdGhhdCBpZiBub2JvZHkgb2JqZWN0cyB0b2RheSwKQ2hyaXN0aWFuLgoKPiAtLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92NF8yLmMgfCA4ICsrKystLS0tCj4g ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjVfMC5jIHwgOCArKysrLS0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y2XzAuYyB8IDggKysrKy0tLS0KPiAgIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92N18wLmMgfCA4ICsrKystLS0tCj4gICA0IGZp bGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92NF8yLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS91dmRfdjRfMi5jCj4gaW5kZXggMWZjMTdiZjM5ZmVkLi40NGNhNDE4 MzcxODcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y0XzIu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92NF8yLmMKPiBAQCAtMTE2 LDE2ICsxMTYsMTYgQEAgc3RhdGljIGludCB1dmRfdjRfMl9zd19pbml0KHZvaWQgKmhhbmRsZSkK PiAgIAlpZiAocikKPiAgIAkJcmV0dXJuIHI7Cj4gICAKPiAtCXIgPSBhbWRncHVfdXZkX3Jlc3Vt ZShhZGV2KTsKPiAtCWlmIChyKQo+IC0JCXJldHVybiByOwo+IC0KPiAgIAlyaW5nID0gJmFkZXYt PnV2ZC5pbnN0LT5yaW5nOwo+ICAgCXNwcmludGYocmluZy0+bmFtZSwgInV2ZCIpOwo+ICAgCXIg PSBhbWRncHVfcmluZ19pbml0KGFkZXYsIHJpbmcsIDUxMiwgJmFkZXYtPnV2ZC5pbnN0LT5pcnEs IDApOwo+ICAgCWlmIChyKQo+ICAgCQlyZXR1cm4gcjsKPiAgIAo+ICsJciA9IGFtZGdwdV91dmRf cmVzdW1lKGFkZXYpOwo+ICsJaWYgKHIpCj4gKwkJcmV0dXJuIHI7Cj4gKwo+ICAgCXIgPSBhbWRn cHVfdXZkX2VudGl0eV9pbml0KGFkZXYpOwo+ICAgCj4gICAJcmV0dXJuIHI7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92NV8wLmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS91dmRfdjVfMC5jCj4gaW5kZXggZmRlNmFkNWFjOWFiLi42YmIwNWFlMjMy YjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y1XzAuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92NV8wLmMKPiBAQCAtMTEzLDE2 ICsxMTMsMTYgQEAgc3RhdGljIGludCB1dmRfdjVfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKPiAg IAlpZiAocikKPiAgIAkJcmV0dXJuIHI7Cj4gICAKPiAtCXIgPSBhbWRncHVfdXZkX3Jlc3VtZShh ZGV2KTsKPiAtCWlmIChyKQo+IC0JCXJldHVybiByOwo+IC0KPiAgIAlyaW5nID0gJmFkZXYtPnV2 ZC5pbnN0LT5yaW5nOwo+ICAgCXNwcmludGYocmluZy0+bmFtZSwgInV2ZCIpOwo+ICAgCXIgPSBh bWRncHVfcmluZ19pbml0KGFkZXYsIHJpbmcsIDUxMiwgJmFkZXYtPnV2ZC5pbnN0LT5pcnEsIDAp Owo+ICAgCWlmIChyKQo+ICAgCQlyZXR1cm4gcjsKPiAgIAo+ICsJciA9IGFtZGdwdV91dmRfcmVz dW1lKGFkZXYpOwo+ICsJaWYgKHIpCj4gKwkJcmV0dXJuIHI7Cj4gKwo+ICAgCXIgPSBhbWRncHVf dXZkX2VudGl0eV9pbml0KGFkZXYpOwo+ICAgCj4gICAJcmV0dXJuIHI7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92Nl8wLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS91dmRfdjZfMC5jCj4gaW5kZXggN2E1YjQwMjc1ZThlLi4wN2ZkOTZkZjQzMjEg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y2XzAuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92Nl8wLmMKPiBAQCAtNDE2LDE2ICs0 MTYsMTYgQEAgc3RhdGljIGludCB1dmRfdjZfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKPiAgIAkJ RFJNX0lORk8oIlVWRCBFTkMgaXMgZGlzYWJsZWRcbiIpOwo+ICAgCX0KPiAgIAo+IC0JciA9IGFt ZGdwdV91dmRfcmVzdW1lKGFkZXYpOwo+IC0JaWYgKHIpCj4gLQkJcmV0dXJuIHI7Cj4gLQo+ICAg CXJpbmcgPSAmYWRldi0+dXZkLmluc3QtPnJpbmc7Cj4gICAJc3ByaW50ZihyaW5nLT5uYW1lLCAi dXZkIik7Cj4gICAJciA9IGFtZGdwdV9yaW5nX2luaXQoYWRldiwgcmluZywgNTEyLCAmYWRldi0+ dXZkLmluc3QtPmlycSwgMCk7Cj4gICAJaWYgKHIpCj4gICAJCXJldHVybiByOwo+ICAgCj4gKwly ID0gYW1kZ3B1X3V2ZF9yZXN1bWUoYWRldik7Cj4gKwlpZiAocikKPiArCQlyZXR1cm4gcjsKPiAr Cj4gICAJaWYgKHV2ZF92Nl8wX2VuY19zdXBwb3J0KGFkZXYpKSB7Cj4gICAJCWZvciAoaSA9IDA7 IGkgPCBhZGV2LT51dmQubnVtX2VuY19yaW5nczsgKytpKSB7Cj4gICAJCQlyaW5nID0gJmFkZXYt PnV2ZC5pbnN0LT5yaW5nX2VuY1tpXTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvdXZkX3Y3XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92N18w LmMKPiBpbmRleCA1OGIzOWFmY2ZiODYuLjFlZjAyM2E3YjhlYyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjdfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvdXZkX3Y3XzAuYwo+IEBAIC00NDcsMTAgKzQ0Nyw2IEBAIHN0YXRpYyBpbnQg dXZkX3Y3XzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCj4gICAJCURSTV9JTkZPKCJQU1AgbG9hZGlu ZyBVVkQgZmlybXdhcmVcbiIpOwo+ICAgCX0KPiAgIAo+IC0JciA9IGFtZGdwdV91dmRfcmVzdW1l KGFkZXYpOwo+IC0JaWYgKHIpCj4gLQkJcmV0dXJuIHI7Cj4gLQo+ICAgCWZvciAoaiA9IDA7IGog PCBhZGV2LT51dmQubnVtX3V2ZF9pbnN0OyBqKyspIHsKPiAgIAkJaWYgKGFkZXYtPnV2ZC5oYXJ2 ZXN0X2NvbmZpZyAmICgxIDw8IGopKQo+ICAgCQkJY29udGludWU7Cj4gQEAgLTQ4Miw2ICs0Nzgs MTAgQEAgc3RhdGljIGludCB1dmRfdjdfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKPiAgIAkJfQo+ ICAgCX0KPiAgIAo+ICsJciA9IGFtZGdwdV91dmRfcmVzdW1lKGFkZXYpOwo+ICsJaWYgKHIpCj4g KwkJcmV0dXJuIHI7Cj4gKwo+ICAgCXIgPSBhbWRncHVfdXZkX2VudGl0eV9pbml0KGFkZXYpOwo+ ICAgCWlmIChyKQo+ICAgCQlyZXR1cm4gcjsKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=