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 15:35:17 +0800 Message-ID: <5B879E35.6010302@amd.com> References: <20180828121716.17269-1-christian.koenig@amd.com> <5B85FF0C.7080308@amd.com> <7fc07a91-2d11-256b-6bf1-571012841d82@gmail.com> <5B8759E8.9090408@amd.com> <0d9a151e-a705-8f13-2f24-51afca5f1611@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <0d9a151e-a705-8f13-2f24-51afca5f1611-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?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org T24gMDgvMzAvMjAxOCAwMjo0OCBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBBbSAzMC4w OC4yMDE4IHVtIDA0OjQzIHNjaHJpZWIgWmhhbmcsIEplcnJ5IChKdW53ZWkpOgo+PiBPbiAwOC8y OS8yMDE4IDA1OjM5IFBNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+Pj4gQW0gMjkuMDguMjAx OCB1bSAwNDowMyBzY2hyaWViIFpoYW5nLCBKZXJyeSAoSnVud2VpKToKPj4+PiBPbiAwOC8yOC8y MDE4IDA4OjE3IFBNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+Pj4+PiBDb3JyZWN0IHNpZ24g ZXh0ZW5kIHRoZSBHTUMgYWRkcmVzc2VzIHRvIDQ4Yml0Lgo+Pj4+Cj4+Pj4gQ291bGQgeW91IGV4 cGxhaW4gYSBiaXQgbW9yZSB3aHkgdG8gZXh0ZW5kIHRoZSBzaWduPwo+Pj4KPj4+IFRoZSBoYXJk d2FyZSB3b3JrcyBsaWtlIHRoaXMsIGluIG90aGVyIHdvcmRzIHdoZW4gYml0IDQ3IGlzIHNldCB3 ZSBtdXN0IGV4dGVuZCB0aGF0IGludG8gYml0cyA0OC02My4KPj4KPj4gVGhhbmtzLiBmaW5lLgo+ Pgo+Pj4KPj4+PiB0aGUgYWRkcmVzcyBpcyB1aW50NjRfdC4gaXMgaWYgZmFpbGVkIGluIHNvbWUg Y2FzZT8KPj4+Cj4+PiBXaGF0IGRvIHlvdSBtZWFuPwo+Pgo+PiBTb3JyeSBmb3IgdGhlIHR5cG8g d2l0aG91dCBmaW5pc2hpbmcgdGhlIHNlbnRlbmNlIGJlZm9yZSBzZW5kaW5nLgo+Pgo+PiBJIG1l YW4gZXZlbiBpZiB0aGUgYWRkcmVzcyBpcyB1aW50NjRfdCwgc3RpbGwgbmVlZHMgdG8gZXh0ZW5k IHRoZSBzaWduPwo+PiB3aGF0IEkgd2FzIHRoaW5raW5nIGlzIHRoYXQgdGhlIGludDY0X3QgbmVl ZHMgdG8gZG8gdGhpcy4KPgo+IFdlbGwsIG5vLiBXaGF0IHdlIHdvdWxkIG5lZWQgaXMgYW4gaW50 NDhfdCB0eXBlLCBidXQgc3VjaCB0aGluZyBkb2Vzbid0IGV4aXN0cyBhbmQgaXNuJ3QgZWFzaWx5 IGltcGxlbWVudGFibGUgaW4gQy4KCklmIHNvLCBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gdW5kZXJz dGFuZC4KVGhhbmtzLgoKPgo+Pgo+Pj4KPj4+Pgo+Pj4+ID4gLS8qIFZBIGhvbGUgZm9yIDQ4Yml0 IGFkZHJlc3NlcyBvbiBWZWdhMTAgKi8KPj4+PiA+IC0jZGVmaW5lIEFNREdQVV9WQV9IT0xFX1NU QVJUIDB4MDAwMDgwMDAwMDAwMDAwMFVMTAo+Pj4+ID4gLSNkZWZpbmUgQU1ER1BVX1ZBX0hPTEVf RU5EIDB4ZmZmZjgwMDAwMDAwMDAwMFVMTAo+Pj4+Cj4+Pj4gQlRXLCB0aGUgaG9sZSBmb3IgNDhi aXQgaXMgYWN0dWFsbHkgNDcgYml0IGxlZnQsIGFueSBiYWNrZ3JvdW5kIGZvciB0aGF0Pwo+Pj4K Pj4+IFdlbGwgYml0cyBzdGFydCBjb3VudGluZyBhdCB6ZXJvLiBTbyB0aGUgNDhiaXQgYWRkcmVz c2VzIGhhdmUgYml0cyAwLTQ3Lgo+Pgo+PiBUaGUgVkEgaG9sZSBpcyBnb2luZyB0byBjYXRjaCB0 aGUgVkEgYWRkcmVzcyBvdXQgb2Ygbm9ybWFsIHJhbmdlLCB3aGljaCBmb3IgdmVnYTEwIGlzIDQ4 LWJpdD8KPgo+IFllcywgZXhhY3RseS4KPgo+PiBpZiBzbywgMHg4MDAwXzAwMDBfMDAwMCBVTEwg aG9sZHMgZnJvbSAwfjQ2IGJpdHMsIHN0YXJ0aW5nIGZyb20gMTI4VEIsIGJ1dCB2ZWdhMTAgVkEg aXMgMjU2VEIKPgo+IENvcnJlY3QsIHRoZSBsb3dlciByYW5nZSBpcyBmcm9tIDB4MC0weDgwMDBf MDAwMF8wMDAwIGFuZCB0aGUgaGlnaGVyIHJhbmdlIGlzIGZyb20gMHhmZmZmXzgwMDBfMDAwMF8w MDAwLTB4ZmZmZl9mZmZmX2ZmZmZfZmZmZi4KPgo+Pgo+PiBpdCBhbHNvIGNvdWxkIGJlIGZvdW5k IGluIG9sZCBjb2RlIGdtY192OS5jLCB0aGUgbWNfbWFzayBob2xkcyA0OC1iaXRzIGFkZHJlc3Ms IGxpa2UgYmVsb3c6Cj4+Cj4+ICAgICBhZGV2LT5nbWMubWNfbWFzayA9IDB4ZmZmZl9mZmZmX2Zm ZmYgVUxMOyAvKiA0OCBiaXQgTUMgKi8KPj4KPj4gQnV0IHRoZSBWQSBob2xlIHN0YXJ0IGFkZHJl c3MgaXMgMHg4MDAwXzAwMDBfMDAwMCBVTEwsIHRoZW4gbGliZHJtIGdldHMgdmlydHVhbF9hZGRy ZXNzX21heAo+Pgo+PiAgICAgZGV2X2luZm8udmlydHVhbF9hZGRyZXNzX21heCA9IG1pbih2bV9z aXplLCBBTURHUFVfVkFfSE9MRV9TVEFSVCkKPj4gICAgIC8vIHRoYXQncyAweDgwMDBfMDAwMF8w MDAwIFVMTCBhY3R1YWxseQo+Cj4gV2UgbGltaXQgdGhlIHJlcG9ydGVkIFZBIHNpemUgZm9yIGJh Y2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgdXNlcnNwYWNlIGhlcmUuCgpmaW5lLCBnb3Qg aXQuClRoYW5rcy4KClJlZ2FyZHMsCkplcnJ5Cgo+Cj4+Cj4+IEFib3ZlIGFsbCwgaXQgbG9va3Mg dGhlIFZBIGhvbGUgc3RhcnQgc2hvdWxkIGJlIDB4MV8wMDAwXzAwMDBfMDAwMCBVTC4KPgo+IE5v cGUsIHRoYXQgaXNuJ3QgY29ycmVjdC4gVGhlIGhvbGUgaXMgYmV0d2VlbiAweDgwMDBfMDAwMF8w MDAwIGFuZCAweGZmZmZfODAwMF8wMDAwXzAwMDAuCj4KPiBSZWdhcmRzLAo+IENocmlzdGlhbi4K Pgo+Pgo+PiBSZWdhcmRzLAo+PiBKZXJyeQo+Pgo+Pj4KPj4+IFJlZ2FyZHMsCj4+PiBDaHJpc3Rp YW4uCj4+Pgo+Pj4+Cj4+Pj4gUmVnYXJkcywKPj4+PiBKZXJyeQo+Pj4+Cj4+Pj4+Cj4+Pj4+IHYy OiBzaWduIGV4dGVuZGluZyB0dXJuZWQgb3V0IGVhc2llciB0aGFuIHRob3VnaHQuCj4+Pj4+IHYz OiBjbGVhbiB1cCB0aGUgZGVmaW5lcyBhbmQgbW92ZSB0aGVtIGludG8gYW1kZ3B1X2dtYy5oIGFz IHdlbGwKPj4+Pj4KPj4+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0 aWFuLmtvZW5pZ0BhbWQuY29tPgo+Pj4+PiAtLS0KPj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfYW1ka2ZkLmMgfCAgMiArLQo+Pj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9jcy5jICAgICB8ICAyICstCj4+Pj4+ICAgZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jICAgIHwgMTAgKysrKy0tLS0tCj4+Pj4+ICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dtYy5oICAgIHwgMjYgKysrKysrKysrKysrKysr KysrKysrKwo+Pj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYyAg ICB8ICA4ICsrKy0tLS0KPj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf b2JqZWN0LmMgfCAgMiArLQo+Pj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV92aXJ0LmMgICB8ICA2ICsrLS0tCj4+Pj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZtLmMgICAgIHwgIDcgKysrLS0tCj4+Pj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3ZtLmggICAgIHwgMTMgLS0tLS0tLS0tLS0KPj4+Pj4gICA5IGZpbGVzIGNo YW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQo+Pj4+Pgo+Pj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5jCj4+Pj4+IGluZGV4IDhjNjUy ZWNjNGY5YS4uYmM1Y2NmY2E2OGM1IDEwMDY0NAo+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmMKPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5jCj4+Pj4+IEBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBh bWRncHVfYW1ka2ZkX2RldmljZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+Pj4+ PiAgICAgICAgICAgICAgIC5udW1fcXVldWVfcGVyX3BpcGUgPSBhZGV2LT5nZngubWVjLm51bV9x dWV1ZV9wZXJfcGlwZSwKPj4+Pj4gICAgICAgICAgICAgICAuZ3B1dm1fc2l6ZSA9IG1pbihhZGV2 LT52bV9tYW5hZ2VyLm1heF9wZm4KPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgPDwgQU1E R1BVX0dQVV9QQUdFX1NISUZULAo+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgIEFNREdQVV9W QV9IT0xFX1NUQVJUKSwKPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICBBTURHUFVfR01DX0hP TEVfU1RBUlQpLAo+Pj4+PiAgICAgICAgICAgICAgIC5kcm1fcmVuZGVyX21pbm9yID0gYWRldi0+ ZGRldi0+cmVuZGVyLT5pbmRleAo+Pj4+PiAgICAgICAgICAgfTsKPj4+Pj4KPj4+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKPj4+Pj4gaW5kZXggZGQ3MzQ5NzBlMTY3Li5l ZjJiZmMwNGI0MWMgMTAwNjQ0Cj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9jcy5jCj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9jcy5jCj4+Pj4+IEBAIC04MzUsNyArODM1LDcgQEAgc3RhdGljIGludCBhbWRncHVfY3Nfdm1f aGFuZGxpbmcoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnApCj4+Pj4+ICAgICAgICAgICAgICAg aWYgKGNodW5rLT5jaHVua19pZCAhPSBBTURHUFVfQ0hVTktfSURfSUIpCj4+Pj4+ICAgICAgICAg ICAgICAgICAgIGNvbnRpbnVlOwo+Pj4+Pgo+Pj4+PiAtICAgICAgICAgICAgdmFfc3RhcnQgPSBj aHVua19pYi0+dmFfc3RhcnQgJiBBTURHUFVfVkFfSE9MRV9NQVNLOwo+Pj4+PiArICAgICAgICAg ICAgdmFfc3RhcnQgPSBjaHVua19pYi0+dmFfc3RhcnQgJiBBTURHUFVfR01DX0hPTEVfTUFTSzsK Pj4+Pj4gICAgICAgICAgICAgICByID0gYW1kZ3B1X2NzX2ZpbmRfbWFwcGluZyhwLCB2YV9zdGFy dCwgJmFvYmosICZtKTsKPj4+Pj4gICAgICAgICAgICAgICBpZiAocikgewo+Pj4+PiAgICAgICAg ICAgICAgICAgICBEUk1fRVJST1IoIklCIHZhX3N0YXJ0IGlzIGludmFsaWRcbiIpOwo+Pj4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jCj4+Pj4+IGluZGV4IDcxNzkyZDgy MGFlMC4uZDMwYTA4Mzg4NTFiIDEwMDY0NAo+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZ2VtLmMKPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2dlbS5jCj4+Pj4+IEBAIC01NzIsMTYgKzU3MiwxNiBAQCBpbnQgYW1kZ3B1X2dl bV92YV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+Pj4+PiAgICAg ICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+Pj4+ICAgICAgIH0KPj4+Pj4KPj4+Pj4gLSAgICBpZiAo YXJncy0+dmFfYWRkcmVzcyA+PSBBTURHUFVfVkFfSE9MRV9TVEFSVCAmJgo+Pj4+PiAtICAgICAg ICBhcmdzLT52YV9hZGRyZXNzIDwgQU1ER1BVX1ZBX0hPTEVfRU5EKSB7Cj4+Pj4+ICsgICAgaWYg KGFyZ3MtPnZhX2FkZHJlc3MgPj0gQU1ER1BVX0dNQ19IT0xFX1NUQVJUICYmCj4+Pj4+ICsgICAg ICAgIGFyZ3MtPnZhX2FkZHJlc3MgPCBBTURHUFVfR01DX0hPTEVfRU5EKSB7Cj4+Pj4+ICAgICAg ICAgICBkZXZfZGJnKCZkZXYtPnBkZXYtPmRldiwKPj4+Pj4gICAgICAgICAgICAgICAidmFfYWRk cmVzcyAweCVMWCBpcyBpbiBWQSBob2xlIDB4JUxYLTB4JUxYXG4iLAo+Pj4+PiAtICAgICAgICAg ICAgYXJncy0+dmFfYWRkcmVzcywgQU1ER1BVX1ZBX0hPTEVfU1RBUlQsCj4+Pj4+IC0gICAgICAg ICAgICBBTURHUFVfVkFfSE9MRV9FTkQpOwo+Pj4+PiArICAgICAgICAgICAgYXJncy0+dmFfYWRk cmVzcywgQU1ER1BVX0dNQ19IT0xFX1NUQVJULAo+Pj4+PiArICAgICAgICAgICAgQU1ER1BVX0dN Q19IT0xFX0VORCk7Cj4+Pj4+ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4+Pj4gICAgICAg fQo+Pj4+Pgo+Pj4+PiAtICAgIGFyZ3MtPnZhX2FkZHJlc3MgJj0gQU1ER1BVX1ZBX0hPTEVfTUFT SzsKPj4+Pj4gKyAgICBhcmdzLT52YV9hZGRyZXNzICY9IEFNREdQVV9HTUNfSE9MRV9NQVNLOwo+ Pj4+Pgo+Pj4+PiAgICAgICBpZiAoKGFyZ3MtPmZsYWdzICYgfnZhbGlkX2ZsYWdzKSAmJiAoYXJn cy0+ZmxhZ3MgJiB+cHJ0X2ZsYWdzKSkgewo+Pj4+PiAgICAgICAgICAgZGV2X2RiZygmZGV2LT5w ZGV2LT5kZXYsICJpbnZhbGlkIGZsYWdzIGNvbWJpbmF0aW9uIDB4JTA4WFxuIiwKPj4+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nbWMuaCBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nbWMuaAo+Pj4+PiBpbmRleCAwZDJjOWY2NWNh MTMuLjlkOWM3YTlmNTRlNCAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2dtYy5oCj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9nbWMuaAo+Pj4+PiBAQCAtMzAsNiArMzAsMTkgQEAKPj4+Pj4KPj4+Pj4gICAjaW5j bHVkZSAiYW1kZ3B1X2lycS5oIgo+Pj4+Pgo+Pj4+PiArLyogVkEgaG9sZSBmb3IgNDhiaXQgYWRk cmVzc2VzIG9uIFZlZ2ExMCAqLwo+Pj4+PiArI2RlZmluZSBBTURHUFVfR01DX0hPTEVfU1RBUlQg ICAgMHgwMDAwODAwMDAwMDAwMDAwVUxMCj4+Pj4+ICsjZGVmaW5lIEFNREdQVV9HTUNfSE9MRV9F TkQgICAgMHhmZmZmODAwMDAwMDAwMDAwVUxMCj4+Pj4+ICsKPj4+Pj4gKy8qCj4+Pj4+ICsgKiBI YXJkd2FyZSBpcyBwcm9ncmFtbWVkIGFzIGlmIHRoZSBob2xlIGRvZXNuJ3QgZXhpc3RzIHdpdGgg c3RhcnQgYW5kIGVuZAo+Pj4+PiArICogYWRkcmVzcyB2YWx1ZXMuCj4+Pj4+ICsgKgo+Pj4+PiAr ICogVGhpcyBtYXNrIGlzIHVzZWQgdG8gcmVtb3ZlIHRoZSB1cHBlciAxNmJpdHMgb2YgdGhlIFZB IGFuZCBzbyBjb21lIHVwIHdpdGgKPj4+Pj4gKyAqIHRoZSBsaW5lYXIgYWRkciB2YWx1ZS4KPj4+ Pj4gKyAqLwo+Pj4+PiArI2RlZmluZSBBTURHUFVfR01DX0hPTEVfTUFTSyAgICAweDAwMDBmZmZm ZmZmZmZmZmZVTEwKPj4+Pj4gKwo+Pj4+PiAgIHN0cnVjdCBmaXJtd2FyZTsKPj4+Pj4KPj4+Pj4g ICAvKgo+Pj4+PiBAQCAtMTMxLDYgKzE0NCwxOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYW1kZ3B1 X2dtY192cmFtX2Z1bGxfdmlzaWJsZShzdHJ1Y3QgYW1kZ3B1X2dtYyAqZ21jKQo+Pj4+PiAgICAg ICByZXR1cm4gKGdtYy0+cmVhbF92cmFtX3NpemUgPT0gZ21jLT52aXNpYmxlX3ZyYW1fc2l6ZSk7 Cj4+Pj4+ICAgfQo+Pj4+Pgo+Pj4+PiArLyoqCj4+Pj4+ICsgKiBhbWRncHVfZ21jX3NpZ25fZXh0 ZW5kIC0gc2lnbiBleHRlbmQgdGhlIGdpdmVuIGdtYyBhZGRyZXNzCj4+Pj4+ICsgKgo+Pj4+PiAr ICogQGFkZHI6IGFkZHJlc3MgdG8gZXh0ZW5kCj4+Pj4+ICsgKi8KPj4+Pj4gK3N0YXRpYyBpbmxp bmUgdWludDY0X3QgYW1kZ3B1X2dtY19zaWduX2V4dGVuZCh1aW50NjRfdCBhZGRyKQo+Pj4+PiAr ewo+Pj4+PiArICAgIGlmIChhZGRyID49IEFNREdQVV9HTUNfSE9MRV9TVEFSVCkKPj4+Pj4gKyAg ICAgICAgYWRkciB8PSBBTURHUFVfR01DX0hPTEVfRU5EOwo+Pj4+PiArCj4+Pj4+ICsgICAgcmV0 dXJuIGFkZHI7Cj4+Pj4+ICt9Cj4+Pj4+ICsKPj4+Pj4gICB2b2lkIGFtZGdwdV9nbWNfZ2V0X3Bk ZV9mb3JfYm8oc3RydWN0IGFtZGdwdV9ibyAqYm8sIGludCBsZXZlbCwKPj4+Pj4gICAgICAgICAg ICAgICAgICAgICAgdWludDY0X3QgKmFkZHIsIHVpbnQ2NF90ICpmbGFncyk7Cj4+Pj4+ICAgdWlu dDY0X3QgYW1kZ3B1X2dtY19wZF9hZGRyKHN0cnVjdCBhbWRncHVfYm8gKmJvKTsKPj4+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYwo+Pj4+PiBpbmRleCA5YzRlNDU5MzZh ZGUuLjI5YWMzODczZWViMCAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2ttcy5jCj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9rbXMuYwo+Pj4+PiBAQCAtNjU1LDExICs2NTUsMTEgQEAgc3RhdGljIGludCBhbWRn cHVfaW5mb19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3Qg ZHJtX2ZpbGUKPj4+Pj4KPj4+Pj4gICAgICAgICAgIGRldl9pbmZvLnZpcnR1YWxfYWRkcmVzc19v ZmZzZXQgPSBBTURHUFVfVkFfUkVTRVJWRURfU0laRTsKPj4+Pj4gICAgICAgICAgIGRldl9pbmZv LnZpcnR1YWxfYWRkcmVzc19tYXggPQo+Pj4+PiAtICAgICAgICAgICAgbWluKHZtX3NpemUsIEFN REdQVV9WQV9IT0xFX1NUQVJUKTsKPj4+Pj4gKyAgICAgICAgICAgIG1pbih2bV9zaXplLCBBTURH UFVfR01DX0hPTEVfU1RBUlQpOwo+Pj4+Pgo+Pj4+PiAtICAgICAgICBpZiAodm1fc2l6ZSA+IEFN REdQVV9WQV9IT0xFX1NUQVJUKSB7Cj4+Pj4+IC0gICAgICAgICAgICBkZXZfaW5mby5oaWdoX3Zh X29mZnNldCA9IEFNREdQVV9WQV9IT0xFX0VORDsKPj4+Pj4gLSAgICAgICAgICAgIGRldl9pbmZv LmhpZ2hfdmFfbWF4ID0gQU1ER1BVX1ZBX0hPTEVfRU5EIHwgdm1fc2l6ZTsKPj4+Pj4gKyAgICAg ICAgaWYgKHZtX3NpemUgPiBBTURHUFVfR01DX0hPTEVfU1RBUlQpIHsKPj4+Pj4gKyAgICAgICAg ICAgIGRldl9pbmZvLmhpZ2hfdmFfb2Zmc2V0ID0gQU1ER1BVX0dNQ19IT0xFX0VORDsKPj4+Pj4g KyAgICAgICAgICAgIGRldl9pbmZvLmhpZ2hfdmFfbWF4ID0gQU1ER1BVX0dNQ19IT0xFX0VORCB8 IHZtX3NpemU7Cj4+Pj4+ICAgICAgICAgICB9Cj4+Pj4+ICAgICAgICAgICBkZXZfaW5mby52aXJ0 dWFsX2FkZHJlc3NfYWxpZ25tZW50ID0gbWF4KChpbnQpUEFHRV9TSVpFLCBBTURHUFVfR1BVX1BB R0VfU0laRSk7Cj4+Pj4+ICAgICAgICAgICBkZXZfaW5mby5wdGVfZnJhZ21lbnRfc2l6ZSA9ICgx IDw8IGFkZXYtPnZtX21hbmFnZXIuZnJhZ21lbnRfc2l6ZSkgKiBBTURHUFVfR1BVX1BBR0VfU0la RTsKPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9v YmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwo+Pj4+ PiBpbmRleCA1ZGRkNGU4NzQ4MGIuLjljM2NjMjM0ODhjMiAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCj4+Pj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwo+Pj4+PiBAQCAtMTM3MCw3ICsx MzcwLDcgQEAgdTY0IGFtZGdwdV9ib19ncHVfb2Zmc2V0KHN0cnVjdCBhbWRncHVfYm8gKmJvKQo+ Pj4+PiAgICAgICBXQVJOX09OX09OQ0UoYm8tPnRiby5tZW0ubWVtX3R5cGUgPT0gVFRNX1BMX1ZS QU0gJiYKPj4+Pj4gICAgICAgICAgICAgICAgIShiby0+ZmxhZ3MgJiBBTURHUFVfR0VNX0NSRUFU RV9WUkFNX0NPTlRJR1VPVVMpKTsKPj4+Pj4KPj4+Pj4gLSAgICByZXR1cm4gYm8tPnRiby5vZmZz ZXQ7Cj4+Pj4+ICsgICAgcmV0dXJuIGFtZGdwdV9nbWNfc2lnbl9leHRlbmQoYm8tPnRiby5vZmZz ZXQpOwo+Pj4+PiAgIH0KPj4+Pj4KPj4+Pj4gICAvKioKPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdmlydC5jCj4+Pj4+IGluZGV4IDM4ODU2MzY1NTgwZC4uZjJmMzU4YWEw NTk3IDEwMDY0NAo+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dmlydC5jCj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0 LmMKPj4+Pj4gQEAgLTI4LDkgKzI4LDcgQEAgdWludDY0X3QgYW1kZ3B1X2NzYV92YWRkcihzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPj4+Pj4gICAgICAgdWludDY0X3QgYWRkciA9IGFkZXYt PnZtX21hbmFnZXIubWF4X3BmbiA8PCBBTURHUFVfR1BVX1BBR0VfU0hJRlQ7Cj4+Pj4+Cj4+Pj4+ ICAgICAgIGFkZHIgLT0gQU1ER1BVX1ZBX1JFU0VSVkVEX1NJWkU7Cj4+Pj4+IC0KPj4+Pj4gLSAg ICBpZiAoYWRkciA+PSBBTURHUFVfVkFfSE9MRV9TVEFSVCkKPj4+Pj4gLSAgICAgICAgYWRkciB8 PSBBTURHUFVfVkFfSE9MRV9FTkQ7Cj4+Pj4+ICsgICAgYWRkciA9IGFtZGdwdV9nbWNfc2lnbl9l eHRlbmQoYWRkcik7Cj4+Pj4+Cj4+Pj4+ICAgICAgIHJldHVybiBhZGRyOwo+Pj4+PiAgIH0KPj4+ Pj4gQEAgLTczLDcgKzcxLDcgQEAgdm9pZCBhbWRncHVfZnJlZV9zdGF0aWNfY3NhKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KSB7Cj4+Pj4+ICAgaW50IGFtZGdwdV9tYXBfc3RhdGljX2NzYShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0sCj4+Pj4+ICAg ICAgICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvX3ZhICoqYm9fdmEpCj4+Pj4+ICAgewo+Pj4+ PiAtICAgIHVpbnQ2NF90IGNzYV9hZGRyID0gYW1kZ3B1X2NzYV92YWRkcihhZGV2KSAmIEFNREdQ VV9WQV9IT0xFX01BU0s7Cj4+Pj4+ICsgICAgdWludDY0X3QgY3NhX2FkZHIgPSBhbWRncHVfY3Nh X3ZhZGRyKGFkZXYpICYgQU1ER1BVX0dNQ19IT0xFX01BU0s7Cj4+Pj4+ICAgICAgIHN0cnVjdCB3 d19hY3F1aXJlX2N0eCB0aWNrZXQ7Cj4+Pj4+ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsK Pj4+Pj4gICAgICAgc3RydWN0IGFtZGdwdV9ib19saXN0X2VudHJ5IHBkOwo+Pj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+Pj4+PiBpbmRleCAxZjRiOGRmYzA0NTYuLjhi YmJhMDEyN2U0MiAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZtLmMKPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3ZtLmMKPj4+Pj4gQEAgLTM5OSw3ICszOTksNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92bV9jbGVh cl9ibyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPj4+Pj4gICAgICAgICAgIGlmIChsZXZl bCA9PSBhZGV2LT52bV9tYW5hZ2VyLnJvb3RfbGV2ZWwpIHsKPj4+Pj4gICAgICAgICAgICAgICBh dHNfZW50cmllcyA9IGFtZGdwdV92bV9sZXZlbF9zaGlmdChhZGV2LCBsZXZlbCk7Cj4+Pj4+ICAg ICAgICAgICAgICAgYXRzX2VudHJpZXMgKz0gQU1ER1BVX0dQVV9QQUdFX1NISUZUOwo+Pj4+PiAt ICAgICAgICAgICAgYXRzX2VudHJpZXMgPSBBTURHUFVfVkFfSE9MRV9TVEFSVCA+PiBhdHNfZW50 cmllczsKPj4+Pj4gKyAgICAgICAgICAgIGF0c19lbnRyaWVzID0gQU1ER1BVX0dNQ19IT0xFX1NU QVJUID4+IGF0c19lbnRyaWVzOwo+Pj4+PiAgICAgICAgICAgICAgIGF0c19lbnRyaWVzID0gbWlu KGF0c19lbnRyaWVzLCBlbnRyaWVzKTsKPj4+Pj4gICAgICAgICAgICAgICBlbnRyaWVzIC09IGF0 c19lbnRyaWVzOwo+Pj4+PiAgICAgICAgICAgfSBlbHNlIHsKPj4+Pj4gQEAgLTYyOSw3ICs2Mjks NyBAQCBpbnQgYW1kZ3B1X3ZtX2FsbG9jX3B0cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwK Pj4+Pj4gICAgICAgZWFkZHIgPSBzYWRkciArIHNpemUgLSAxOwo+Pj4+Pgo+Pj4+PiAgICAgICBp ZiAodm0tPnB0ZV9zdXBwb3J0X2F0cykKPj4+Pj4gLSAgICAgICAgYXRzID0gc2FkZHIgPCBBTURH UFVfVkFfSE9MRV9TVEFSVDsKPj4+Pj4gKyAgICAgICAgYXRzID0gc2FkZHIgPCBBTURHUFVfR01D X0hPTEVfU1RBUlQ7Cj4+Pj4+Cj4+Pj4+ICAgICAgIHNhZGRyIC89IEFNREdQVV9HUFVfUEFHRV9T SVpFOwo+Pj4+PiAgICAgICBlYWRkciAvPSBBTURHUFVfR1BVX1BBR0VfU0laRTsKPj4+Pj4gQEAg LTE5MzQsNyArMTkzNCw4IEBAIGludCBhbWRncHVfdm1fY2xlYXJfZnJlZWQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsCj4+Pj4+ICAgICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9ib192YV9t YXBwaW5nLCBsaXN0KTsKPj4+Pj4gICAgICAgICAgIGxpc3RfZGVsKCZtYXBwaW5nLT5saXN0KTsK Pj4+Pj4KPj4+Pj4gLSAgICAgICAgaWYgKHZtLT5wdGVfc3VwcG9ydF9hdHMgJiYgbWFwcGluZy0+ c3RhcnQgPCBBTURHUFVfVkFfSE9MRV9TVEFSVCkKPj4+Pj4gKyAgICAgICAgaWYgKHZtLT5wdGVf c3VwcG9ydF9hdHMgJiYKPj4+Pj4gKyAgICAgICAgICAgIG1hcHBpbmctPnN0YXJ0IDwgQU1ER1BV X0dNQ19IT0xFX1NUQVJUKQo+Pj4+PiAgICAgICAgICAgICAgIGluaXRfcHRlX3ZhbHVlID0gQU1E R1BVX1BURV9ERUZBVUxUX0FUQzsKPj4+Pj4KPj4+Pj4gICAgICAgICAgIHIgPSBhbWRncHVfdm1f Ym9fdXBkYXRlX21hcHBpbmcoYWRldiwgTlVMTCwgTlVMTCwgdm0sCj4+Pj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCj4+Pj4+IGluZGV4IDk0ZmU0Nzg5MGFkZi4uMmNlNDUy MTk4MDE3IDEwMDY0NAo+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdm0uaAo+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0u aAo+Pj4+PiBAQCAtMTAxLDE5ICsxMDEsNiBAQCBzdHJ1Y3QgYW1kZ3B1X2JvX2xpc3RfZW50cnk7 Cj4+Pj4+ICAgLyogaGFyZGNvZGUgdGhhdCBsaW1pdCBmb3Igbm93ICovCj4+Pj4+ICAgI2RlZmlu ZSBBTURHUFVfVkFfUkVTRVJWRURfU0laRSAgICAgICAgICAgICgxVUxMIDw8IDIwKQo+Pj4+Pgo+ Pj4+PiAtLyogVkEgaG9sZSBmb3IgNDhiaXQgYWRkcmVzc2VzIG9uIFZlZ2ExMCAqLwo+Pj4+PiAt I2RlZmluZSBBTURHUFVfVkFfSE9MRV9TVEFSVCAweDAwMDA4MDAwMDAwMDAwMDBVTEwKPj4+Pj4g LSNkZWZpbmUgQU1ER1BVX1ZBX0hPTEVfRU5EICAgICAgICAgICAgMHhmZmZmODAwMDAwMDAwMDAw VUxMCj4+Pj4+IC0KPj4+Pj4gLS8qCj4+Pj4+IC0gKiBIYXJkd2FyZSBpcyBwcm9ncmFtbWVkIGFz IGlmIHRoZSBob2xlIGRvZXNuJ3QgZXhpc3RzIHdpdGggc3RhcnQgYW5kIGVuZAo+Pj4+PiAtICog YWRkcmVzcyB2YWx1ZXMuCj4+Pj4+IC0gKgo+Pj4+PiAtICogVGhpcyBtYXNrIGlzIHVzZWQgdG8g cmVtb3ZlIHRoZSB1cHBlciAxNmJpdHMgb2YgdGhlIFZBIGFuZCBzbyBjb21lIHVwIHdpdGgKPj4+ Pj4gLSAqIHRoZSBsaW5lYXIgYWRkciB2YWx1ZS4KPj4+Pj4gLSAqLwo+Pj4+PiAtI2RlZmluZSBB TURHUFVfVkFfSE9MRV9NQVNLIDB4MDAwMGZmZmZmZmZmZmZmZlVMTAo+Pj4+PiAtCj4+Pj4+ICAg LyogbWF4IHZtaWRzIGRlZGljYXRlZCBmb3IgcHJvY2VzcyAqLwo+Pj4+PiAgICNkZWZpbmUgQU1E R1BVX1ZNX01BWF9SRVNFUlZFRF9WTUlEICAgIDEKPj4+Pj4KPj4+Pj4KPj4+Cj4KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxp c3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==