From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: [PATCH 07/11] drm/amdgpu: enable IH ring 1 and ring 2 v2 Date: Fri, 30 Nov 2018 11:01:12 -0500 Message-ID: References: <20181130123558.14898-1-christian.koenig@amd.com> <20181130123558.14898-7-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181130123558.14898-7-christian.koenig-5C7GfCeVMHo@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: amd-gfx list T24gRnJpLCBOb3YgMzAsIDIwMTggYXQgNzozNiBBTSBDaHJpc3RpYW4gS8O2bmlnCjxja29lbmln LmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiBUaGUgZW50cmllcyBhcmUgaWdu b3JlZCBmb3Igbm93LCBidXQgaXQgYXQgbGVhc3Qgc3RvcHMgY3Jhc2hpbmcgdGhlCj4gaGFyZHdh cmUgd2hlbiBzb21lYm9keSB0cmllcyB0byBwdXNoIHNvbWV0aGluZyB0byB0aGUgb3RoZXIgSUgg cmluZ3MuCj4KPiB2MjogbGltaXQgcmluZyBzaXplLCBhZGQgVE9ETyBjb21tZW50Cj4KPiBTaWdu ZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+CgpX ZSBtYXkgd2FudCB0byBndWFyZCB0aGlzIHdpdGggc29tZSBmbGFnIHNvIHdlIGNhbiBlYXNpbHkg ZGlzYWJsZSBpdAoobGlrZSB3ZSBkaWQgZm9yIHRoZSBwYWdpbmcgcXVldWUpIGluIGNhc2Ugd2Ug cnVuIGludG8gaXNzdWVzIG9uIGFueQphc2ljcy4KCkFsZXgKCj4gLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pcnEuaCB8ICAgNCArLQo+ICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS92ZWdhMTBfaWguYyAgfCAxMjkgKysrKysrKysrKysrKysrKysrKy0tLS0tCj4g IDIgZmlsZXMgY2hhbmdlZCwgMTA3IGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQo+Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pcnEuaCBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pcnEuaAo+IGluZGV4IGY2Y2UxNzFjYjhh YS4uN2UwNmZhNjQzMjFhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9pcnEuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9p cnEuaAo+IEBAIC04Nyw4ICs4Nyw4IEBAIHN0cnVjdCBhbWRncHVfaXJxIHsKPiAgICAgICAgIC8q IHN0YXR1cywgZXRjLiAqLwo+ICAgICAgICAgYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtc2lfZW5hYmxlZDsgLyogbXNpIGVuYWJsZWQgKi8KPgo+IC0gICAgICAgLyogaW50ZXJydXB0 IHJpbmcgKi8KPiAtICAgICAgIHN0cnVjdCBhbWRncHVfaWhfcmluZyAgICAgICAgICAgaWg7Cj4g KyAgICAgICAvKiBpbnRlcnJ1cHQgcmluZ3MgKi8KPiArICAgICAgIHN0cnVjdCBhbWRncHVfaWhf cmluZyAgICAgICAgICAgaWgsIGloMSwgaWgyOwo+ICAgICAgICAgY29uc3Qgc3RydWN0IGFtZGdw dV9paF9mdW5jcyAgICAqaWhfZnVuY3M7Cj4KPiAgICAgICAgIC8qIGdlbiBpcnEgc3R1ZmYgKi8K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmVnYTEwX2loLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92ZWdhMTBfaWguYwo+IGluZGV4IDNlOWViYjBkZTk0 ZC4uNTYyZmQwMzZiYjllIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L3ZlZ2ExMF9paC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmVnYTEwX2lo LmMKPiBAQCAtNTAsNiArNTAsMTYgQEAgc3RhdGljIHZvaWQgdmVnYTEwX2loX2VuYWJsZV9pbnRl cnJ1cHRzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgICAgICAgaWhfcmJfY250bCA9 IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwgRU5BQkxFX0lOVFIsIDEpOwo+ ICAgICAgICAgV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9DTlRMLCBpaF9yYl9jbnRs KTsKPiAgICAgICAgIGFkZXYtPmlycS5paC5lbmFibGVkID0gdHJ1ZTsKPiArCj4gKyAgICAgICBp aF9yYl9jbnRsID0gUlJFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9DTlRMX1JJTkcxKTsK PiArICAgICAgIGloX3JiX2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3JiX2NudGwsIElIX1JCX0NO VExfUklORzEsIFJCX0VOQUJMRSwgMSk7Cj4gKyAgICAgICBXUkVHMzJfU09DMTUoT1NTU1lTLCAw LCBtbUlIX1JCX0NOVExfUklORzEsIGloX3JiX2NudGwpOwo+ICsgICAgICAgYWRldi0+aXJxLmlo MS5lbmFibGVkID0gdHJ1ZTsKPiArCj4gKyAgICAgICBpaF9yYl9jbnRsID0gUlJFRzMyX1NPQzE1 KE9TU1NZUywgMCwgbW1JSF9SQl9DTlRMX1JJTkcyKTsKPiArICAgICAgIGloX3JiX2NudGwgPSBS RUdfU0VUX0ZJRUxEKGloX3JiX2NudGwsIElIX1JCX0NOVExfUklORzIsIFJCX0VOQUJMRSwgMSk7 Cj4gKyAgICAgICBXUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX0NOVExfUklORzIsIGlo X3JiX2NudGwpOwo+ICsgICAgICAgYWRldi0+aXJxLmloMi5lbmFibGVkID0gdHJ1ZTsKPiAgfQo+ Cj4gIC8qKgo+IEBAIC03MSw2ICs4MSw0NyBAQCBzdGF0aWMgdm9pZCB2ZWdhMTBfaWhfZGlzYWJs ZV9pbnRlcnJ1cHRzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgICAgICAgV1JFRzMy X1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9XUFRSLCAwKTsKPiAgICAgICAgIGFkZXYtPmlycS5p aC5lbmFibGVkID0gZmFsc2U7Cj4gICAgICAgICBhZGV2LT5pcnEuaWgucnB0ciA9IDA7Cj4gKwo+ ICsgICAgICAgaWhfcmJfY250bCA9IFJSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhfUkJfQ05U TF9SSU5HMSk7Cj4gKyAgICAgICBpaF9yYl9jbnRsID0gUkVHX1NFVF9GSUVMRChpaF9yYl9jbnRs LCBJSF9SQl9DTlRMX1JJTkcxLCBSQl9FTkFCTEUsIDApOwo+ICsgICAgICAgV1JFRzMyX1NPQzE1 KE9TU1NZUywgMCwgbW1JSF9SQl9DTlRMX1JJTkcxLCBpaF9yYl9jbnRsKTsKPiArICAgICAgIC8q IHNldCBycHRyLCB3cHRyIHRvIDAgKi8KPiArICAgICAgIFdSRUczMl9TT0MxNShPU1NTWVMsIDAs IG1tSUhfUkJfUlBUUl9SSU5HMSwgMCk7Cj4gKyAgICAgICBXUkVHMzJfU09DMTUoT1NTU1lTLCAw LCBtbUlIX1JCX1dQVFJfUklORzEsIDApOwo+ICsgICAgICAgYWRldi0+aXJxLmloMS5lbmFibGVk ID0gZmFsc2U7Cj4gKyAgICAgICBhZGV2LT5pcnEuaWgxLnJwdHIgPSAwOwo+ICsKPiArICAgICAg IGloX3JiX2NudGwgPSBSUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX0NOVExfUklORzIp Owo+ICsgICAgICAgaWhfcmJfY250bCA9IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJf Q05UTF9SSU5HMiwgUkJfRU5BQkxFLCAwKTsKPiArICAgICAgIFdSRUczMl9TT0MxNShPU1NTWVMs IDAsIG1tSUhfUkJfQ05UTF9SSU5HMiwgaWhfcmJfY250bCk7Cj4gKyAgICAgICAvKiBzZXQgcnB0 ciwgd3B0ciB0byAwICovCj4gKyAgICAgICBXUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JC X1JQVFJfUklORzIsIDApOwo+ICsgICAgICAgV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9S Ql9XUFRSX1JJTkcyLCAwKTsKPiArICAgICAgIGFkZXYtPmlycS5paDIuZW5hYmxlZCA9IGZhbHNl Owo+ICsgICAgICAgYWRldi0+aXJxLmloMi5ycHRyID0gMDsKPiArfQo+ICsKPiArc3RhdGljIHVp bnQzMl90IHZlZ2ExMF9paF9yYl9jbnRsKHN0cnVjdCBhbWRncHVfaWhfcmluZyAqaWgsIHVpbnQz Ml90IGloX3JiX2NudGwpCj4gK3sKPiArICAgICAgIGludCByYl9idWZzeiA9IG9yZGVyX2Jhc2Vf MihpaC0+cmluZ19zaXplIC8gNCk7Cj4gKwo+ICsgICAgICAgaWhfcmJfY250bCA9IFJFR19TRVRf RklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1DX1NQQUNFLCBpaC0+dXNlX2J1c19hZGRyID8gMSA6IDQpOwo+ICsgICAgICAg aWhfcmJfY250bCA9IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdQVFJfT1ZFUkZMT1dfQ0xFQVIsIDEpOwo+ ICsgICAgICAgaWhfcmJfY250bCA9IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05U TCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdQVFJfT1ZFUkZMT1dfRU5B QkxFLCAxKTsKPiArICAgICAgIGloX3JiX2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3JiX2NudGws IElIX1JCX0NOVEwsIFJCX1NJWkUsIHJiX2J1ZnN6KTsKPiArICAgICAgIC8qIFJpbmcgQnVmZmVy IHdyaXRlIHBvaW50ZXIgd3JpdGViYWNrLiBJZiBlbmFibGVkLCBJSF9SQl9XUFRSIHJlZ2lzdGVy Cj4gKyAgICAgICAgKiB2YWx1ZSBpcyB3cml0dGVuIHRvIG1lbW9yeQo+ICsgICAgICAgICovCj4g KyAgICAgICBpaF9yYl9jbnRsID0gUkVHX1NFVF9GSUVMRChpaF9yYl9jbnRsLCBJSF9SQl9DTlRM LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1BUUl9XUklURUJBQ0tfRU5B QkxFLCAxKTsKPiArICAgICAgIGloX3JiX2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3JiX2NudGws IElIX1JCX0NOVEwsIE1DX1NOT09QLCAxKTsKPiArICAgICAgIGloX3JiX2NudGwgPSBSRUdfU0VU X0ZJRUxEKGloX3JiX2NudGwsIElIX1JCX0NOVEwsIE1DX1JPLCAwKTsKPiArICAgICAgIGloX3Ji X2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3JiX2NudGwsIElIX1JCX0NOVEwsIE1DX1ZNSUQsIDAp Owo+ICsKPiArICAgICAgIHJldHVybiBpaF9yYl9jbnRsOwo+ICB9Cj4KPiAgLyoqCj4gQEAgLTg2 LDkgKzEzNyw4IEBAIHN0YXRpYyB2b2lkIHZlZ2ExMF9paF9kaXNhYmxlX2ludGVycnVwdHMoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICAqLwo+ICBzdGF0aWMgaW50IHZlZ2ExMF9paF9p cnFfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgewo+IC0gICAgICAgc3RydWN0 IGFtZGdwdV9paF9yaW5nICppaCA9ICZhZGV2LT5pcnEuaWg7Cj4gKyAgICAgICBzdHJ1Y3QgYW1k Z3B1X2loX3JpbmcgKmloOwo+ICAgICAgICAgaW50IHJldCA9IDA7Cj4gLSAgICAgICBpbnQgcmJf YnVmc3o7Cj4gICAgICAgICB1MzIgaWhfcmJfY250bCwgaWhfZG9vcmJlbGxfcnRwcjsKPiAgICAg ICAgIHUzMiB0bXA7Cj4KPiBAQCAtOTcsMjYgKzE0NywxNSBAQCBzdGF0aWMgaW50IHZlZ2ExMF9p aF9pcnFfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPgo+ICAgICAgICAgYWRldi0+ bmJpb19mdW5jcy0+aWhfY29udHJvbChhZGV2KTsKPgo+IC0gICAgICAgaWhfcmJfY250bCA9IFJS RUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhfUkJfQ05UTCk7Cj4gKyAgICAgICBpaCA9ICZhZGV2 LT5pcnEuaWg7Cj4gICAgICAgICAvKiBSaW5nIEJ1ZmZlciBiYXNlLiBbMzk6OF0gb2YgNDAtYml0 IGFkZHJlc3Mgb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgcmluZyBidWZmZXIqLwo+IC0gICAgICAg V1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9CQVNFLCBhZGV2LT5pcnEuaWguZ3B1X2Fk ZHIgPj4gOCk7Cj4gLSAgICAgICBXUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX0JBU0Vf SEksCj4gLSAgICAgICAgICAgICAgICAgICAgKGFkZXYtPmlycS5paC5ncHVfYWRkciA+PiA0MCkg JiAweGZmKTsKPiAtICAgICAgIGloX3JiX2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3JiX2NudGws IElIX1JCX0NOVEwsIE1DX1NQQUNFLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWgtPnVzZV9idXNfYWRkciA/IDEgOiA0KTsKPiAtICAgICAgIHJiX2J1ZnN6ID0gb3JkZXJf YmFzZV8yKGFkZXYtPmlycS5paC5yaW5nX3NpemUgLyA0KTsKPiAtICAgICAgIGloX3JiX2NudGwg PSBSRUdfU0VUX0ZJRUxEKGloX3JiX2NudGwsIElIX1JCX0NOVEwsIFdQVFJfT1ZFUkZMT1dfQ0xF QVIsIDEpOwo+IC0gICAgICAgaWhfcmJfY250bCA9IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwg SUhfUkJfQ05UTCwgV1BUUl9PVkVSRkxPV19FTkFCTEUsIDEpOwo+IC0gICAgICAgaWhfcmJfY250 bCA9IFJFR19TRVRfRklFTEQoaWhfcmJfY250bCwgSUhfUkJfQ05UTCwgUkJfU0laRSwgcmJfYnVm c3opOwo+IC0gICAgICAgLyogUmluZyBCdWZmZXIgd3JpdGUgcG9pbnRlciB3cml0ZWJhY2suIElm IGVuYWJsZWQsIElIX1JCX1dQVFIgcmVnaXN0ZXIgdmFsdWUgaXMgd3JpdHRlbiB0byBtZW1vcnkg Ki8KPiAtICAgICAgIGloX3JiX2NudGwgPSBSRUdfU0VUX0ZJRUxEKGloX3JiX2NudGwsIElIX1JC X0NOVEwsIFdQVFJfV1JJVEVCQUNLX0VOQUJMRSwgMSk7Cj4gLSAgICAgICBpaF9yYl9jbnRsID0g UkVHX1NFVF9GSUVMRChpaF9yYl9jbnRsLCBJSF9SQl9DTlRMLCBNQ19TTk9PUCwgMSk7Cj4gLSAg ICAgICBpaF9yYl9jbnRsID0gUkVHX1NFVF9GSUVMRChpaF9yYl9jbnRsLCBJSF9SQl9DTlRMLCBN Q19STywgMCk7Cj4gLSAgICAgICBpaF9yYl9jbnRsID0gUkVHX1NFVF9GSUVMRChpaF9yYl9jbnRs LCBJSF9SQl9DTlRMLCBNQ19WTUlELCAwKTsKPiAtCj4gLSAgICAgICBpZiAoYWRldi0+aXJxLm1z aV9lbmFibGVkKQo+IC0gICAgICAgICAgICAgICBpaF9yYl9jbnRsID0gUkVHX1NFVF9GSUVMRChp aF9yYl9jbnRsLCBJSF9SQl9DTlRMLCBSUFRSX1JFQVJNLCAxKTsKPiArICAgICAgIFdSRUczMl9T T0MxNShPU1NTWVMsIDAsIG1tSUhfUkJfQkFTRSwgaWgtPmdwdV9hZGRyID4+IDgpOwo+ICsgICAg ICAgV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9CQVNFX0hJLCAoaWgtPmdwdV9hZGRy ID4+IDQwKSAmIDB4ZmYpOwo+Cj4gKyAgICAgICBpaF9yYl9jbnRsID0gUlJFRzMyX1NPQzE1KE9T U1NZUywgMCwgbW1JSF9SQl9DTlRMKTsKPiArICAgICAgIGloX3JiX2NudGwgPSB2ZWdhMTBfaWhf cmJfY250bChpaCwgaWhfcmJfY250bCk7Cj4gKyAgICAgICBpaF9yYl9jbnRsID0gUkVHX1NFVF9G SUVMRChpaF9yYl9jbnRsLCBJSF9SQl9DTlRMLCBSUFRSX1JFQVJNLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgISFhZGV2LT5pcnEubXNpX2VuYWJsZWQpOwo+ICAgICAgICAg V1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9DTlRMLCBpaF9yYl9jbnRsKTsKPgo+ICAg ICAgICAgLyogc2V0IHRoZSB3cml0ZWJhY2sgYWRkcmVzcyB3aGV0aGVyIGl0J3MgZW5hYmxlZCBv ciBub3QgKi8KPiBAQCAtMTMxLDE4ICsxNzAsNDkgQEAgc3RhdGljIGludCB2ZWdhMTBfaWhfaXJx X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4KPiAgICAgICAgIGloX2Rvb3JiZWxs X3J0cHIgPSBSUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX0RPT1JCRUxMX1JQVFIpOwo+ICAg ICAgICAgaWYgKGFkZXYtPmlycS5paC51c2VfZG9vcmJlbGwpIHsKPiAtICAgICAgICAgICAgICAg aWhfZG9vcmJlbGxfcnRwciA9IFJFR19TRVRfRklFTEQoaWhfZG9vcmJlbGxfcnRwciwgSUhfRE9P UkJFTExfUlBUUiwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgT0ZGU0VULCBhZGV2LT5pcnEuaWguZG9vcmJlbGxfaW5kZXgpOwo+IC0gICAgICAgICAg ICAgICBpaF9kb29yYmVsbF9ydHByID0gUkVHX1NFVF9GSUVMRChpaF9kb29yYmVsbF9ydHByLCBJ SF9ET09SQkVMTF9SUFRSLAo+ICsgICAgICAgICAgICAgICBpaF9kb29yYmVsbF9ydHByID0gUkVH X1NFVF9GSUVMRChpaF9kb29yYmVsbF9ydHByLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJSF9ET09SQkVMTF9SUFRSLCBPRkZTRVQsCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZXYtPmlycS5paC5k b29yYmVsbF9pbmRleCk7Cj4gKyAgICAgICAgICAgICAgIGloX2Rvb3JiZWxsX3J0cHIgPSBSRUdf U0VUX0ZJRUxEKGloX2Rvb3JiZWxsX3J0cHIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElIX0RPT1JCRUxMX1JQVFIsCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVOQUJMRSwgMSk7Cj4gICAgICAgICB9 IGVsc2Ugewo+IC0gICAgICAgICAgICAgICBpaF9kb29yYmVsbF9ydHByID0gUkVHX1NFVF9GSUVM RChpaF9kb29yYmVsbF9ydHByLCBJSF9ET09SQkVMTF9SUFRSLAo+ICsgICAgICAgICAgICAgICBp aF9kb29yYmVsbF9ydHByID0gUkVHX1NFVF9GSUVMRChpaF9kb29yYmVsbF9ydHByLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJSF9ET09SQkVMTF9S UFRSLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF TkFCTEUsIDApOwo+ICAgICAgICAgfQo+ICAgICAgICAgV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwg bW1JSF9ET09SQkVMTF9SUFRSLCBpaF9kb29yYmVsbF9ydHByKTsKPiAgICAgICAgIGFkZXYtPm5i aW9fZnVuY3MtPmloX2Rvb3JiZWxsX3JhbmdlKGFkZXYsIGFkZXYtPmlycS5paC51c2VfZG9vcmJl bGwsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGV2LT5p cnEuaWguZG9vcmJlbGxfaW5kZXgpOwo+Cj4gKyAgICAgICBpaCA9ICZhZGV2LT5pcnEuaWgxOwo+ ICsgICAgICAgLyogUmluZyBCdWZmZXIgYmFzZS4gWzM5OjhdIG9mIDQwLWJpdCBhZGRyZXNzIG9m IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJpbmcgYnVmZmVyKi8KPiArICAgICAgIFdSRUczMl9TT0Mx NShPU1NTWVMsIDAsIG1tSUhfUkJfQkFTRV9SSU5HMSwgaWgtPmdwdV9hZGRyID4+IDgpOwo+ICsg ICAgICAgV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9CQVNFX0hJX1JJTkcxLAo+ICsg ICAgICAgICAgICAgICAgICAgIChpaC0+Z3B1X2FkZHIgPj4gNDApICYgMHhmZik7Cj4gKwo+ICsg ICAgICAgaWhfcmJfY250bCA9IFJSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhfUkJfQ05UTF9S SU5HMSk7Cj4gKyAgICAgICBpaF9yYl9jbnRsID0gdmVnYTEwX2loX3JiX2NudGwoaWgsIGloX3Ji X2NudGwpOwo+ICsgICAgICAgV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9DTlRMX1JJ TkcxLCBpaF9yYl9jbnRsKTsKPiArCj4gKyAgICAgICAvKiBzZXQgcnB0ciwgd3B0ciB0byAwICov Cj4gKyAgICAgICBXUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX1JQVFJfUklORzEsIDAp Owo+ICsgICAgICAgV1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9XUFRSX1JJTkcxLCAw KTsKPiArCj4gKyAgICAgICBpaCA9ICZhZGV2LT5pcnEuaWgyOwo+ICsgICAgICAgLyogUmluZyBC dWZmZXIgYmFzZS4gWzM5OjhdIG9mIDQwLWJpdCBhZGRyZXNzIG9mIHRoZSBiZWdpbm5pbmcgb2Yg dGhlIHJpbmcgYnVmZmVyKi8KPiArICAgICAgIFdSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhf UkJfQkFTRV9SSU5HMiwgaWgtPmdwdV9hZGRyID4+IDgpOwo+ICsgICAgICAgV1JFRzMyX1NPQzE1 KE9TU1NZUywgMCwgbW1JSF9SQl9CQVNFX0hJX1JJTkcyLAo+ICsgICAgICAgICAgICAgICAgICAg IChpaC0+Z3B1X2FkZHIgPj4gNDApICYgMHhmZik7Cj4gKwo+ICsgICAgICAgaWhfcmJfY250bCA9 IFJSRUczMl9TT0MxNShPU1NTWVMsIDAsIG1tSUhfUkJfQ05UTF9SSU5HMSk7Cj4gKyAgICAgICBp aF9yYl9jbnRsID0gdmVnYTEwX2loX3JiX2NudGwoaWgsIGloX3JiX2NudGwpOwo+ICsgICAgICAg V1JFRzMyX1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9DTlRMX1JJTkcyLCBpaF9yYl9jbnRsKTsK PiArCj4gKyAgICAgICAvKiBzZXQgcnB0ciwgd3B0ciB0byAwICovCj4gKyAgICAgICBXUkVHMzJf U09DMTUoT1NTU1lTLCAwLCBtbUlIX1JCX1JQVFJfUklORzIsIDApOwo+ICsgICAgICAgV1JFRzMy X1NPQzE1KE9TU1NZUywgMCwgbW1JSF9SQl9XUFRSX1JJTkcyLCAwKTsKPiArCj4gICAgICAgICB0 bXAgPSBSUkVHMzJfU09DMTUoT1NTU1lTLCAwLCBtbUlIX1NUT1JNX0NMSUVOVF9MSVNUX0NOVEwp Owo+ICAgICAgICAgdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIElIX1NUT1JNX0NMSUVOVF9MSVNU X0NOVEwsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMSUVOVDE4X0lTX1NUT1JNX0NM SUVOVCwgMSk7Cj4gQEAgLTI5MCw2ICszNjAsMTUgQEAgc3RhdGljIGludCB2ZWdhMTBfaWhfc3df aW5pdCh2b2lkICpoYW5kbGUpCj4gICAgICAgICBpZiAocikKPiAgICAgICAgICAgICAgICAgcmV0 dXJuIHI7Cj4KPiArICAgICAgIHIgPSBhbWRncHVfaWhfcmluZ19pbml0KGFkZXYsICZhZGV2LT5p cnEuaWgxLCBQQUdFX1NJWkUsIHRydWUpOwo+ICsgICAgICAgaWYgKHIpCj4gKyAgICAgICAgICAg ICAgIHJldHVybiByOwo+ICsKPiArICAgICAgIHIgPSBhbWRncHVfaWhfcmluZ19pbml0KGFkZXYs ICZhZGV2LT5pcnEuaWgyLCBQQUdFX1NJWkUsIHRydWUpOwo+ICsgICAgICAgaWYgKHIpCj4gKyAg ICAgICAgICAgICAgIHJldHVybiByOwo+ICsKPiArICAgICAgIC8qIFRPRE8gYWRkIGRvb3JiZWxs IGZvciBJSDEgJiBJSDIgYXMgd2VsbCAqLwo+ICAgICAgICAgYWRldi0+aXJxLmloLnVzZV9kb29y YmVsbCA9IHRydWU7Cj4gICAgICAgICBhZGV2LT5pcnEuaWguZG9vcmJlbGxfaW5kZXggPSBhZGV2 LT5kb29yYmVsbF9pbmRleC5paCA8PCAxOwo+Cj4gQEAgLTMwMyw2ICszODIsOCBAQCBzdGF0aWMg aW50IHZlZ2ExMF9paF9zd19maW5pKHZvaWQgKmhhbmRsZSkKPiAgICAgICAgIHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwo+Cj4gICAg ICAgICBhbWRncHVfaXJxX2ZpbmkoYWRldik7Cj4gKyAgICAgICBhbWRncHVfaWhfcmluZ19maW5p KGFkZXYsICZhZGV2LT5pcnEuaWgyKTsKPiArICAgICAgIGFtZGdwdV9paF9yaW5nX2ZpbmkoYWRl diwgJmFkZXYtPmlycS5paDEpOwo+ICAgICAgICAgYW1kZ3B1X2loX3JpbmdfZmluaShhZGV2LCAm YWRldi0+aXJxLmloKTsKPgo+ICAgICAgICAgcmV0dXJuIDA7Cj4gLS0KPiAyLjE3LjEKPgo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gYW1kLWdmeCBt YWlsaW5nIGxpc3QKPiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAph bWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK