From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry (Junwei)" Subject: Re: [PATCH] drm/amdgpu: correctly sign extend 48bit addresses v3 Date: Thu, 30 Aug 2018 10:43:52 +0800 Message-ID: <5B8759E8.9090408@amd.com> References: <20180828121716.17269-1-christian.koenig@amd.com> <5B85FF0C.7080308@amd.com> <7fc07a91-2d11-256b-6bf1-571012841d82@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <7fc07a91-2d11-256b-6bf1-571012841d82-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: christian.koenig-5C7GfCeVMHo@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org T24gMDgvMjkvMjAxOCAwNTozOSBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBBbSAyOS4w OC4yMDE4IHVtIDA0OjAzIHNjaHJpZWIgWmhhbmcsIEplcnJ5IChKdW53ZWkpOgo+PiBPbiAwOC8y OC8yMDE4IDA4OjE3IFBNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+Pj4gQ29ycmVjdCBzaWdu IGV4dGVuZCB0aGUgR01DIGFkZHJlc3NlcyB0byA0OGJpdC4KPj4KPj4gQ291bGQgeW91IGV4cGxh aW4gYSBiaXQgbW9yZSB3aHkgdG8gZXh0ZW5kIHRoZSBzaWduPwo+Cj4gVGhlIGhhcmR3YXJlIHdv cmtzIGxpa2UgdGhpcywgaW4gb3RoZXIgd29yZHMgd2hlbiBiaXQgNDcgaXMgc2V0IHdlIG11c3Qg ZXh0ZW5kIHRoYXQgaW50byBiaXRzIDQ4LTYzLgoKVGhhbmtzLiBmaW5lLgoKPgo+PiB0aGUgYWRk cmVzcyBpcyB1aW50NjRfdC4gaXMgaWYgZmFpbGVkIGluIHNvbWUgY2FzZT8KPgo+IFdoYXQgZG8g eW91IG1lYW4/CgpTb3JyeSBmb3IgdGhlIHR5cG8gd2l0aG91dCBmaW5pc2hpbmcgdGhlIHNlbnRl bmNlIGJlZm9yZSBzZW5kaW5nLgoKSSBtZWFuIGV2ZW4gaWYgdGhlIGFkZHJlc3MgaXMgdWludDY0 X3QsIHN0aWxsIG5lZWRzIHRvIGV4dGVuZCB0aGUgc2lnbj8Kd2hhdCBJIHdhcyB0aGlua2luZyBp cyB0aGF0IHRoZSBpbnQ2NF90IG5lZWRzIHRvIGRvIHRoaXMuCgo+Cj4+Cj4+ID4gLS8qIFZBIGhv bGUgZm9yIDQ4Yml0IGFkZHJlc3NlcyBvbiBWZWdhMTAgKi8KPj4gPiAtI2RlZmluZSBBTURHUFVf VkFfSE9MRV9TVEFSVCAweDAwMDA4MDAwMDAwMDAwMDBVTEwKPj4gPiAtI2RlZmluZSBBTURHUFVf VkFfSE9MRV9FTkQgICAgICAgICAgICAweGZmZmY4MDAwMDAwMDAwMDBVTEwKPj4KPj4gQlRXLCB0 aGUgaG9sZSBmb3IgNDhiaXQgaXMgYWN0dWFsbHkgNDcgYml0IGxlZnQsIGFueSBiYWNrZ3JvdW5k IGZvciB0aGF0Pwo+Cj4gV2VsbCBiaXRzIHN0YXJ0IGNvdW50aW5nIGF0IHplcm8uIFNvIHRoZSA0 OGJpdCBhZGRyZXNzZXMgaGF2ZSBiaXRzIDAtNDcuCgpUaGUgVkEgaG9sZSBpcyBnb2luZyB0byBj YXRjaCB0aGUgVkEgYWRkcmVzcyBvdXQgb2Ygbm9ybWFsIHJhbmdlLCB3aGljaCBmb3IgdmVnYTEw IGlzIDQ4LWJpdD8KaWYgc28sIDB4ODAwMF8wMDAwXzAwMDAgVUxMIGhvbGRzIGZyb20gMH40NiBi aXRzLCBzdGFydGluZyBmcm9tIDEyOFRCLCBidXQgdmVnYTEwIFZBIGlzIDI1NlRCCgppdCBhbHNv IGNvdWxkIGJlIGZvdW5kIGluIG9sZCBjb2RlIGdtY192OS5jLCB0aGUgbWNfbWFzayBob2xkcyA0 OC1iaXRzIGFkZHJlc3MsIGxpa2UgYmVsb3c6CgoJYWRldi0+Z21jLm1jX21hc2sgPSAweGZmZmZf ZmZmZl9mZmZmIFVMTDsgLyogNDggYml0IE1DICovCgpCdXQgdGhlIFZBIGhvbGUgc3RhcnQgYWRk cmVzcyBpcyAweDgwMDBfMDAwMF8wMDAwIFVMTCwgdGhlbiBsaWJkcm0gZ2V0cyB2aXJ0dWFsX2Fk ZHJlc3NfbWF4CgkKCWRldl9pbmZvLnZpcnR1YWxfYWRkcmVzc19tYXggPSBtaW4odm1fc2l6ZSwg QU1ER1BVX1ZBX0hPTEVfU1RBUlQpCgkvLyB0aGF0J3MgMHg4MDAwXzAwMDBfMDAwMCBVTEwgYWN0 dWFsbHkKCkFib3ZlIGFsbCwgaXQgbG9va3MgdGhlIFZBIGhvbGUgc3RhcnQgc2hvdWxkIGJlIDB4 MV8wMDAwXzAwMDBfMDAwMCBVTC4KClJlZ2FyZHMsCkplcnJ5Cgo+Cj4gUmVnYXJkcywKPiBDaHJp c3RpYW4uCj4KPj4KPj4gUmVnYXJkcywKPj4gSmVycnkKPj4KPj4+Cj4+PiB2Mjogc2lnbiBleHRl bmRpbmcgdHVybmVkIG91dCBlYXNpZXIgdGhhbiB0aG91Z2h0Lgo+Pj4gdjM6IGNsZWFuIHVwIHRo ZSBkZWZpbmVzIGFuZCBtb3ZlIHRoZW0gaW50byBhbWRncHVfZ21jLmggYXMgd2VsbAo+Pj4KPj4+ IFNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNv bT4KPj4+IC0tLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2Zk LmMgfCAgMiArLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYyAg ICAgfCAgMiArLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMg ICAgfCAxMCArKysrLS0tLS0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2dtYy5oICAgIHwgMjYgKysrKysrKysrKysrKysrKysrKysrKwo+Pj4gICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMgICAgfCAgOCArKystLS0tCj4+PiAgIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyB8ICAyICstCj4+PiAgIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMgICB8ICA2ICsrLS0tCj4+PiAgIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jICAgICB8ICA3ICsrKy0tLQo+Pj4gICBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCAgICAgfCAxMyAtLS0tLS0tLS0t LQo+Pj4gICA5IGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygt KQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf YW1ka2ZkLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmMKPj4+ IGluZGV4IDhjNjUyZWNjNGY5YS4uYmM1Y2NmY2E2OGM1IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5jCj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmMKPj4+IEBAIC0xMzUsNyArMTM1LDcgQEAg dm9pZCBhbWRncHVfYW1ka2ZkX2RldmljZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQo+Pj4gICAgICAgICAgICAgICAubnVtX3F1ZXVlX3Blcl9waXBlID0gYWRldi0+Z2Z4Lm1lYy5u dW1fcXVldWVfcGVyX3BpcGUsCj4+PiAgICAgICAgICAgICAgIC5ncHV2bV9zaXplID0gbWluKGFk ZXYtPnZtX21hbmFnZXIubWF4X3Bmbgo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgPDwgQU1E R1BVX0dQVV9QQUdFX1NISUZULAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICBBTURHUFVfVkFf SE9MRV9TVEFSVCksCj4+PiArICAgICAgICAgICAgICAgICAgICAgIEFNREdQVV9HTUNfSE9MRV9T VEFSVCksCj4+PiAgICAgICAgICAgICAgIC5kcm1fcmVuZGVyX21pbm9yID0gYWRldi0+ZGRldi0+ cmVuZGVyLT5pbmRleAo+Pj4gICAgICAgICAgIH07Cj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2NzLmMKPj4+IGluZGV4IGRkNzM0OTcwZTE2Ny4uZWYyYmZjMDRiNDFjIDEw MDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKPj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4+PiBAQCAtODM1 LDcgKzgzNSw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3ZtX2hhbmRsaW5nKHN0cnVjdCBhbWRn cHVfY3NfcGFyc2VyICpwKQo+Pj4gICAgICAgICAgICAgICBpZiAoY2h1bmstPmNodW5rX2lkICE9 IEFNREdQVV9DSFVOS19JRF9JQikKPj4+ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+Pj4K Pj4+IC0gICAgICAgICAgICB2YV9zdGFydCA9IGNodW5rX2liLT52YV9zdGFydCAmIEFNREdQVV9W QV9IT0xFX01BU0s7Cj4+PiArICAgICAgICAgICAgdmFfc3RhcnQgPSBjaHVua19pYi0+dmFfc3Rh cnQgJiBBTURHUFVfR01DX0hPTEVfTUFTSzsKPj4+ICAgICAgICAgICAgICAgciA9IGFtZGdwdV9j c19maW5kX21hcHBpbmcocCwgdmFfc3RhcnQsICZhb2JqLCAmbSk7Cj4+PiAgICAgICAgICAgICAg IGlmIChyKSB7Cj4+PiAgICAgICAgICAgICAgICAgICBEUk1fRVJST1IoIklCIHZhX3N0YXJ0IGlz IGludmFsaWRcbiIpOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYwo+ Pj4gaW5kZXggNzE3OTJkODIwYWUwLi5kMzBhMDgzODg1MWIgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYwo+Pj4gQEAgLTU3MiwxNiArNTcyLDE2IEBAIGlu dCBhbWRncHVfZ2VtX3ZhX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs Cj4+PiAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+PiAgICAgICB9Cj4+Pgo+Pj4gLSAgICBp ZiAoYXJncy0+dmFfYWRkcmVzcyA+PSBBTURHUFVfVkFfSE9MRV9TVEFSVCAmJgo+Pj4gLSAgICAg ICAgYXJncy0+dmFfYWRkcmVzcyA8IEFNREdQVV9WQV9IT0xFX0VORCkgewo+Pj4gKyAgICBpZiAo YXJncy0+dmFfYWRkcmVzcyA+PSBBTURHUFVfR01DX0hPTEVfU1RBUlQgJiYKPj4+ICsgICAgICAg IGFyZ3MtPnZhX2FkZHJlc3MgPCBBTURHUFVfR01DX0hPTEVfRU5EKSB7Cj4+PiAgICAgICAgICAg ZGV2X2RiZygmZGV2LT5wZGV2LT5kZXYsCj4+PiAgICAgICAgICAgICAgICJ2YV9hZGRyZXNzIDB4 JUxYIGlzIGluIFZBIGhvbGUgMHglTFgtMHglTFhcbiIsCj4+PiAtICAgICAgICAgICAgYXJncy0+ dmFfYWRkcmVzcywgQU1ER1BVX1ZBX0hPTEVfU1RBUlQsCj4+PiAtICAgICAgICAgICAgQU1ER1BV X1ZBX0hPTEVfRU5EKTsKPj4+ICsgICAgICAgICAgICBhcmdzLT52YV9hZGRyZXNzLCBBTURHUFVf R01DX0hPTEVfU1RBUlQsCj4+PiArICAgICAgICAgICAgQU1ER1BVX0dNQ19IT0xFX0VORCk7Cj4+ PiAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+PiAgICAgICB9Cj4+Pgo+Pj4gLSAgICBhcmdz LT52YV9hZGRyZXNzICY9IEFNREdQVV9WQV9IT0xFX01BU0s7Cj4+PiArICAgIGFyZ3MtPnZhX2Fk ZHJlc3MgJj0gQU1ER1BVX0dNQ19IT0xFX01BU0s7Cj4+Pgo+Pj4gICAgICAgaWYgKChhcmdzLT5m bGFncyAmIH52YWxpZF9mbGFncykgJiYgKGFyZ3MtPmZsYWdzICYgfnBydF9mbGFncykpIHsKPj4+ ICAgICAgICAgICBkZXZfZGJnKCZkZXYtPnBkZXYtPmRldiwgImludmFsaWQgZmxhZ3MgY29tYmlu YXRpb24gMHglMDhYXG4iLAo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9nbWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nbWMu aAo+Pj4gaW5kZXggMGQyYzlmNjVjYTEzLi45ZDljN2E5ZjU0ZTQgMTAwNjQ0Cj4+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ21jLmgKPj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nbWMuaAo+Pj4gQEAgLTMwLDYgKzMwLDE5IEBACj4+ Pgo+Pj4gICAjaW5jbHVkZSAiYW1kZ3B1X2lycS5oIgo+Pj4KPj4+ICsvKiBWQSBob2xlIGZvciA0 OGJpdCBhZGRyZXNzZXMgb24gVmVnYTEwICovCj4+PiArI2RlZmluZSBBTURHUFVfR01DX0hPTEVf U1RBUlQgICAgMHgwMDAwODAwMDAwMDAwMDAwVUxMCj4+PiArI2RlZmluZSBBTURHUFVfR01DX0hP TEVfRU5EICAgIDB4ZmZmZjgwMDAwMDAwMDAwMFVMTAo+Pj4gKwo+Pj4gKy8qCj4+PiArICogSGFy ZHdhcmUgaXMgcHJvZ3JhbW1lZCBhcyBpZiB0aGUgaG9sZSBkb2Vzbid0IGV4aXN0cyB3aXRoIHN0 YXJ0IGFuZCBlbmQKPj4+ICsgKiBhZGRyZXNzIHZhbHVlcy4KPj4+ICsgKgo+Pj4gKyAqIFRoaXMg bWFzayBpcyB1c2VkIHRvIHJlbW92ZSB0aGUgdXBwZXIgMTZiaXRzIG9mIHRoZSBWQSBhbmQgc28g Y29tZSB1cCB3aXRoCj4+PiArICogdGhlIGxpbmVhciBhZGRyIHZhbHVlLgo+Pj4gKyAqLwo+Pj4g KyNkZWZpbmUgQU1ER1BVX0dNQ19IT0xFX01BU0sgICAgMHgwMDAwZmZmZmZmZmZmZmZmVUxMCj4+ PiArCj4+PiAgIHN0cnVjdCBmaXJtd2FyZTsKPj4+Cj4+PiAgIC8qCj4+PiBAQCAtMTMxLDYgKzE0 NCwxOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYW1kZ3B1X2dtY192cmFtX2Z1bGxfdmlzaWJsZShz dHJ1Y3QgYW1kZ3B1X2dtYyAqZ21jKQo+Pj4gICAgICAgcmV0dXJuIChnbWMtPnJlYWxfdnJhbV9z aXplID09IGdtYy0+dmlzaWJsZV92cmFtX3NpemUpOwo+Pj4gICB9Cj4+Pgo+Pj4gKy8qKgo+Pj4g KyAqIGFtZGdwdV9nbWNfc2lnbl9leHRlbmQgLSBzaWduIGV4dGVuZCB0aGUgZ2l2ZW4gZ21jIGFk ZHJlc3MKPj4+ICsgKgo+Pj4gKyAqIEBhZGRyOiBhZGRyZXNzIHRvIGV4dGVuZAo+Pj4gKyAqLwo+ Pj4gK3N0YXRpYyBpbmxpbmUgdWludDY0X3QgYW1kZ3B1X2dtY19zaWduX2V4dGVuZCh1aW50NjRf dCBhZGRyKQo+Pj4gK3sKPj4+ICsgICAgaWYgKGFkZHIgPj0gQU1ER1BVX0dNQ19IT0xFX1NUQVJU KQo+Pj4gKyAgICAgICAgYWRkciB8PSBBTURHUFVfR01DX0hPTEVfRU5EOwo+Pj4gKwo+Pj4gKyAg ICByZXR1cm4gYWRkcjsKPj4+ICt9Cj4+PiArCj4+PiAgIHZvaWQgYW1kZ3B1X2dtY19nZXRfcGRl X2Zvcl9ibyhzdHJ1Y3QgYW1kZ3B1X2JvICpibywgaW50IGxldmVsLAo+Pj4gICAgICAgICAgICAg ICAgICAgICAgdWludDY0X3QgKmFkZHIsIHVpbnQ2NF90ICpmbGFncyk7Cj4+PiAgIHVpbnQ2NF90 IGFtZGdwdV9nbWNfcGRfYWRkcihzdHJ1Y3QgYW1kZ3B1X2JvICpibyk7Cj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jCj4+PiBpbmRleCA5YzRlNDU5MzZhZGUuLjI5YWMz ODczZWViMCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9rbXMuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5j Cj4+PiBAQCAtNjU1LDExICs2NTUsMTEgQEAgc3RhdGljIGludCBhbWRncHVfaW5mb19pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUKPj4+Cj4+ PiAgICAgICAgICAgZGV2X2luZm8udmlydHVhbF9hZGRyZXNzX29mZnNldCA9IEFNREdQVV9WQV9S RVNFUlZFRF9TSVpFOwo+Pj4gICAgICAgICAgIGRldl9pbmZvLnZpcnR1YWxfYWRkcmVzc19tYXgg PQo+Pj4gLSAgICAgICAgICAgIG1pbih2bV9zaXplLCBBTURHUFVfVkFfSE9MRV9TVEFSVCk7Cj4+ PiArICAgICAgICAgICAgbWluKHZtX3NpemUsIEFNREdQVV9HTUNfSE9MRV9TVEFSVCk7Cj4+Pgo+ Pj4gLSAgICAgICAgaWYgKHZtX3NpemUgPiBBTURHUFVfVkFfSE9MRV9TVEFSVCkgewo+Pj4gLSAg ICAgICAgICAgIGRldl9pbmZvLmhpZ2hfdmFfb2Zmc2V0ID0gQU1ER1BVX1ZBX0hPTEVfRU5EOwo+ Pj4gLSAgICAgICAgICAgIGRldl9pbmZvLmhpZ2hfdmFfbWF4ID0gQU1ER1BVX1ZBX0hPTEVfRU5E IHwgdm1fc2l6ZTsKPj4+ICsgICAgICAgIGlmICh2bV9zaXplID4gQU1ER1BVX0dNQ19IT0xFX1NU QVJUKSB7Cj4+PiArICAgICAgICAgICAgZGV2X2luZm8uaGlnaF92YV9vZmZzZXQgPSBBTURHUFVf R01DX0hPTEVfRU5EOwo+Pj4gKyAgICAgICAgICAgIGRldl9pbmZvLmhpZ2hfdmFfbWF4ID0gQU1E R1BVX0dNQ19IT0xFX0VORCB8IHZtX3NpemU7Cj4+PiAgICAgICAgICAgfQo+Pj4gICAgICAgICAg IGRldl9pbmZvLnZpcnR1YWxfYWRkcmVzc19hbGlnbm1lbnQgPSBtYXgoKGludClQQUdFX1NJWkUs IEFNREdQVV9HUFVfUEFHRV9TSVpFKTsKPj4+ICAgICAgICAgICBkZXZfaW5mby5wdGVfZnJhZ21l bnRfc2l6ZSA9ICgxIDw8IGFkZXYtPnZtX21hbmFnZXIuZnJhZ21lbnRfc2l6ZSkgKiBBTURHUFVf R1BVX1BBR0VfU0laRTsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2Jq ZWN0LmMKPj4+IGluZGV4IDVkZGQ0ZTg3NDgwYi4uOWMzY2MyMzQ4OGMyIDEwMDY0NAo+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPj4+IEBAIC0xMzcwLDcg KzEzNzAsNyBAQCB1NjQgYW1kZ3B1X2JvX2dwdV9vZmZzZXQoc3RydWN0IGFtZGdwdV9ibyAqYm8p Cj4+PiAgICAgICBXQVJOX09OX09OQ0UoYm8tPnRiby5tZW0ubWVtX3R5cGUgPT0gVFRNX1BMX1ZS QU0gJiYKPj4+ICAgICAgICAgICAgICAgICEoYm8tPmZsYWdzICYgQU1ER1BVX0dFTV9DUkVBVEVf VlJBTV9DT05USUdVT1VTKSk7Cj4+Pgo+Pj4gLSAgICByZXR1cm4gYm8tPnRiby5vZmZzZXQ7Cj4+ PiArICAgIHJldHVybiBhbWRncHVfZ21jX3NpZ25fZXh0ZW5kKGJvLT50Ym8ub2Zmc2V0KTsKPj4+ ICAgfQo+Pj4KPj4+ICAgLyoqCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3ZpcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92 aXJ0LmMKPj4+IGluZGV4IDM4ODU2MzY1NTgwZC4uZjJmMzU4YWEwNTk3IDEwMDY0NAo+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYwo+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYwo+Pj4gQEAgLTI4LDkgKzI4LDcg QEAgdWludDY0X3QgYW1kZ3B1X2NzYV92YWRkcihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK Pj4+ICAgICAgIHVpbnQ2NF90IGFkZHIgPSBhZGV2LT52bV9tYW5hZ2VyLm1heF9wZm4gPDwgQU1E R1BVX0dQVV9QQUdFX1NISUZUOwo+Pj4KPj4+ICAgICAgIGFkZHIgLT0gQU1ER1BVX1ZBX1JFU0VS VkVEX1NJWkU7Cj4+PiAtCj4+PiAtICAgIGlmIChhZGRyID49IEFNREdQVV9WQV9IT0xFX1NUQVJU KQo+Pj4gLSAgICAgICAgYWRkciB8PSBBTURHUFVfVkFfSE9MRV9FTkQ7Cj4+PiArICAgIGFkZHIg PSBhbWRncHVfZ21jX3NpZ25fZXh0ZW5kKGFkZHIpOwo+Pj4KPj4+ICAgICAgIHJldHVybiBhZGRy Owo+Pj4gICB9Cj4+PiBAQCAtNzMsNyArNzEsNyBAQCB2b2lkIGFtZGdwdV9mcmVlX3N0YXRpY19j c2Eoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpIHsKPj4+ICAgaW50IGFtZGdwdV9tYXBfc3Rh dGljX2NzYShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0s Cj4+PiAgICAgICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9ib192YSAqKmJvX3ZhKQo+Pj4gICB7 Cj4+PiAtICAgIHVpbnQ2NF90IGNzYV9hZGRyID0gYW1kZ3B1X2NzYV92YWRkcihhZGV2KSAmIEFN REdQVV9WQV9IT0xFX01BU0s7Cj4+PiArICAgIHVpbnQ2NF90IGNzYV9hZGRyID0gYW1kZ3B1X2Nz YV92YWRkcihhZGV2KSAmIEFNREdQVV9HTUNfSE9MRV9NQVNLOwo+Pj4gICAgICAgc3RydWN0IHd3 X2FjcXVpcmVfY3R4IHRpY2tldDsKPj4+ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKPj4+ ICAgICAgIHN0cnVjdCBhbWRncHVfYm9fbGlzdF9lbnRyeSBwZDsKPj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4+PiBpbmRleCAxZjRiOGRmYzA0NTYuLjhiYmJhMDEyN2U0 MiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5j Cj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+Pj4gQEAg LTM5OSw3ICszOTksNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92bV9jbGVhcl9ibyhzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwKPj4+ICAgICAgICAgICBpZiAobGV2ZWwgPT0gYWRldi0+dm1fbWFu YWdlci5yb290X2xldmVsKSB7Cj4+PiAgICAgICAgICAgICAgIGF0c19lbnRyaWVzID0gYW1kZ3B1 X3ZtX2xldmVsX3NoaWZ0KGFkZXYsIGxldmVsKTsKPj4+ICAgICAgICAgICAgICAgYXRzX2VudHJp ZXMgKz0gQU1ER1BVX0dQVV9QQUdFX1NISUZUOwo+Pj4gLSAgICAgICAgICAgIGF0c19lbnRyaWVz ID0gQU1ER1BVX1ZBX0hPTEVfU1RBUlQgPj4gYXRzX2VudHJpZXM7Cj4+PiArICAgICAgICAgICAg YXRzX2VudHJpZXMgPSBBTURHUFVfR01DX0hPTEVfU1RBUlQgPj4gYXRzX2VudHJpZXM7Cj4+PiAg ICAgICAgICAgICAgIGF0c19lbnRyaWVzID0gbWluKGF0c19lbnRyaWVzLCBlbnRyaWVzKTsKPj4+ ICAgICAgICAgICAgICAgZW50cmllcyAtPSBhdHNfZW50cmllczsKPj4+ICAgICAgICAgICB9IGVs c2Ugewo+Pj4gQEAgLTYyOSw3ICs2MjksNyBAQCBpbnQgYW1kZ3B1X3ZtX2FsbG9jX3B0cyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPj4+ICAgICAgIGVhZGRyID0gc2FkZHIgKyBzaXplIC0g MTsKPj4+Cj4+PiAgICAgICBpZiAodm0tPnB0ZV9zdXBwb3J0X2F0cykKPj4+IC0gICAgICAgIGF0 cyA9IHNhZGRyIDwgQU1ER1BVX1ZBX0hPTEVfU1RBUlQ7Cj4+PiArICAgICAgICBhdHMgPSBzYWRk ciA8IEFNREdQVV9HTUNfSE9MRV9TVEFSVDsKPj4+Cj4+PiAgICAgICBzYWRkciAvPSBBTURHUFVf R1BVX1BBR0VfU0laRTsKPj4+ICAgICAgIGVhZGRyIC89IEFNREdQVV9HUFVfUEFHRV9TSVpFOwo+ Pj4gQEAgLTE5MzQsNyArMTkzNCw4IEBAIGludCBhbWRncHVfdm1fY2xlYXJfZnJlZWQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+PiAgICAgICAgICAgICAgIHN0cnVjdCBhbWRncHVfYm9f dmFfbWFwcGluZywgbGlzdCk7Cj4+PiAgICAgICAgICAgbGlzdF9kZWwoJm1hcHBpbmctPmxpc3Qp Owo+Pj4KPj4+IC0gICAgICAgIGlmICh2bS0+cHRlX3N1cHBvcnRfYXRzICYmIG1hcHBpbmctPnN0 YXJ0IDwgQU1ER1BVX1ZBX0hPTEVfU1RBUlQpCj4+PiArICAgICAgICBpZiAodm0tPnB0ZV9zdXBw b3J0X2F0cyAmJgo+Pj4gKyAgICAgICAgICAgIG1hcHBpbmctPnN0YXJ0IDwgQU1ER1BVX0dNQ19I T0xFX1NUQVJUKQo+Pj4gICAgICAgICAgICAgICBpbml0X3B0ZV92YWx1ZSA9IEFNREdQVV9QVEVf REVGQVVMVF9BVEM7Cj4+Pgo+Pj4gICAgICAgICAgIHIgPSBhbWRncHVfdm1fYm9fdXBkYXRlX21h cHBpbmcoYWRldiwgTlVMTCwgTlVMTCwgdm0sCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdm0uaAo+Pj4gaW5kZXggOTRmZTQ3ODkwYWRmLi4yY2U0NTIxOTgwMTcgMTAwNjQ0Cj4+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaAo+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmgKPj4+IEBAIC0xMDEsMTkgKzEw MSw2IEBAIHN0cnVjdCBhbWRncHVfYm9fbGlzdF9lbnRyeTsKPj4+ICAgLyogaGFyZGNvZGUgdGhh dCBsaW1pdCBmb3Igbm93ICovCj4+PiAgICNkZWZpbmUgQU1ER1BVX1ZBX1JFU0VSVkVEX1NJWkUg ICAgICAgICAgICAoMVVMTCA8PCAyMCkKPj4+Cj4+PiAtLyogVkEgaG9sZSBmb3IgNDhiaXQgYWRk cmVzc2VzIG9uIFZlZ2ExMCAqLwo+Pj4gLSNkZWZpbmUgQU1ER1BVX1ZBX0hPTEVfU1RBUlQgICAg ICAgICAgICAweDAwMDA4MDAwMDAwMDAwMDBVTEwKPj4+IC0jZGVmaW5lIEFNREdQVV9WQV9IT0xF X0VORCAgICAgICAgICAgIDB4ZmZmZjgwMDAwMDAwMDAwMFVMTAo+Pj4gLQo+Pj4gLS8qCj4+PiAt ICogSGFyZHdhcmUgaXMgcHJvZ3JhbW1lZCBhcyBpZiB0aGUgaG9sZSBkb2Vzbid0IGV4aXN0cyB3 aXRoIHN0YXJ0IGFuZCBlbmQKPj4+IC0gKiBhZGRyZXNzIHZhbHVlcy4KPj4+IC0gKgo+Pj4gLSAq IFRoaXMgbWFzayBpcyB1c2VkIHRvIHJlbW92ZSB0aGUgdXBwZXIgMTZiaXRzIG9mIHRoZSBWQSBh bmQgc28gY29tZSB1cCB3aXRoCj4+PiAtICogdGhlIGxpbmVhciBhZGRyIHZhbHVlLgo+Pj4gLSAq Lwo+Pj4gLSNkZWZpbmUgQU1ER1BVX1ZBX0hPTEVfTUFTSyAgICAgICAgICAgIDB4MDAwMGZmZmZm ZmZmZmZmZlVMTAo+Pj4gLQo+Pj4gICAvKiBtYXggdm1pZHMgZGVkaWNhdGVkIGZvciBwcm9jZXNz ICovCj4+PiAgICNkZWZpbmUgQU1ER1BVX1ZNX01BWF9SRVNFUlZFRF9WTUlEICAgIDEKPj4+Cj4+ Pgo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1n ZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=