From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry (Junwei)" Subject: Re: [PATCH 1/7] drm/amdgpu: cleanup adjust_mc_addr handling v2 Date: Thu, 25 May 2017 10:10:59 +0800 Message-ID: <59263D33.3070706@amd.com> References: <1495012972-20698-1-git-send-email-deathsimple@vodafone.de> <591D323A.5000304@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: 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?Q2hyaXN0aWFuIEvDtm5pZw==?= , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org T24gMDUvMjQvMjAxNyAwNToxOCBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBBbSAxOC4w NS4yMDE3IHVtIDA3OjMzIHNjaHJpZWIgWmhhbmcsIEplcnJ5IChKdW53ZWkpOgo+PiBPbiAwNS8x Ny8yMDE3IDA1OjIyIFBNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+Pj4gW1NOSVBdCj4+PiAr c3RhdGljIHVpbnQ2NF90IGdtY192Nl8wX2dldF92bV9wZGUoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsIHVpbnQ2NF90IGFkZHIpCj4+PiArewo+Pj4gKyAgICBCVUdfT04oYWRkciAmIDB4RkZG RkYwMDAwMDAwRkZGVUxMKTsKPj4+ICsgICAgcmV0dXJuIGFkZHI7Cj4+PiArfQo+Pgo+PiBKdXN0 IHdvbmRlciB3aHkgd2UgZGlkbid0IHJldHVybiB0aGUgYWRkcmVzcyBhcyBiZWxvdz8KPj4gYWRl di0+dm1fbWFuYWdlci52cmFtX2Jhc2Vfb2Zmc2V0ICsgYWRkcgo+Cj4gVGhhdCBpcyBhIHJlYWxs eSBnb29kIHF1ZXN0aW9uIGFuZCBJIGNvdWxkbid0IGZpZ3VyZSBvdXQgYWxsIHRoZSBkZXRhaWxz IGVpdGhlci4KPgo+IEkndmUgdGVzdGVkIGl0IG9uIGFuIEthdmVyaSBhbmQgaXQgc3RpbGwgc2Vl bXMgdG8gd29yayBmaW5lLCBzbyB0aGUgbG9naWMgaXMKPiBpbmRlZWQgY29ycmVjdC4KClRoYW5r cyBmb3IgeW91ciB2ZXJpZmljYXRpb24uCgpUaGVuIGl0J3MgYSBtYWtlc2hpZnQgY2hhbmdlIGZv ciBub3csIGFsdGhvdWdoIGl0IGxvb2tzIGEgbGl0dGxlIHN1c3BpY2lvdXMuCkxldCdzIGRpZyBp dCBtb3JlIGluIHRoZSBmdXR1cmUgd2l0aCBIVyB0ZWFtLgpQbGVhc2UgZmVlbCBmcmVlIHRvIGFk ZCBteSBSQiBmb3IgdGhlIHYzIG9uZS4KClJldmlld2VkLWJ5OiBKdW53ZWkgWmhhbmcgPEplcnJ5 LlpoYW5nQGFtZC5jb20+CgpKZXJyeQoKPgo+PiBEb2VzIHRoYXQgY2F1c2UgZ21jNn5nbWM4IGhh cyBubyBBUFUgc3VwcG9ydCBvZmZpY2lhbGx5Pwo+Cj4gTm8sIG9ubHkgdGhlIHBybyBkcml2ZXIg ZG9lc24ndCBzdXBwb3J0IEFQVXMuIFRoZSBvcGVuIHNvdXJjZSBkcml2ZXIgd29ya3MKPiBwZXJm ZWN0bHkgZmluZSBvbiB0aGVtLgo+Cj4+IE9yIEkgbWlzcyBhbnkgaW5mbyBhYm91dCB0aGVtPwo+ Cj4gVGhlIGRvY3VtZW50YXRpb24gZm9yIGdmeDYtOCBpcyB2ZXJ5IHVuY2xlYXIgb24gdGhpcy4K Pgo+IEl0IHNheXMgdGhhdCB0aGUgcmVnaXN0ZXJzIGFuZCBQREUgc2hvdWxkIHVzZSBwaHlzaWNh bCBhZGRyZXNzZXMsIGJ1dCBmcm9tIG15Cj4gdGVzdGluZyB0aGF0IGlzbid0IHRoZSBjYXNlLgo+ Cj4gR29pbmcgdG8gcGluZyB0aGUgaGFyZHdhcmUgZGV2IG9uIHRoaXMgb25jZSBtb3JlIHdoZW4g SSBoYXZlIHRpbWUuCj4KPiBSZWdhcmRzLAo+IENocmlzdGlhbi4KPgo+Pgo+PiBKZXJyeQo+Pgo+ Pj4gKwo+Pj4gICBzdGF0aWMgdm9pZCBnbWNfdjZfMF9zZXRfZmF1bHRfZW5hYmxlX2RlZmF1bHQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYm9vbCB2YWx1ZSkKPj4+ICAgewo+Pj4gQEAgLTExMjcsNiArMTEzMyw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgYW1kZ3B1X2dhcnRfZnVuY3MKPj4+IGdtY192Nl8wX2dhcnRfZnVuY3MgPSB7 Cj4+PiAgICAgICAuZmx1c2hfZ3B1X3RsYiA9IGdtY192Nl8wX2dhcnRfZmx1c2hfZ3B1X3RsYiwK Pj4+ICAgICAgIC5zZXRfcHRlX3BkZSA9IGdtY192Nl8wX2dhcnRfc2V0X3B0ZV9wZGUsCj4+PiAg ICAgICAuc2V0X3BydCA9IGdtY192Nl8wX3NldF9wcnQsCj4+PiArICAgIC5nZXRfdm1fcGRlID0g Z21jX3Y2XzBfZ2V0X3ZtX3BkZSwKPj4+ICAgICAgIC5nZXRfdm1fcHRlX2ZsYWdzID0gZ21jX3Y2 XzBfZ2V0X3ZtX3B0ZV9mbGFncwo+Pj4gICB9Owo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2dtY192N18wLmMKPj4+IGluZGV4IDk2NzUwNWIuLjRmMTQwZTggMTAwNjQ0Cj4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCj4+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCj4+PiBAQCAtNDcyLDYgKzQ3MiwxMiBA QCBzdGF0aWMgdWludDY0X3QgZ21jX3Y3XzBfZ2V0X3ZtX3B0ZV9mbGFncyhzdHJ1Y3QKPj4+IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCj4+PiAgICAgICByZXR1cm4gcHRlX2ZsYWc7Cj4+PiAgIH0KPj4+ Cj4+PiArc3RhdGljIHVpbnQ2NF90IGdtY192N18wX2dldF92bV9wZGUoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsIHVpbnQ2NF90IGFkZHIpCj4+PiArewo+Pj4gKyAgICBCVUdfT04oYWRkciAm IDB4RkZGRkYwMDAwMDAwRkZGVUxMKTsKPj4+ICsgICAgcmV0dXJuIGFkZHI7Cj4+PiArfQo+Pj4g Kwo+Pj4gICAvKioKPj4+ICAgICogZ21jX3Y4XzBfc2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0IC0g dXBkYXRlIFZNIGZhdWx0IGhhbmRsaW5nCj4+PiAgICAqCj4+PiBAQCAtMTI5Myw3ICsxMjk5LDgg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfZ2FydF9mdW5jcwo+Pj4gZ21jX3Y3XzBfZ2Fy dF9mdW5jcyA9IHsKPj4+ICAgICAgIC5mbHVzaF9ncHVfdGxiID0gZ21jX3Y3XzBfZ2FydF9mbHVz aF9ncHVfdGxiLAo+Pj4gICAgICAgLnNldF9wdGVfcGRlID0gZ21jX3Y3XzBfZ2FydF9zZXRfcHRl X3BkZSwKPj4+ICAgICAgIC5zZXRfcHJ0ID0gZ21jX3Y3XzBfc2V0X3BydCwKPj4+IC0gICAgLmdl dF92bV9wdGVfZmxhZ3MgPSBnbWNfdjdfMF9nZXRfdm1fcHRlX2ZsYWdzCj4+PiArICAgIC5nZXRf dm1fcHRlX2ZsYWdzID0gZ21jX3Y3XzBfZ2V0X3ZtX3B0ZV9mbGFncywKPj4+ICsgICAgLmdldF92 bV9wZGUgPSBnbWNfdjdfMF9nZXRfdm1fcGRlCj4+PiAgIH07Cj4+Pgo+Pj4gICBzdGF0aWMgY29u c3Qgc3RydWN0IGFtZGdwdV9pcnFfc3JjX2Z1bmNzIGdtY192N18wX2lycV9mdW5jcyA9IHsKPj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jCj4+PiBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMKPj4+IGluZGV4IDNiNWVhMGYu LmYwNWMwMzQgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNf djhfMC5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jCj4+ PiBAQCAtNjU2LDYgKzY1NiwxMiBAQCBzdGF0aWMgdWludDY0X3QgZ21jX3Y4XzBfZ2V0X3ZtX3B0 ZV9mbGFncyhzdHJ1Y3QKPj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+PiAgICAgICByZXR1cm4g cHRlX2ZsYWc7Cj4+PiAgIH0KPj4+Cj4+PiArc3RhdGljIHVpbnQ2NF90IGdtY192OF8wX2dldF92 bV9wZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQ2NF90IGFkZHIpCj4+PiArewo+ Pj4gKyAgICBCVUdfT04oYWRkciAmIDB4RkZGMDAwMDAwMDAwMEZGRlVMTCk7Cj4+PiArICAgIHJl dHVybiBhZGRyOwo+Pj4gK30KPj4+ICsKPj4+ICAgLyoqCj4+PiAgICAqIGdtY192OF8wX3NldF9m YXVsdF9lbmFibGVfZGVmYXVsdCAtIHVwZGF0ZSBWTSBmYXVsdCBoYW5kbGluZwo+Pj4gICAgKgo+ Pj4gQEAgLTE2MTIsNyArMTYxOCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2dhcnRf ZnVuY3MKPj4+IGdtY192OF8wX2dhcnRfZnVuY3MgPSB7Cj4+PiAgICAgICAuZmx1c2hfZ3B1X3Rs YiA9IGdtY192OF8wX2dhcnRfZmx1c2hfZ3B1X3RsYiwKPj4+ICAgICAgIC5zZXRfcHRlX3BkZSA9 IGdtY192OF8wX2dhcnRfc2V0X3B0ZV9wZGUsCj4+PiAgICAgICAuc2V0X3BydCA9IGdtY192OF8w X3NldF9wcnQsCj4+PiAtICAgIC5nZXRfdm1fcHRlX2ZsYWdzID0gZ21jX3Y4XzBfZ2V0X3ZtX3B0 ZV9mbGFncwo+Pj4gKyAgICAuZ2V0X3ZtX3B0ZV9mbGFncyA9IGdtY192OF8wX2dldF92bV9wdGVf ZmxhZ3MsCj4+PiArICAgIC5nZXRfdm1fcGRlID0gZ21jX3Y4XzBfZ2V0X3ZtX3BkZQo+Pj4gICB9 Owo+Pj4KPj4+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfaXJxX3NyY19mdW5jcyBnbWNf djhfMF9pcnFfZnVuY3MgPSB7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ21jX3Y5XzAuYwo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlf MC5jCj4+PiBpbmRleCAxOWUxMDI3Li4wNDdiMWE3IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZ21jX3Y5XzAuYwo+Pj4gQEAgLTM1OCwxNyArMzU4LDE5IEBAIHN0YXRpYyB1aW50 NjRfdCBnbWNfdjlfMF9nZXRfdm1fcHRlX2ZsYWdzKHN0cnVjdAo+Pj4gYW1kZ3B1X2RldmljZSAq YWRldiwKPj4+ICAgICAgIHJldHVybiBwdGVfZmxhZzsKPj4+ICAgfQo+Pj4KPj4+IC1zdGF0aWMg dTY0IGdtY192OV8wX2FkanVzdF9tY19hZGRyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1 NjQgbWNfYWRkcikKPj4+ICtzdGF0aWMgdTY0IGdtY192OV8wX2dldF92bV9wZGUoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsIHU2NCBhZGRyKQo+Pj4gICB7Cj4+PiAtICAgIHJldHVybiBhZGV2 LT52bV9tYW5hZ2VyLnZyYW1fYmFzZV9vZmZzZXQgKyBtY19hZGRyIC0gYWRldi0+bWMudnJhbV9z dGFydDsKPj4+ICsgICAgYWRkciA9IGFkZXYtPnZtX21hbmFnZXIudnJhbV9iYXNlX29mZnNldCAr IGFkZHIgLSBhZGV2LT5tYy52cmFtX3N0YXJ0Owo+Pj4gKyAgICBCVUdfT04oYWRkciAmIDB4RkZG RjAwMDAwMDAwMDAzRlVMTCk7Cj4+PiArICAgIHJldHVybiBhZGRyOwo+Pj4gICB9Cj4+Pgo+Pj4g ICBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9nYXJ0X2Z1bmNzIGdtY192OV8wX2dhcnRfZnVu Y3MgPSB7Cj4+PiAgICAgICAuZmx1c2hfZ3B1X3RsYiA9IGdtY192OV8wX2dhcnRfZmx1c2hfZ3B1 X3RsYiwKPj4+ICAgICAgIC5zZXRfcHRlX3BkZSA9IGdtY192OV8wX2dhcnRfc2V0X3B0ZV9wZGUs Cj4+PiAtICAgIC5nZXRfdm1fcHRlX2ZsYWdzID0gZ21jX3Y5XzBfZ2V0X3ZtX3B0ZV9mbGFncywK Pj4+IC0gICAgLmFkanVzdF9tY19hZGRyID0gZ21jX3Y5XzBfYWRqdXN0X21jX2FkZHIsCj4+PiAg ICAgICAuZ2V0X2ludmFsaWRhdGVfcmVxID0gZ21jX3Y5XzBfZ2V0X2ludmFsaWRhdGVfcmVxLAo+ Pj4gKyAgICAuZ2V0X3ZtX3B0ZV9mbGFncyA9IGdtY192OV8wX2dldF92bV9wdGVfZmxhZ3MsCj4+ PiArICAgIC5nZXRfdm1fcGRlID0gZ21jX3Y5XzBfZ2V0X3ZtX3BkZQo+Pj4gICB9Owo+Pj4KPj4+ ICAgc3RhdGljIHZvaWQgZ21jX3Y5XzBfc2V0X2dhcnRfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2Rt YV92NF8wLmMKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8wLmMKPj4+ IGluZGV4IDkxY2Y3ZTYuLmZiNmY0YjMgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9zZG1hX3Y0XzAuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvc2RtYV92NF8wLmMKPj4+IEBAIC0xMTQzLDEwICsxMTQzLDggQEAgc3RhdGljIHZvaWQgc2Rt YV92NF8wX3JpbmdfZW1pdF92bV9mbHVzaChzdHJ1Y3QKPj4+IGFtZGdwdV9yaW5nICpyaW5nLAo+ Pj4gICAgICAgdWludDMyX3QgcmVxID0gcmluZy0+YWRldi0+Z2FydC5nYXJ0X2Z1bmNzLT5nZXRf aW52YWxpZGF0ZV9yZXEodm1faWQpOwo+Pj4gICAgICAgdW5zaWduZWQgZW5nID0gcmluZy0+dm1f aW52X2VuZzsKPj4+Cj4+PiAtICAgIHBkX2FkZHIgPSByaW5nLT5hZGV2LT5nYXJ0LmdhcnRfZnVu Y3MtPmFkanVzdF9tY19hZGRyKHJpbmctPmFkZXYsCj4+PiBwZF9hZGRyKTsKPj4+IC0gICAgcGRf YWRkciA9IHBkX2FkZHIgfCAweDE7IC8qIHZhbGlkIGJpdCAqLwo+Pj4gLSAgICAvKiBub3cgb25s eSB1c2UgcGh5c2ljYWwgYmFzZSBhZGRyZXNzIG9mIFBERSBhbmQgdmFsaWQgKi8KPj4+IC0gICAg QlVHX09OKHBkX2FkZHIgJiAweEZGRkYwMDAwMDAwMDAwM0VVTEwpOwo+Pj4gKyAgICBwZF9hZGRy ID0gYW1kZ3B1X2dhcnRfZ2V0X3ZtX3BkZShyaW5nLT5hZGV2LCBwZF9hZGRyKTsKPj4+ICsgICAg cGRfYWRkciB8PSBBTURHUFVfUFRFX1ZBTElEOwo+Pj4KPj4+ICAgICAgIGFtZGdwdV9yaW5nX3dy aXRlKHJpbmcsIFNETUFfUEtUX0hFQURFUl9PUChTRE1BX09QX1NSQk1fV1JJVEUpIHwKPj4+ICAg ICAgICAgICAgICAgICBTRE1BX1BLVF9TUkJNX1dSSVRFX0hFQURFUl9CWVRFX0VOKDB4ZikpOwo+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92N18wLmMKPj4+ IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y3XzAuYwo+Pj4gaW5kZXggMjJmNDJm My4uMTk5N2VjOCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2 ZF92N18wLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92N18wLmMK Pj4+IEBAIC0xMzE2LDEwICsxMzE2LDggQEAgc3RhdGljIHZvaWQgdXZkX3Y3XzBfcmluZ19lbWl0 X3ZtX2ZsdXNoKHN0cnVjdAo+Pj4gYW1kZ3B1X3JpbmcgKnJpbmcsCj4+PiAgICAgICB1aW50MzJf dCBkYXRhMCwgZGF0YTEsIG1hc2s7Cj4+PiAgICAgICB1bnNpZ25lZCBlbmcgPSByaW5nLT52bV9p bnZfZW5nOwo+Pj4KPj4+IC0gICAgcGRfYWRkciA9IHJpbmctPmFkZXYtPmdhcnQuZ2FydF9mdW5j cy0+YWRqdXN0X21jX2FkZHIocmluZy0+YWRldiwKPj4+IHBkX2FkZHIpOwo+Pj4gLSAgICBwZF9h ZGRyID0gcGRfYWRkciB8IDB4MTsgLyogdmFsaWQgYml0ICovCj4+PiAtICAgIC8qIG5vdyBvbmx5 IHVzZSBwaHlzaWNhbCBiYXNlIGFkZHJlc3Mgb2YgUERFIGFuZCB2YWxpZCAqLwo+Pj4gLSAgICBC VUdfT04ocGRfYWRkciAmIDB4RkZGRjAwMDAwMDAwMDAzRVVMTCk7Cj4+PiArICAgIHBkX2FkZHIg PSBhbWRncHVfZ2FydF9nZXRfdm1fcGRlKHJpbmctPmFkZXYsIHBkX2FkZHIpOwo+Pj4gKyAgICBw ZF9hZGRyIHw9IEFNREdQVV9QVEVfVkFMSUQ7Cj4+Pgo+Pj4gICAgICAgZGF0YTAgPSAoaHViLT5j dHgwX3B0Yl9hZGRyX2hpMzIgKyB2bV9pZCAqIDIpIDw8IDI7Cj4+PiAgICAgICBkYXRhMSA9IHVw cGVyXzMyX2JpdHMocGRfYWRkcik7Cj4+PiBAQCAtMTM1OCwxMCArMTM1Niw4IEBAIHN0YXRpYyB2 b2lkIHV2ZF92N18wX2VuY19yaW5nX2VtaXRfdm1fZmx1c2goc3RydWN0Cj4+PiBhbWRncHVfcmlu ZyAqcmluZywKPj4+ICAgICAgIHVpbnQzMl90IHJlcSA9IHJpbmctPmFkZXYtPmdhcnQuZ2FydF9m dW5jcy0+Z2V0X2ludmFsaWRhdGVfcmVxKHZtX2lkKTsKPj4+ICAgICAgIHVuc2lnbmVkIGVuZyA9 IHJpbmctPnZtX2ludl9lbmc7Cj4+Pgo+Pj4gLSAgICBwZF9hZGRyID0gcmluZy0+YWRldi0+Z2Fy dC5nYXJ0X2Z1bmNzLT5hZGp1c3RfbWNfYWRkcihyaW5nLT5hZGV2LAo+Pj4gcGRfYWRkcik7Cj4+ PiAtICAgIHBkX2FkZHIgPSBwZF9hZGRyIHwgMHgxOyAvKiB2YWxpZCBiaXQgKi8KPj4+IC0gICAg Lyogbm93IG9ubHkgdXNlIHBoeXNpY2FsIGJhc2UgYWRkcmVzcyBvZiBQREUgYW5kIHZhbGlkICov Cj4+PiAtICAgIEJVR19PTihwZF9hZGRyICYgMHhGRkZGMDAwMDAwMDAwMDNFVUxMKTsKPj4+ICsg ICAgcGRfYWRkciA9IGFtZGdwdV9nYXJ0X2dldF92bV9wZGUocmluZy0+YWRldiwgcGRfYWRkcik7 Cj4+PiArICAgIHBkX2FkZHIgfD0gQU1ER1BVX1BURV9WQUxJRDsKPj4+Cj4+PiAgICAgICBhbWRn cHVfcmluZ193cml0ZShyaW5nLCBIRVZDX0VOQ19DTURfUkVHX1dSSVRFKTsKPj4+ICAgICAgIGFt ZGdwdV9yaW5nX3dyaXRlKHJpbmcsICAgIChodWItPmN0eDBfcHRiX2FkZHJfaGkzMiArIHZtX2lk ICogMikgPDwgMik7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv dmNlX3Y0XzAuYwo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y2VfdjRfMC5jCj4+ PiBpbmRleCAwN2IyYWM3Li44ZGJkMGI3IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvdmNlX3Y0XzAuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvdmNlX3Y0XzAuYwo+Pj4gQEAgLTkyNiwxMCArOTI2LDggQEAgc3RhdGljIHZvaWQgdmNlX3Y0 XzBfZW1pdF92bV9mbHVzaChzdHJ1Y3QgYW1kZ3B1X3JpbmcKPj4+ICpyaW5nLAo+Pj4gICAgICAg dWludDMyX3QgcmVxID0gcmluZy0+YWRldi0+Z2FydC5nYXJ0X2Z1bmNzLT5nZXRfaW52YWxpZGF0 ZV9yZXEodm1faWQpOwo+Pj4gICAgICAgdW5zaWduZWQgZW5nID0gcmluZy0+dm1faW52X2VuZzsK Pj4+Cj4+PiAtICAgIHBkX2FkZHIgPSByaW5nLT5hZGV2LT5nYXJ0LmdhcnRfZnVuY3MtPmFkanVz dF9tY19hZGRyKHJpbmctPmFkZXYsCj4+PiBwZF9hZGRyKTsKPj4+IC0gICAgcGRfYWRkciA9IHBk X2FkZHIgfCAweDE7IC8qIHZhbGlkIGJpdCAqLwo+Pj4gLSAgICAvKiBub3cgb25seSB1c2UgcGh5 c2ljYWwgYmFzZSBhZGRyZXNzIG9mIFBERSBhbmQgdmFsaWQgKi8KPj4+IC0gICAgQlVHX09OKHBk X2FkZHIgJiAweEZGRkYwMDAwMDAwMDAwM0VVTEwpOwo+Pj4gKyAgICBwZF9hZGRyID0gYW1kZ3B1 X2dhcnRfZ2V0X3ZtX3BkZShyaW5nLT5hZGV2LCBwZF9hZGRyKTsKPj4+ICsgICAgcGRfYWRkciB8 PSBBTURHUFVfUFRFX1ZBTElEOwo+Pj4KPj4+ICAgICAgIGFtZGdwdV9yaW5nX3dyaXRlKHJpbmcs IFZDRV9DTURfUkVHX1dSSVRFKTsKPj4+ICAgICAgIGFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsICAg IChodWItPmN0eDBfcHRiX2FkZHJfaGkzMiArIHZtX2lkICogMikgPDwgMik7Cj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YxXzAuYwo+Pj4gYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjFfMC5jCj4+PiBpbmRleCBhZDE4NjJmLi5iMmQ5OTVi IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YxXzAuYwo+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YxXzAuYwo+Pj4gQEAgLTg4 Miw5ICs4ODIsOCBAQCBzdGF0aWMgdm9pZCB2Y25fdjFfMF9kZWNfcmluZ19lbWl0X3ZtX2ZsdXNo KHN0cnVjdAo+Pj4gYW1kZ3B1X3JpbmcgKnJpbmcsCj4+PiAgICAgICB1aW50MzJfdCBkYXRhMCwg ZGF0YTEsIG1hc2s7Cj4+PiAgICAgICB1bnNpZ25lZCBlbmcgPSByaW5nLT52bV9pbnZfZW5nOwo+ Pj4KPj4+IC0gICAgcGRfYWRkciA9IHBkX2FkZHIgfCAweDE7IC8qIHZhbGlkIGJpdCAqLwo+Pj4g LSAgICAvKiBub3cgb25seSB1c2UgcGh5c2ljYWwgYmFzZSBhZGRyZXNzIG9mIFBERSBhbmQgdmFs aWQgKi8KPj4+IC0gICAgQlVHX09OKHBkX2FkZHIgJiAweEZGRkYwMDAwMDAwMDAwM0VVTEwpOwo+ Pj4gKyAgICBwZF9hZGRyID0gYW1kZ3B1X2dhcnRfZ2V0X3ZtX3BkZShyaW5nLT5hZGV2LCBwZF9h ZGRyKTsKPj4+ICsgICAgcGRfYWRkciB8PSBBTURHUFVfUFRFX1ZBTElEOwo+Pj4KPj4+ICAgICAg IGRhdGEwID0gKGh1Yi0+Y3R4MF9wdGJfYWRkcl9oaTMyICsgdm1faWQgKiAyKSA8PCAyOwo+Pj4g ICAgICAgZGF0YTEgPSB1cHBlcl8zMl9iaXRzKHBkX2FkZHIpOwo+Pj4KPgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAph bWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK