From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 4/4] amdgpu: use sync file for shared semaphores Date: Wed, 15 Mar 2017 10:43:01 +0100 Message-ID: References: <20170314005054.7487-1-airlied@gmail.com> <20170314005054.7487-6-airlied@gmail.com> <20170315090129.fneo5gafrz2jec32@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170315090129.fneo5gafrz2jec32-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Daniel Vetter , Dave Airlie Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org QW0gMTUuMDMuMjAxNyB1bSAxMDowMSBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4gT24gVHVlLCBN YXIgMTQsIDIwMTcgYXQgMTA6NTA6NTRBTSArMTAwMCwgRGF2ZSBBaXJsaWUgd3JvdGU6Cj4+IEZy b206IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+Cj4+Cj4+IFRoaXMgY3JlYXRlcyBh IG5ldyBpbnRlcmZhY2UgZm9yIGFtZGdwdSB3aXRoIGlvY3RscyB0bwo+PiBjcmVhdGUvZGVzdHJv eS9pbXBvcnQgYW5kIGV4cG9ydCBzaGFyZWQgc2VtYXBob3JlcyB1c2luZwo+PiBzZW0gb2JqZWN0 IGJhY2tlZCBieSB0aGUgc3luY19maWxlIGNvZGUuIFRoZSBzZW1hcGhvcmVzCj4+IGFyZSBub3Qg aW5zdGFsbGVkIGFzIGZkIChleGNlcHQgZm9yIGV4cG9ydCksIGJ1dCByYXRoZXIKPj4gbGlrZSBv dGhlciBkcml2ZXIgaW50ZXJuYWwgb2JqZWN0cyBpbiBhbiBpZHIuIFRoZSBpZHIKPj4gaG9sZHMg dGhlIGluaXRpYWwgcmVmZXJlbmNlIG9uIHRoZSBzeW5jIGZpbGUuCj4+Cj4+IFRoZSBjb21tYW5k IHN1Ym1pc3Npb24gaW50ZXJmYWNlIGlzIGVuaGFuY2VkIHdpdGggdHdvIG5ldwo+PiBjaHVua3Ms IG9uZSBmb3Igc2VtYXBob3JlIHdhaXRpbmcsIG9uZSBmb3Igc2VtYXBob3JlIHNpZ25hbGxpbmcK Pj4gYW5kIGp1c3QgdGFrZXMgYSBsaXN0IG9mIGhhbmRsZXMgZm9yIGVhY2guCj4+Cj4+IFRoaXMg aXMgYmFzZWQgb24gd29yayBvcmlnaW5hbGx5IGRvbmUgYnkgRGF2aWQgWmhvdSBhdCBBTUQsCj4+ IHdpdGggaW5wdXQgZnJvbSBDaHJpc3RpYW4gS29uaWcgb24gd2hhdCB0aGluZ3Mgc2hvdWxkIGxv b2sgbGlrZS4KPj4KPj4gTk9URTogdGhpcyBpbnRlcmZhY2UgYWRkaXRpb24gbmVlZHMgYSB2ZXJz aW9uIGJ1bXAgdG8gZXhwb3NlCj4+IGl0IHRvIHVzZXJzcGFjZS4KPj4KPj4gU2lnbmVkLW9mZi1i eTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KPiBBbm90aGVyIHVhcGkgY29ybmVy IGNhc2U6IFNpbmNlIHlvdSBhbGxvdyBzZW1hcGhvcmVzIHRvIGJlIGNyZWF0ZWQgYmVmb3JlCj4g dGhleSBoYXZlIGEgZmlyc3QgZmVuY2UgYXR0YWNoZWQsIHRoYXQgZXNzZW50aWFsbHkgY3JlYXRl cyBmdXR1cmUgZmVuY2VzLgo+IEkuZS4gc3luY19maWxlIGZkIHdpdGggbm8gZmVuY2UgeWV0IGF0 dGFjaGVkLiBXZSB3YW50IHRoYXQgYW55d2F5LCBidXQKPiBtYXliZSBub3QgdG9nZXRoZXIgd2l0 aCBzZW1hcGhvcmVzIChzaW5jZSB0aGVyZSdzIHNvbWUgbW9yZSBpbXBsaWNhdGlvbnMpLgo+Cj4g SSB0aGluayBpdCdkIGJlIGdvb2QgdG8gYXR0YWNoIGEgZHVtbXkgZmVuY2Ugd2hpY2ggYWxyZWFk eSBzdGFydHMgb3V0IGFzCj4gc2lnbmFsbGVkIHRvIHN5bmNfZmlsZS0+ZmVuY2UgZm9yIHNlbWFw aG9yZXMuIFRoYXQgd2F5IHVzZXJzcGFjZSBjYW4ndCBnbwo+IGV2aWwsIGNyZWF0ZSBhIHNlbWFw aG9yZSwgdGhlbiBwYXNzIGl0IHRvIGEgZHJpdmVyIHdoaWNoIHRoZW4gcHJvbXB0bHkKPiBvb3Bz ZXMgb3Igd29yc2UgYmVjYXVzZSBpdCBhc3N1bWVzIHRoZW4gd2hlbiBpdCBoYXMgYSBzeW5jX2Zp bGUsIGl0IGFsc28KPiBoYXMgYSBmZW5jZS4gQW5kIHRoZSBkdW1teSBmZW5jZSBjb3VsZCBiZSBn bG9iYWxseSBzaGFyZWQsIHNvIG5vdCByZWFsbHkKPiBvdmVyaGVhZC4KClNvdW5kcyBmaXNoeSB0 byBtZSwgd2hhdCBoYXBwZW5zIGluIGNhc2Ugb2YgYSByYWNlIGNvbmRpdGlvbiBhbmQgdGhlIApy ZWNlaXZlciBzb21ldGltZXMgd2FpdHMgb24gdGhlIGR1bW15IGFuZCBzb21ldGltZXMgb24gdGhl IHJlYWwgZmVuY2U/CgpJIHdvdWxkIHJhdGhlciB0ZWFjaCB0aGUgdXNlcnMgb2Ygc3luY19maWxl IHRvIHJldHVybiBhIHByb3BlciBlcnJvciAKY29kZSB3aGVuIHlvdSB3YW50IHRvIHdhaXQgb24g YSBzeW5jX2ZpbGUgd2hpY2ggZG9lc24ndCBoYXZlIGEgZmVuY2UgeWV0LgoKQ2hyaXN0aWFuLgoK PiAtRGFuaWVsCj4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZp bGUgICAgIHwgICAyICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1Lmgg ICAgIHwgIDEyICsrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMg IHwgIDcwICsrKysrKysrKystCj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2ttcy5jIHwgICA4ICsrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Nl bS5jIHwgMjA0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICAgaW5jbHVkZS91 YXBpL2RybS9hbWRncHVfZHJtLmggICAgICAgICAgIHwgIDI4ICsrKysrCj4+ICAgNiBmaWxlcyBj aGFuZ2VkLCAzMjIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPj4gICBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3NlbS5jCj4+Cj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZSBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L01ha2VmaWxlCj4+IGluZGV4IDI4MTRhYWQuLjQwNGJjYmEgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L01ha2VmaWxlCj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L01ha2VmaWxlCj4+IEBAIC0yNCw3ICsyNCw3IEBA IGFtZGdwdS15ICs9IGFtZGdwdV9kZXZpY2UubyBhbWRncHVfa21zLm8gXAo+PiAgIAlhdG9tYmlv c19lbmNvZGVycy5vIGFtZGdwdV9zYS5vIGF0b21iaW9zX2kyYy5vIFwKPj4gICAJYW1kZ3B1X3By aW1lLm8gYW1kZ3B1X3ZtLm8gYW1kZ3B1X2liLm8gYW1kZ3B1X3BsbC5vIFwKPj4gICAJYW1kZ3B1 X3Vjb2RlLm8gYW1kZ3B1X2JvX2xpc3QubyBhbWRncHVfY3R4Lm8gYW1kZ3B1X3N5bmMubyBcCj4+ IC0JYW1kZ3B1X2d0dF9tZ3IubyBhbWRncHVfdnJhbV9tZ3IubyBhbWRncHVfdmlydC5vCj4+ICsJ YW1kZ3B1X2d0dF9tZ3IubyBhbWRncHVfdnJhbV9tZ3IubyBhbWRncHVfdmlydC5vIGFtZGdwdV9z ZW0ubwo+PiAgIAo+PiAgICMgYWRkIGFzaWMgc3BlY2lmaWMgYmxvY2sKPj4gICBhbWRncHUtJChD T05GSUdfRFJNX0FNREdQVV9DSUspKz0gY2lrLm8gY2lrX2loLm8ga3Zfc21jLm8ga3ZfZHBtLm8g XAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+PiBpbmRleCBjMWI5MTM1Li40ZWQ4 ODExIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+PiBAQCAtNzAyLDYg KzcwMiw4IEBAIHN0cnVjdCBhbWRncHVfZnByaXYgewo+PiAgIAlzdHJ1Y3QgbXV0ZXgJCWJvX2xp c3RfbG9jazsKPj4gICAJc3RydWN0IGlkcgkJYm9fbGlzdF9oYW5kbGVzOwo+PiAgIAlzdHJ1Y3Qg YW1kZ3B1X2N0eF9tZ3IJY3R4X21ncjsKPj4gKwlzcGlubG9ja190CQlzZW1faGFuZGxlc19sb2Nr Owo+PiArCXN0cnVjdCBpZHIJCXNlbV9oYW5kbGVzOwo+PiAgIH07Cj4+ICAgCj4+ICAgLyoKPj4g QEAgLTE4MTQsNSArMTgxNiwxNSBAQCBhbWRncHVfY3NfZmluZF9tYXBwaW5nKHN0cnVjdCBhbWRn cHVfY3NfcGFyc2VyICpwYXJzZXIsCj4+ICAgCQkgICAgICAgdWludDY0X3QgYWRkciwgc3RydWN0 IGFtZGdwdV9ibyAqKmJvKTsKPj4gICBpbnQgYW1kZ3B1X2NzX3N5c3ZtX2FjY2Vzc19yZXF1aXJl ZChzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcGFyc2VyKTsKPj4gICAKPj4gK2ludCBhbWRncHVf c2VtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4+ICsJCSAgICAg c3RydWN0IGRybV9maWxlICpmaWxwKTsKPj4gK3ZvaWQgYW1kZ3B1X3NlbV9kZXN0cm95KHN0cnVj dCBhbWRncHVfZnByaXYgKmZwcml2LCB1MzIgaGFuZGxlKTsKPj4gK2ludCBhbWRncHVfc2VtX2xv b2t1cF9hbmRfc2lnbmFsKHN0cnVjdCBhbWRncHVfZnByaXYgKmZwcml2LAo+PiArCQkJCSB1aW50 MzJfdCBoYW5kbGUsCj4+ICsJCQkJIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKTsKPj4gK2ludCBh bWRncHVfc2VtX2xvb2t1cF9hbmRfc3luYyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPj4g KwkJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2Zwcml2ICpmcHJpdiwKPj4gKwkJCSAgICAgICBzdHJ1 Y3QgYW1kZ3B1X3N5bmMgKnN5bmMsCj4+ICsJCQkgICAgICAgdWludDMyX3QgaGFuZGxlKTsKPj4g ICAjaW5jbHVkZSAiYW1kZ3B1X29iamVjdC5oIgo+PiAgICNlbmRpZgo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfY3MuYwo+PiBpbmRleCA0NjcxNDMyLi44MGZjOTRiIDEwMDY0NAo+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwo+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwo+PiBAQCAtMjE3LDYgKzIxNyw4 IEBAIGludCBhbWRncHVfY3NfcGFyc2VyX2luaXQoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAs IHZvaWQgKmRhdGEpCj4+ICAgCQkJYnJlYWs7Cj4+ICAgCj4+ICAgCQljYXNlIEFNREdQVV9DSFVO S19JRF9ERVBFTkRFTkNJRVM6Cj4+ICsJCWNhc2UgQU1ER1BVX0NIVU5LX0lEX1NFTV9XQUlUOgo+ PiArCQljYXNlIEFNREdQVV9DSFVOS19JRF9TRU1fU0lHTkFMOgo+PiAgIAkJCWJyZWFrOwo+PiAg IAo+PiAgIAkJZGVmYXVsdDoKPj4gQEAgLTEwMDksNiArMTAxMSwyOCBAQCBzdGF0aWMgaW50IGFt ZGdwdV9wcm9jZXNzX2ZlbmNlX2RlcChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPj4gICAJ cmV0dXJuIDA7Cj4+ICAgfQo+PiAgIAo+PiArc3RhdGljIGludCBhbWRncHVfcHJvY2Vzc19zZW1f d2FpdF9kZXAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+ICsJCQkJICAgICAgIHN0cnVj dCBhbWRncHVfY3NfcGFyc2VyICpwLAo+PiArCQkJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2NzX2No dW5rICpjaHVuaykKPj4gK3sKPj4gKwlzdHJ1Y3QgYW1kZ3B1X2Zwcml2ICpmcHJpdiA9IHAtPmZp bHAtPmRyaXZlcl9wcml2Owo+PiArCXVuc2lnbmVkIG51bV9kZXBzOwo+PiArCWludCBpLCByOwo+ PiArCXN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3NlbSAqZGVwczsKPj4gKwo+PiArCWRlcHMg PSAoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc2VtICopY2h1bmstPmtkYXRhOwo+PiArCW51 bV9kZXBzID0gY2h1bmstPmxlbmd0aF9kdyAqIDQgLwo+PiArCQlzaXplb2Yoc3RydWN0IGRybV9h bWRncHVfY3NfY2h1bmtfc2VtKTsKPj4gKwo+PiArCWZvciAoaSA9IDA7IGkgPCBudW1fZGVwczsg KytpKSB7Cj4+ICsJCXIgPSBhbWRncHVfc2VtX2xvb2t1cF9hbmRfc3luYyhhZGV2LCBmcHJpdiwg JnAtPmpvYi0+c3luYywKPj4gKwkJCQkJICAgICAgIGRlcHNbaV0uaGFuZGxlKTsKPj4gKwkJaWYg KHIpCj4+ICsJCQlyZXR1cm4gcjsKPj4gKwl9Cj4+ICsJcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4g ICBzdGF0aWMgaW50IGFtZGdwdV9jc19kZXBlbmRlbmNpZXMoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCj4+ICAgCQkJCSAgc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnApCj4+ICAgewo+PiBA QCAtMTAyMywxMiArMTA0Nyw1NiBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19kZXBlbmRlbmNpZXMo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+ICAgCQkJciA9IGFtZGdwdV9wcm9jZXNzX2Zl bmNlX2RlcChhZGV2LCBwLCBjaHVuayk7Cj4+ICAgCQkJaWYgKHIpCj4+ICAgCQkJCXJldHVybiBy Owo+PiArCQl9IGVsc2UgaWYgKGNodW5rLT5jaHVua19pZCA9PSBBTURHUFVfQ0hVTktfSURfU0VN X1dBSVQpIHsKPj4gKwkJCXIgPSBhbWRncHVfcHJvY2Vzc19zZW1fd2FpdF9kZXAoYWRldiwgcCwg Y2h1bmspOwo+PiArCQkJaWYgKHIpCj4+ICsJCQkJcmV0dXJuIHI7Cj4+ICAgCQl9Cj4+ICAgCX0K Pj4gICAKPj4gICAJcmV0dXJuIDA7Cj4+ICAgfQo+PiAgIAo+PiArc3RhdGljIGludCBhbWRncHVf cHJvY2Vzc19zZW1fc2lnbmFsX2RlcChzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKPj4gKwkJ CQkJIHN0cnVjdCBhbWRncHVfY3NfY2h1bmsgKmNodW5rLAo+PiArCQkJCQkgc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2UpCj4+ICt7Cj4+ICsJc3RydWN0IGFtZGdwdV9mcHJpdiAqZnByaXYgPSBwLT5m aWxwLT5kcml2ZXJfcHJpdjsKPj4gKwl1bnNpZ25lZCBudW1fZGVwczsKPj4gKwlpbnQgaSwgcjsK Pj4gKwlzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19zZW0gKmRlcHM7Cj4+ICsKPj4gKwlkZXBz ID0gKHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3NlbSAqKWNodW5rLT5rZGF0YTsKPj4gKwlu dW1fZGVwcyA9IGNodW5rLT5sZW5ndGhfZHcgKiA0IC8KPj4gKwkJc2l6ZW9mKHN0cnVjdCBkcm1f YW1kZ3B1X2NzX2NodW5rX3NlbSk7Cj4+ICsKPj4gKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2RlcHM7 ICsraSkgewo+PiArCQlyID0gYW1kZ3B1X3NlbV9sb29rdXBfYW5kX3NpZ25hbChmcHJpdiwgZGVw c1tpXS5oYW5kbGUsCj4+ICsJCQkJCQkgZmVuY2UpOwo+PiArCQlpZiAocikKPj4gKwkJCXJldHVy biByOwo+PiArCX0KPj4gKwlyZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBhbWRn cHVfY3NfcG9zdF9kZXBlbmRlbmNpZXMoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnApCj4+ICt7 Cj4+ICsJaW50IGksIHI7Cj4+ICsKPj4gKwlmb3IgKGkgPSAwOyBpIDwgcC0+bmNodW5rczsgKytp KSB7Cj4+ICsJCXN0cnVjdCBhbWRncHVfY3NfY2h1bmsgKmNodW5rOwo+PiArCj4+ICsJCWNodW5r ID0gJnAtPmNodW5rc1tpXTsKPj4gKwo+PiArCQlpZiAoY2h1bmstPmNodW5rX2lkID09IEFNREdQ VV9DSFVOS19JRF9TRU1fU0lHTkFMKSB7Cj4+ICsJCQlyID0gYW1kZ3B1X3Byb2Nlc3Nfc2VtX3Np Z25hbF9kZXAocCwgY2h1bmssIHAtPmZlbmNlKTsKPj4gKwkJCWlmIChyKQo+PiArCQkJCXJldHVy biByOwo+PiArCQl9Cj4+ICsJfQo+PiArCXJldHVybiAwOwo+PiArfQo+PiArCj4+ICAgc3RhdGlj IGludCBhbWRncHVfY3Nfc3VibWl0KHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLAo+PiAgIAkJ CSAgICB1bmlvbiBkcm1fYW1kZ3B1X2NzICpjcykKPj4gICB7Cj4+IEBAIC0xMDU2LDcgKzExMjQs NyBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19zdWJtaXQoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIg KnAsCj4+ICAgCXRyYWNlX2FtZGdwdV9jc19pb2N0bChqb2IpOwo+PiAgIAlhbWRfc2NoZWRfZW50 aXR5X3B1c2hfam9iKCZqb2ItPmJhc2UpOwo+PiAgIAo+PiAtCXJldHVybiAwOwo+PiArCXJldHVy biBhbWRncHVfY3NfcG9zdF9kZXBlbmRlbmNpZXMocCk7Cj4+ICAgfQo+PiAgIAo+PiAgIGludCBh bWRncHVfY3NfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0 IGRybV9maWxlICpmaWxwKQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5j Cj4+IGluZGV4IDYxZDk0YzcuLjAxM2FlZDEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfa21zLmMKPj4gQEAgLTY2NCw2ICs2NjQsOCBAQCBpbnQgYW1kZ3B1X2RyaXZl cl9vcGVuX2ttcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdikKPj4gICAJbXV0ZXhfaW5pdCgmZnByaXYtPmJvX2xpc3RfbG9jayk7Cj4+ICAgCWlkcl9p bml0KCZmcHJpdi0+Ym9fbGlzdF9oYW5kbGVzKTsKPj4gICAKPj4gKwlzcGluX2xvY2tfaW5pdCgm ZnByaXYtPnNlbV9oYW5kbGVzX2xvY2spOwo+PiArCWlkcl9pbml0KCZmcHJpdi0+c2VtX2hhbmRs ZXMpOwo+PiAgIAlhbWRncHVfY3R4X21ncl9pbml0KCZmcHJpdi0+Y3R4X21ncik7Cj4+ICAgCj4+ ICAgCWZpbGVfcHJpdi0+ZHJpdmVyX3ByaXYgPSBmcHJpdjsKPj4gQEAgLTY4OSw2ICs2OTEsNyBA QCB2b2lkIGFtZGdwdV9kcml2ZXJfcG9zdGNsb3NlX2ttcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+PiAgIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ ICAgCXN0cnVjdCBhbWRncHVfZnByaXYgKmZwcml2ID0gZmlsZV9wcml2LT5kcml2ZXJfcHJpdjsK Pj4gICAJc3RydWN0IGFtZGdwdV9ib19saXN0ICpsaXN0Owo+PiArCXN0cnVjdCBhbWRncHVfc2Vt ICpzZW07Cj4+ICAgCWludCBoYW5kbGU7Cj4+ICAgCj4+ICAgCWlmICghZnByaXYpCj4+IEBAIC03 MTUsNiArNzE4LDEwIEBAIHZvaWQgYW1kZ3B1X2RyaXZlcl9wb3N0Y2xvc2Vfa21zKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4+ICAgCWlkcl9kZXN0cm95KCZmcHJpdi0+Ym9fbGlzdF9oYW5kbGVz KTsKPj4gICAJbXV0ZXhfZGVzdHJveSgmZnByaXYtPmJvX2xpc3RfbG9jayk7Cj4+ICAgCj4+ICsJ aWRyX2Zvcl9lYWNoX2VudHJ5KCZmcHJpdi0+c2VtX2hhbmRsZXMsIHNlbSwgaGFuZGxlKQo+PiAr CQlhbWRncHVfc2VtX2Rlc3Ryb3koZnByaXYsIGhhbmRsZSk7Cj4+ICsJaWRyX2Rlc3Ryb3koJmZw cml2LT5zZW1faGFuZGxlcyk7Cj4+ICsKPj4gICAJa2ZyZWUoZnByaXYpOwo+PiAgIAlmaWxlX3By aXYtPmRyaXZlcl9wcml2ID0gTlVMTDsKPj4gICAKPj4gQEAgLTg5Niw2ICs5MDMsNyBAQCBjb25z dCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgYW1kZ3B1X2lvY3Rsc19rbXNbXSA9IHsKPj4gICAJRFJN X0lPQ1RMX0RFRl9EUlYoQU1ER1BVX0dFTV9WQSwgYW1kZ3B1X2dlbV92YV9pb2N0bCwgRFJNX0FV VEh8RFJNX1JFTkRFUl9BTExPVyksCj4+ICAgCURSTV9JT0NUTF9ERUZfRFJWKEFNREdQVV9HRU1f T1AsIGFtZGdwdV9nZW1fb3BfaW9jdGwsIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAo+PiAg IAlEUk1fSU9DVExfREVGX0RSVihBTURHUFVfR0VNX1VTRVJQVFIsIGFtZGdwdV9nZW1fdXNlcnB0 cl9pb2N0bCwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCj4+ICsJRFJNX0lPQ1RMX0RFRl9E UlYoQU1ER1BVX1NFTSwgYW1kZ3B1X3NlbV9pb2N0bCwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExP VyksCj4+ICAgfTsKPj4gICBjb25zdCBpbnQgYW1kZ3B1X21heF9rbXNfaW9jdGwgPSBBUlJBWV9T SVpFKGFtZGdwdV9pb2N0bHNfa21zKTsKPj4gICAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9zZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9zZW0uYwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwLi4w NjY1MjBhCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3NlbS5jCj4+IEBAIC0wLDAgKzEsMjA0IEBACj4+ICsvKgo+PiArICogQ29weXJp Z2h0IDIwMTYgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgo+PiArICoKPj4gKyAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhCj4+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+PiArICogdG8gZGVhbCBpbiB0aGUg U29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlv bgo+PiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhl IFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPj4gKyAqIFNvZnR3 YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRp dGlvbnM6Cj4+ICsgKgo+PiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KPj4gKyAqIGFsbCBjb3BpZXMg b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+PiArICoKPj4gKyAqIFRI RSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL SU5ELCBFWFBSRVNTIE9SCj4+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPj4gKyAqIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBT SEFMTAo+PiArICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJM RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCj4+ICsgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRI RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPj4gKyAqIEFS SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1Ig VEhFIFVTRSBPUgo+PiArICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+PiArICoK Pj4gKyAqIEF1dGhvcnM6Cj4+ICsgKiAgICBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQu Y29tPgo+PiArICovCj4+ICsjaW5jbHVkZSA8bGludXgvZmlsZS5oPgo+PiArI2luY2x1ZGUgPGxp bnV4L2ZzLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4+ICsjaW5jbHVkZSA8bGlu dXgvcG9sbC5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+Cj4+ICsjaW5jbHVkZSA8 bGludXgvZXhwb3J0Lmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KPj4gKyNpbmNsdWRl IDxsaW51eC9zbGFiLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgo+PiArI2luY2x1 ZGUgPGxpbnV4L2Fub25faW5vZGVzLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvc3luY19maWxlLmg+ Cj4+ICsjaW5jbHVkZSAiYW1kZ3B1LmgiCj4+ICsjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPj4gKwo+ PiArc3RhdGljIGlubGluZSBzdHJ1Y3Qgc3luY19maWxlICphbWRncHVfc3luY19maWxlX2xvb2t1 cChzdHJ1Y3QgYW1kZ3B1X2Zwcml2ICpmcHJpdiwgdTMyIGhhbmRsZSkKPj4gK3sKPj4gKwlzdHJ1 Y3Qgc3luY19maWxlICpzeW5jX2ZpbGU7Cj4+ICsKPj4gKwlzcGluX2xvY2soJmZwcml2LT5zZW1f aGFuZGxlc19sb2NrKTsKPj4gKwo+PiArCS8qIENoZWNrIGlmIHdlIGN1cnJlbnRseSBoYXZlIGEg cmVmZXJlbmNlIG9uIHRoZSBvYmplY3QgKi8KPj4gKwlzeW5jX2ZpbGUgPSBpZHJfZmluZCgmZnBy aXYtPnNlbV9oYW5kbGVzLCBoYW5kbGUpOwo+PiArCj4+ICsJc3Bpbl91bmxvY2soJmZwcml2LT5z ZW1faGFuZGxlc19sb2NrKTsKPj4gKwo+PiArCXJldHVybiBzeW5jX2ZpbGU7Cj4+ICt9Cj4+ICsK Pj4gK3N0YXRpYyBpbnQgYW1kZ3B1X3NlbV9jcmVhdGUoc3RydWN0IGFtZGdwdV9mcHJpdiAqZnBy aXYsIHUzMiAqaGFuZGxlKQo+PiArewo+PiArCXN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSA9 IHN5bmNfZmlsZV9hbGxvYygpOwo+PiArCWludCByZXQ7Cj4+ICsKPj4gKwlpZiAoIXN5bmNfZmls ZSkKPj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4+ICsKPj4gKwlzbnByaW50ZihzeW5jX2ZpbGUtPm5h bWUsIHNpemVvZihzeW5jX2ZpbGUtPm5hbWUpLCAic3luY19zZW0iKTsKPj4gKwo+PiArCS8qIHdl IGdldCBhIGZpbGUgcmVmZXJlbmNlIGFuZCB3ZSB1c2UgdGhhdCBpbiB0aGUgaWRyLiAqLwo+PiAr CWlkcl9wcmVsb2FkKEdGUF9LRVJORUwpOwo+PiArCXNwaW5fbG9jaygmZnByaXYtPnNlbV9oYW5k bGVzX2xvY2spOwo+PiArCj4+ICsJcmV0ID0gaWRyX2FsbG9jKCZmcHJpdi0+c2VtX2hhbmRsZXMs IHN5bmNfZmlsZSwgMSwgMCwgR0ZQX05PV0FJVCk7Cj4+ICsKPj4gKwlzcGluX3VubG9jaygmZnBy aXYtPnNlbV9oYW5kbGVzX2xvY2spOwo+PiArCWlkcl9wcmVsb2FkX2VuZCgpOwo+PiArCj4+ICsJ aWYgKHJldCA8IDApCj4+ICsJCXJldHVybiByZXQ7Cj4+ICsKPj4gKwkqaGFuZGxlID0gcmV0Owo+ PiArCXJldHVybiAwOwo+PiArfQo+PiArCj4+ICt2b2lkIGFtZGdwdV9zZW1fZGVzdHJveShzdHJ1 Y3QgYW1kZ3B1X2Zwcml2ICpmcHJpdiwgdTMyIGhhbmRsZSkKPj4gK3sKPj4gKwlzdHJ1Y3Qgc3lu Y19maWxlICpzeW5jX2ZpbGUgPSBhbWRncHVfc3luY19maWxlX2xvb2t1cChmcHJpdiwgaGFuZGxl KTsKPj4gKwlpZiAoIXN5bmNfZmlsZSkKPj4gKwkJcmV0dXJuOwo+PiArCj4+ICsJc3Bpbl9sb2Nr KCZmcHJpdi0+c2VtX2hhbmRsZXNfbG9jayk7Cj4+ICsJaWRyX3JlbW92ZSgmZnByaXYtPnNlbV9o YW5kbGVzLCBoYW5kbGUpOwo+PiArCXNwaW5fdW5sb2NrKCZmcHJpdi0+c2VtX2hhbmRsZXNfbG9j ayk7Cj4+ICsKPj4gKwlmcHV0KHN5bmNfZmlsZS0+ZmlsZSk7Cj4+ICt9Cj4+ICsKPj4gKwo+PiAr aW50IGFtZGdwdV9zZW1fbG9va3VwX2FuZF9zaWduYWwoc3RydWN0IGFtZGdwdV9mcHJpdiAqZnBy aXYsCj4+ICsJCQkJIHVpbnQzMl90IGhhbmRsZSwKPj4gKwkJCQkgc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2UpCj4+ICt7Cj4+ICsJc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlOwo+PiArCXN0cnVj dCBkbWFfZmVuY2UgKm9sZF9mZW5jZTsKPj4gKwlzeW5jX2ZpbGUgPSBhbWRncHVfc3luY19maWxl X2xvb2t1cChmcHJpdiwgaGFuZGxlKTsKPj4gKwlpZiAoIXN5bmNfZmlsZSkKPj4gKwkJcmV0dXJu IC1FSU5WQUw7Cj4+ICsKPj4gKwlvbGRfZmVuY2UgPSBzeW5jX2ZpbGVfcmVwbGFjZV9mZW5jZShz eW5jX2ZpbGUsIGZlbmNlKTsKPj4gKwlkbWFfZmVuY2VfcHV0KG9sZF9mZW5jZSk7Cj4+ICsJcmV0 dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgYW1kZ3B1X3NlbV9pbXBvcnQoc3RydWN0 IGFtZGdwdV9mcHJpdiAqZnByaXYsCj4+ICsJCQkJICAgICAgIGludCBmZCwgdTMyICpoYW5kbGUp Cj4+ICt7Cj4+ICsJc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlID0gc3luY19maWxlX2ZkZ2V0 KGZkKTsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJaWYgKCFzeW5jX2ZpbGUpCj4+ICsJCXJldHVy biAtRUlOVkFMOwo+PiArCj4+ICsJaWRyX3ByZWxvYWQoR0ZQX0tFUk5FTCk7Cj4+ICsJc3Bpbl9s b2NrKCZmcHJpdi0+c2VtX2hhbmRsZXNfbG9jayk7Cj4+ICsKPj4gKwlyZXQgPSBpZHJfYWxsb2Mo JmZwcml2LT5zZW1faGFuZGxlcywgc3luY19maWxlLCAxLCAwLCBHRlBfTk9XQUlUKTsKPj4gKwo+ PiArCXNwaW5fdW5sb2NrKCZmcHJpdi0+c2VtX2hhbmRsZXNfbG9jayk7Cj4+ICsJaWRyX3ByZWxv YWRfZW5kKCk7Cj4+ICsKPj4gKwlmcHV0KHN5bmNfZmlsZS0+ZmlsZSk7Cj4+ICsJaWYgKHJldCA8 IDApCj4+ICsJCWdvdG8gZXJyX291dDsKPj4gKwo+PiArCSpoYW5kbGUgPSByZXQ7Cj4+ICsJcmV0 dXJuIDA7Cj4+ICtlcnJfb3V0Ogo+PiArCXJldHVybiByZXQ7Cj4+ICsKPj4gK30KPj4gKwo+PiAr c3RhdGljIGludCBhbWRncHVfc2VtX2V4cG9ydChzdHJ1Y3QgYW1kZ3B1X2Zwcml2ICpmcHJpdiwK Pj4gKwkJCSAgICAgdTMyIGhhbmRsZSwgaW50ICpmZCkKPj4gK3sKPj4gKwlzdHJ1Y3Qgc3luY19m aWxlICpzeW5jX2ZpbGU7Cj4+ICsJaW50IHJldDsKPj4gKwo+PiArCXN5bmNfZmlsZSA9IGFtZGdw dV9zeW5jX2ZpbGVfbG9va3VwKGZwcml2LCBoYW5kbGUpOwo+PiArCWlmICghc3luY19maWxlKQo+ PiArCQlyZXR1cm4gLUVJTlZBTDsKPj4gKwo+PiArCXJldCA9IGdldF91bnVzZWRfZmRfZmxhZ3Mo T19DTE9FWEVDKTsKPj4gKwlpZiAocmV0IDwgMCkKPj4gKwkJZ290byBlcnJfcHV0X2ZpbGU7Cj4+ ICsKPj4gKwlmZF9pbnN0YWxsKHJldCwgc3luY19maWxlLT5maWxlKTsKPj4gKwo+PiArCSpmZCA9 IHJldDsKPj4gKwlyZXR1cm4gMDsKPj4gK2Vycl9wdXRfZmlsZToKPj4gKwlyZXR1cm4gcmV0Owo+ PiArfQo+PiArCj4+ICtpbnQgYW1kZ3B1X3NlbV9sb29rdXBfYW5kX3N5bmMoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsCj4+ICsJCQkgICAgICAgc3RydWN0IGFtZGdwdV9mcHJpdiAqZnByaXYs Cj4+ICsJCQkgICAgICAgc3RydWN0IGFtZGdwdV9zeW5jICpzeW5jLAo+PiArCQkJICAgICAgIHVp bnQzMl90IGhhbmRsZSkKPj4gK3sKPj4gKwlpbnQgcjsKPj4gKwlzdHJ1Y3Qgc3luY19maWxlICpz eW5jX2ZpbGU7Cj4+ICsJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Cj4+ICsKPj4gKwlzeW5jX2Zp bGUgPSBhbWRncHVfc3luY19maWxlX2xvb2t1cChmcHJpdiwgaGFuZGxlKTsKPj4gKwlpZiAoIXN5 bmNfZmlsZSkKPj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+ICsKPj4gKwlmZW5jZSA9IHN5bmNfZmls ZV9yZXBsYWNlX2ZlbmNlKHN5bmNfZmlsZSwgTlVMTCk7Cj4+ICsJciA9IGFtZGdwdV9zeW5jX2Zl bmNlKGFkZXYsIHN5bmMsIGZlbmNlKTsKPj4gKwlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKPj4gKwo+ PiArCXJldHVybiByOwo+PiArfQo+PiArCj4+ICtpbnQgYW1kZ3B1X3NlbV9pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+PiArCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAq ZmlscCkKPj4gK3sKPj4gKwl1bmlvbiBkcm1fYW1kZ3B1X3NlbSAqYXJncyA9IGRhdGE7Cj4+ICsJ c3RydWN0IGFtZGdwdV9mcHJpdiAqZnByaXYgPSBmaWxwLT5kcml2ZXJfcHJpdjsKPj4gKwlpbnQg ciA9IDA7Cj4+ICsKPj4gKwlzd2l0Y2ggKGFyZ3MtPmluLm9wKSB7Cj4+ICsJY2FzZSBBTURHUFVf U0VNX09QX0NSRUFURV9TRU06Cj4+ICsJCXIgPSBhbWRncHVfc2VtX2NyZWF0ZShmcHJpdiwgJmFy Z3MtPm91dC5oYW5kbGUpOwo+PiArCQlicmVhazsKPj4gKwljYXNlIEFNREdQVV9TRU1fT1BfSU1Q T1JUX1NFTToKPj4gKwkJciA9IGFtZGdwdV9zZW1faW1wb3J0KGZwcml2LCBhcmdzLT5pbi5oYW5k bGUsICZhcmdzLT5vdXQuaGFuZGxlKTsKPj4gKwkJYnJlYWs7Cj4+ICsJY2FzZSBBTURHUFVfU0VN X09QX0VYUE9SVF9TRU06Cj4+ICsJCXIgPSBhbWRncHVfc2VtX2V4cG9ydChmcHJpdiwgYXJncy0+ aW4uaGFuZGxlLCAmYXJncy0+b3V0LmZkKTsKPj4gKwkJYnJlYWs7Cj4+ICsJY2FzZSBBTURHUFVf U0VNX09QX0RFU1RST1lfU0VNOgo+PiArCQlhbWRncHVfc2VtX2Rlc3Ryb3koZnByaXYsIGFyZ3Mt PmluLmhhbmRsZSk7Cj4+ICsJCWJyZWFrOwo+PiArCWRlZmF1bHQ6Cj4+ICsJCXIgPSAtRUlOVkFM Owo+PiArCQlicmVhazsKPj4gKwl9Cj4+ICsKPj4gKwlyZXR1cm4gcjsKPj4gK30KPj4gZGlmZiAt LWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9h bWRncHVfZHJtLmgKPj4gaW5kZXggNTc5NzI4My4uNjQ2YjEwMyAxMDA2NDQKPj4gLS0tIGEvaW5j bHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKPj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9hbWRn cHVfZHJtLmgKPj4gQEAgLTUxLDYgKzUxLDcgQEAgZXh0ZXJuICJDIiB7Cj4+ICAgI2RlZmluZSBE Uk1fQU1ER1BVX0dFTV9PUAkJMHgxMAo+PiAgICNkZWZpbmUgRFJNX0FNREdQVV9HRU1fVVNFUlBU UgkJMHgxMQo+PiAgICNkZWZpbmUgRFJNX0FNREdQVV9XQUlUX0ZFTkNFUwkJMHgxMgo+PiArI2Rl ZmluZSBEUk1fQU1ER1BVX1NFTSAgICAgICAgICAgICAgICAgIDB4MTMKPj4gICAKPj4gICAjZGVm aW5lIERSTV9JT0NUTF9BTURHUFVfR0VNX0NSRUFURQlEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNF ICsgRFJNX0FNREdQVV9HRU1fQ1JFQVRFLCB1bmlvbiBkcm1fYW1kZ3B1X2dlbV9jcmVhdGUpCj4+ ICAgI2RlZmluZSBEUk1fSU9DVExfQU1ER1BVX0dFTV9NTUFQCURSTV9JT1dSKERSTV9DT01NQU5E X0JBU0UgKyBEUk1fQU1ER1BVX0dFTV9NTUFQLCB1bmlvbiBkcm1fYW1kZ3B1X2dlbV9tbWFwKQo+ PiBAQCAtNjUsNiArNjYsNyBAQCBleHRlcm4gIkMiIHsKPj4gICAjZGVmaW5lIERSTV9JT0NUTF9B TURHUFVfR0VNX09QCQlEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0FNREdQVV9HRU1f T1AsIHN0cnVjdCBkcm1fYW1kZ3B1X2dlbV9vcCkKPj4gICAjZGVmaW5lIERSTV9JT0NUTF9BTURH UFVfR0VNX1VTRVJQVFIJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9BTURHUFVfR0VN X1VTRVJQVFIsIHN0cnVjdCBkcm1fYW1kZ3B1X2dlbV91c2VycHRyKQo+PiAgICNkZWZpbmUgRFJN X0lPQ1RMX0FNREdQVV9XQUlUX0ZFTkNFUwlEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJN X0FNREdQVV9XQUlUX0ZFTkNFUywgdW5pb24gZHJtX2FtZGdwdV93YWl0X2ZlbmNlcykKPj4gKyNk ZWZpbmUgRFJNX0lPQ1RMX0FNREdQVV9TRU0JCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBE Uk1fQU1ER1BVX1NFTSwgdW5pb24gZHJtX2FtZGdwdV9zZW0pCj4+ICAgCj4+ICAgI2RlZmluZSBB TURHUFVfR0VNX0RPTUFJTl9DUFUJCTB4MQo+PiAgICNkZWZpbmUgQU1ER1BVX0dFTV9ET01BSU5f R1RUCQkweDIKPj4gQEAgLTMzNSw2ICszMzcsMjYgQEAgdW5pb24gZHJtX2FtZGdwdV93YWl0X2Zl bmNlcyB7Cj4+ICAgCXN0cnVjdCBkcm1fYW1kZ3B1X3dhaXRfZmVuY2VzX291dCBvdXQ7Cj4+ICAg fTsKPj4gICAKPj4gKyNkZWZpbmUgQU1ER1BVX1NFTV9PUF9DUkVBVEVfU0VNIDAKPj4gKyNkZWZp bmUgQU1ER1BVX1NFTV9PUF9JTVBPUlRfU0VNIDEKPj4gKyNkZWZpbmUgQU1ER1BVX1NFTV9PUF9F WFBPUlRfU0VNIDIKPj4gKyNkZWZpbmUgQU1ER1BVX1NFTV9PUF9ERVNUUk9ZX1NFTSAzCj4+ICsK Pj4gK3N0cnVjdCBkcm1fYW1kZ3B1X3NlbV9pbiB7Cj4+ICsJX191MzIgb3A7Cj4+ICsJX191MzIg aGFuZGxlOwo+PiArfTsKPj4gKwo+PiArc3RydWN0IGRybV9hbWRncHVfc2VtX291dCB7Cj4+ICsJ X191MzIgZmQ7Cj4+ICsJX191MzIgaGFuZGxlOwo+PiArfTsKPj4gKwo+PiArdW5pb24gZHJtX2Ft ZGdwdV9zZW0gewo+PiArCXN0cnVjdCBkcm1fYW1kZ3B1X3NlbV9pbiBpbjsKPj4gKwlzdHJ1Y3Qg ZHJtX2FtZGdwdV9zZW1fb3V0IG91dDsKPj4gK307Cj4+ICsKPj4gICAjZGVmaW5lIEFNREdQVV9H RU1fT1BfR0VUX0dFTV9DUkVBVEVfSU5GTwkwCj4+ICAgI2RlZmluZSBBTURHUFVfR0VNX09QX1NF VF9QTEFDRU1FTlQJCTEKPj4gICAKPj4gQEAgLTM5MCw2ICs0MTIsOCBAQCBzdHJ1Y3QgZHJtX2Ft ZGdwdV9nZW1fdmEgewo+PiAgICNkZWZpbmUgQU1ER1BVX0NIVU5LX0lEX0lCCQkweDAxCj4+ICAg I2RlZmluZSBBTURHUFVfQ0hVTktfSURfRkVOQ0UJCTB4MDIKPj4gICAjZGVmaW5lIEFNREdQVV9D SFVOS19JRF9ERVBFTkRFTkNJRVMJMHgwMwo+PiArI2RlZmluZSBBTURHUFVfQ0hVTktfSURfU0VN X1dBSVQgICAgICAgIDB4MDQKPj4gKyNkZWZpbmUgQU1ER1BVX0NIVU5LX0lEX1NFTV9TSUdOQUwg ICAgICAweDA1Cj4+ICAgCj4+ICAgc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmsgewo+PiAgIAlf X3UzMgkJY2h1bmtfaWQ7Cj4+IEBAIC00NTQsNiArNDc4LDEwIEBAIHN0cnVjdCBkcm1fYW1kZ3B1 X2NzX2NodW5rX2ZlbmNlIHsKPj4gICAJX191MzIgb2Zmc2V0Owo+PiAgIH07Cj4+ICAgCj4+ICtz dHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19zZW0gewo+PiArCV9fdTMyIGhhbmRsZTsKPj4gK307 Cj4+ICsKPj4gICBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19kYXRhIHsKPj4gICAJdW5pb24g ewo+PiAgIAkJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfaWIJCWliX2RhdGE7Cj4+IC0tIAo+ PiAyLjcuNAo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK