From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH RFC 13/18] xen: introduce and use 'dom0_rambase_pfn' setting for kernel Dom0 Date: Thu, 19 May 2016 14:39:46 +0100 Message-ID: <573DC222.9000306@arm.com> References: <1463589161-4153-1-git-send-email-andrii.anisov@globallogic.com> <1463589161-4153-14-git-send-email-andrii.anisov@globallogic.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1463589161-4153-14-git-send-email-andrii.anisov@globallogic.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Andrii Anisov , embedded-pv-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , Andrew Cooper , Oleksandr Dmytryshyn , Steve Capper , Ian Jackson , George Dunlap , xen-devel@lists.xen.org, Jan Beulich List-Id: xen-devel@lists.xenproject.org SGVsbG8sCgpPbiAxOC8wNS8xNiAxNzozMiwgQW5kcmlpIEFuaXNvdiB3cm90ZToKPiBGcm9tOiBP bGVrc2FuZHIgRG15dHJ5c2h5biA8b2xla3NhbmRyLmRteXRyeXNoeW5AZ2xvYmFsbG9naWMuY29t Pgo+Cj4gVGhpcyBzZXR0aW5nIGlzIHVzZWQgdG8gYWRqdXN0IHN0YXJ0aW5nIG1lbW9yeSBhZGRy ZXNzIGFsbG9jYXRlZAo+IGZvciBrZXJuZWwgRG9tMC4gVG8gdXNlICdyYW1iYXNlX3Bmbicgc2V0 dGluZyBqdXN0IGFkZCBmb3IgZXhhbXBsZQo+ICdkb20wX3JhbWJhc2VfcGZuPTB4ODAwMDAnIHRv IHRoZSBoeXBlcnZpc29yIGNvbW1hbmQgbGluZS4gTm90ZSB0aGF0Cj4gJ2RvbTBfcmFtYmFzZV9w Zm4nIHNob3VsZCBiZSBhbGlnbmVkIHdpdGggdGhlIHNtYWxsZXN0IG1lbW9yeSBjaHVuawo+IHdo aWNoIHVzZSB4ZW4gbWVtb3J5IGFsbG9jYXRvci4KCldoeSB3b3VsZCBhIHVzZXIgd2FudCB0byBh bGxvY2F0ZSBET00wIFJBTSBiYW5rIHRvIGEgc3BlY2lmaWMgYWRkcmVzcz8KCklmIEkgdW5kZXJz dGFuZCBjb3JyZWN0bHkgeW91ciBwYXRjaCwgRE9NMCB3aWxsIG9ubHkgYWJsZSB0byBhbGxvY2F0 ZSAKb25lIGJhbmsgb2YgdGhlIGdpdmVuIHNpemUgYXQgdGhlIHNwZWNpZmljIGFkZHJlc3MuIFlv dSBhbHNvIGFkZCB0aGlzIApwb3NzaWJpbGl0eSBmb3IgZ3Vlc3QgZG9tYWluIChzZWUgcGF0Y2gg IzQpIGFuZCB0cnkgdG8gY29udHJvbCB3aGVyZSB0aGUgCmd1ZXN0IG1lbW9yeSB3aWxsIGJlIGFs bG9jYXRlZC4gVGhpcyB3aWxsIGluY3JlYXNlIGEgbG90IHRoZSBjaGFuY2Ugb2YgCnRoZSBtZW1v cnkgYWxsb2NhdGlvbiB0byBmYWlsLgoKRm9yIGluc3RhbmNlLCB0aGUgUkFNIHJlZ2lvbiByZXF1 ZXN0ZWQgZm9yIERPTTAgbWF5IGhhdmUgYmVlbiB1c2VkIHRvIAphbGxvY2F0ZSBtZW1vcnkgZm9y IFhlbiBpbnRlcm5hbC4gU28geW91IG5lZWQgYSB3YXkgdG8gcmVzZXJ2ZSBtZW1vcnkgaW4gCm9y ZGVyIHRvIGF2b2lkIFhlbiB1c2luZyBpdC4KCkkgZXhwZWN0IG1vc3Qgb2YgdGhlIHVzZXJzIHdo byB3YW50IHRvIHVzZSBkaXJlY3QgbWVtb3J5IG1hcHBlZCBndWVzdCB0byAKa25vdyB0aGUgbnVt YmVyIG9mIGd1ZXN0cyB3aGljaCB3aWxsIHVzZSB0aGlzIGZlYXR1cmUuCgpBIHN1Y2ggZmVhdHVy ZSBpcyBvbmx5IHVzZWZ1bCB3aGVuIHBhc3MtdGhyb3VnaCBhIGRldmljZSB0byB0aGUgZ3Vlc3Qg b24gCnBsYXRmb20gd2l0aG91dCBTTU1VLCBzbyBpdCBpcyBieSBkZWZhdWx0IGluc2VjdXJlLgoK U28gSSB3b3VsZCBzdWdnZXN0IHRvIGNyZWF0ZSBhIG5ldyBkZXZpY2UtdHJlZSBiaW5kaW5nIChv ciByZS11c2UgYW4gCmFjdHVhbCBvbmUpIHRvIHJlc2VydmUgbWVtb3J5IHJlZ2lvbiB0byBiZSB1 c2VkIGZvciBkaXJlY3QgbWVtb3J5IG1hcHBlZCAKZG9tYWluLgoKVGhvc2UgcmVnaW9ucyBjb3Vs ZCBoYXZlIGFuIGlkZW50aWZpZXIgdG8gYmUgdXNlZCBsYXRlciBkdXJpbmcgdGhlIAphbGxvY2F0 aW9uLiBUaGlzIHdvdWxkIGF2b2lkIG1lbW9yeSBmcmFnbWVudGF0aW9uLCBhbGxvdyBtdWx0aXBs ZSBSQU0gCmJhbmsgZm9yIERPTTAsLi4uCgpBbnkgb3BpbmlvbnM/Cgo+Cj4gU2lnbmVkLW9mZi1i eTogT2xla3NhbmRyIERteXRyeXNoeW4gPG9sZWtzYW5kci5kbXl0cnlzaHluQGdsb2JhbGxvZ2lj LmNvbT4KPiAtLS0KPiAgIHhlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyB8IDI0ICsrKysrKysr KysrKystLS0KPiAgIHhlbi9jb21tb24vcGFnZV9hbGxvYy5jICAgICB8IDY4ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQo+ICAgeGVuL2luY2x1ZGUveGVuL21t LmggICAgICAgIHwgIDIgKysKPiAgIDMgZmlsZXMgY2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygrKSwg MTkgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWls ZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCj4gaW5kZXggMjkzN2ZmNy4uYjQ4NzE4 ZCAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKPiArKysgYi94ZW4v YXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKPiBAQCAtMjcsNiArMjcsOSBAQAo+ICAgc3RhdGljIHVu c2lnbmVkIGludCBfX2luaXRkYXRhIG9wdF9kb20wX21heF92Y3B1czsKPiAgIGludGVnZXJfcGFy YW0oImRvbTBfbWF4X3ZjcHVzIiwgb3B0X2RvbTBfbWF4X3ZjcHVzKTsKPgo+ICtzdGF0aWMgdTY0 IF9faW5pdGRhdGEgb3B0X2RvbTBfcmFtYmFzZV9wZm4gPSAwOwo+ICtpbnRlZ2VyX3BhcmFtKCJk b20wX3JhbWJhc2VfcGZuIiwgb3B0X2RvbTBfcmFtYmFzZV9wZm4pOwo+ICsKPiAgIGludCBkb20w XzExX21hcHBpbmcgPSAxOwo+Cj4gICAjZGVmaW5lIERPTTBfTUVNX0RFRkFVTFQgMHg4MDAwMDAw IC8qIDEyOCBNaUIgKi8KPiBAQCAtMjQ4LDYgKzI1MSw4IEBAIHN0YXRpYyB2b2lkIGFsbG9jYXRl X21lbW9yeV8xMShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvKQo+ ICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBtaW5fb3JkZXIgPSBnZXRfb3JkZXJfZnJvbV9ieXRl cyhNQig0KSk7Cj4gICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7Cj4gICAgICAgdW5zaWduZWQg aW50IG9yZGVyID0gZ2V0XzExX2FsbG9jYXRpb25fc2l6ZShraW5mby0+dW5hc3NpZ25lZF9tZW0p Owo+ICsgICAgdTY0IHJhbWJhc2VfcGZuID0gb3B0X2RvbTBfcmFtYmFzZV9wZm47Cj4gKyAgICBw YWRkcl90IG1lbV9zaXplID0ga2luZm8tPnVuYXNzaWduZWRfbWVtOwo+ICAgICAgIGludCBpOwo+ Cj4gICAgICAgYm9vbF90IGxvd21lbSA9IGlzXzMyYml0X2RvbWFpbihkKTsKPiBAQCAtMjY3LDcg KzI3Miw3IEBAIHN0YXRpYyB2b2lkIGFsbG9jYXRlX21lbW9yeV8xMShzdHJ1Y3QgZG9tYWluICpk LCBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvKQo+ICAgICAgIHsKPiAgICAgICAgICAgZm9yICgg Yml0cyA9IG9yZGVyIDsgYml0cyA8PSAobG93bWVtID8gMzIgOiBQQUREUl9CSVRTKTsgYml0cysr ICkKPiAgICAgICAgICAgewo+IC0gICAgICAgICAgICBwZyA9IGFsbG9jX2RvbWhlYXBfcGFnZXMo ZCwgb3JkZXIsIE1FTUZfYml0cyhiaXRzKSk7Cj4gKyAgICAgICAgICAgIHBnID0gYWxsb2NfZG9t aGVhcF9wYWdlc19wZm4oZCwgb3JkZXIsIE1FTUZfYml0cyhiaXRzKSwgcmFtYmFzZV9wZm4pOwo+ ICAgICAgICAgICAgICAgaWYgKCBwZyAhPSBOVUxMICkKPiAgICAgICAgICAgICAgICAgICBnb3Rv IGdvdF9iYW5rMDsKPiAgICAgICAgICAgfQo+IEBAIC0yODQsMTYgKzI4OSwyMSBAQCBzdGF0aWMg dm9pZCBhbGxvY2F0ZV9tZW1vcnlfMTEoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9p bmZvICpraW5mbykKPiAgICAgICAvKiBOb3cgYWxsb2NhdGUgbW9yZSBtZW1vcnkgYW5kIGZpbGwg aW4gYWRkaXRpb25hbCBiYW5rcyAqLwo+Cj4gICAgICAgb3JkZXIgPSBnZXRfMTFfYWxsb2NhdGlv bl9zaXplKGtpbmZvLT51bmFzc2lnbmVkX21lbSk7Cj4gKyAgICBpZiAoIG9wdF9kb20wX3JhbWJh c2VfcGZuICkKPiArICAgICAgICByYW1iYXNlX3BmbiArPSAobWVtX3NpemUgLSBraW5mby0+dW5h c3NpZ25lZF9tZW0pID4+IFBBR0VfU0hJRlQ7Cj4gKwo+ICAgICAgIHdoaWxlICgga2luZm8tPnVu YXNzaWduZWRfbWVtICYmIGtpbmZvLT5tZW0ubnJfYmFua3MgPCBOUl9NRU1fQkFOS1MgKQo+ICAg ICAgIHsKPiAtICAgICAgICBwZyA9IGFsbG9jX2RvbWhlYXBfcGFnZXMoZCwgb3JkZXIsIGxvd21l bSA/IE1FTUZfYml0cygzMikgOiAwKTsKPiArICAgICAgICBwZyA9IGFsbG9jX2RvbWhlYXBfcGFn ZXNfcGZuKGQsIG9yZGVyLCBsb3dtZW0gPyBNRU1GX2JpdHMoMzIpIDogMCwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbWJhc2VfcGZuKTsKCiBGcm9tIG15IHVuZGVy c3RhbmRpbmcsIHdoZW4gcmFtYmFzZV9wZm4gaXMgbm90IDAsIHRoZSBtZW1vcnkgbXVzdCBiZSAK YWxsb2NhdGVkIGNvbnRpZ3VvdXNseSBhdCB0aGlzIHNwZWNpZmljIGFkZHJlc3MuIFNvIGlmIHRo ZSBmaXJzdCBjYWxsIG9mIAphbGxvY19kb21oZWFwX3BhZ2VzIChzZWUgYSBiaXQgYWJvdmUpIGFz IGZhaWxlZCwgdGhlbiB0aGlzIG9uZSB3aWxsIAphbHdheXMgZmFpbCBiZWNhdXNlIGl0IG1lYW5z IHRoYXQgc29tZW9uZSBoYXMgYWxsb2NhdGVkIHNvbWUgcGFnZSBpbiAKdGhpcyByZWdpb24uCgo+ ICAgICAgICAgICBpZiAoICFwZyApCj4gICAgICAgICAgIHsKPiAgICAgICAgICAgICAgIG9yZGVy IC0tOwo+Cj4gICAgICAgICAgICAgICBpZiAoIGxvd21lbSAmJiBvcmRlciA8IG1pbl9sb3dfb3Jk ZXIpCj4gICAgICAgICAgICAgICB7Cj4gLSAgICAgICAgICAgICAgICBEMTFQUklOVCgiRmFpbGVk IGF0IG1pbl9sb3dfb3JkZXIsIGFsbG93IGhpZ2ggYWxsb2NhdGlvbnNcbiIpOwo+ICsgICAgICAg ICAgICAgICAgaWYgKCAhb3B0X2RvbTBfcmFtYmFzZV9wZm4gKQo+ICsgICAgICAgICAgICAgICAg ICAgIEQxMVBSSU5UKCJGYWlsZWQgYXQgbWluX2xvd19vcmRlciwgYWxsb3cgaGlnaCBhbGxvY2F0 aW9uc1xuIik7Cj4gICAgICAgICAgICAgICAgICAgb3JkZXIgPSBnZXRfMTFfYWxsb2NhdGlvbl9z aXplKGtpbmZvLT51bmFzc2lnbmVkX21lbSk7Cj4gICAgICAgICAgICAgICAgICAgbG93bWVtID0g ZmFsc2U7Cj4gICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4gQEAgLTMxMyw3ICszMjMsOCBA QCBzdGF0aWMgdm9pZCBhbGxvY2F0ZV9tZW1vcnlfMTEoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0 IGtlcm5lbF9pbmZvICpraW5mbykKPgo+ICAgICAgICAgICAgICAgaWYgKCBsb3dtZW0gKQo+ICAg ICAgICAgICAgICAgewo+IC0gICAgICAgICAgICAgICAgRDExUFJJTlQoIkFsbG9jYXRpb24gYmVs b3cgYmFuayAwLCBhbGxvdyBoaWdoIGFsbG9jYXRpb25zXG4iKTsKPiArICAgICAgICAgICAgICAg IGlmICggIW9wdF9kb20wX3JhbWJhc2VfcGZuICkKPiArICAgICAgICAgICAgICAgICAgICBEMTFQ UklOVCgiQWxsb2NhdGlvbiBiZWxvdyBiYW5rIDAsIGFsbG93IGhpZ2ggYWxsb2NhdGlvbnNcbiIp Owo+ICAgICAgICAgICAgICAgICAgIG9yZGVyID0gZ2V0XzExX2FsbG9jYXRpb25fc2l6ZShraW5m by0+dW5hc3NpZ25lZF9tZW0pOwo+ICAgICAgICAgICAgICAgICAgIGxvd21lbSA9IGZhbHNlOwo+ ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+IEBAIC0zMzAsNiArMzQxLDExIEBAIHN0YXRp YyB2b2lkIGFsbG9jYXRlX21lbW9yeV8xMShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3Qga2VybmVs X2luZm8gKmtpbmZvKQo+ICAgICAgICAgICAgKiBhbGxvY2F0aW9uIHBvc3NpYmxlLgo+ICAgICAg ICAgICAgKi8KPiAgICAgICAgICAgb3JkZXIgPSBnZXRfMTFfYWxsb2NhdGlvbl9zaXplKGtpbmZv LT51bmFzc2lnbmVkX21lbSk7Cj4gKyAgICAgICAgaWYgKCBvcHRfZG9tMF9yYW1iYXNlX3BmbiAp Cj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICByYW1iYXNlX3BmbiArPSAobWVtX3NpemUgLSBr aW5mby0+dW5hc3NpZ25lZF9tZW0pID4+IFBBR0VfU0hJRlQ7Cj4gKyAgICAgICAgICAgIG1lbV9z aXplID0ga2luZm8tPnVuYXNzaWduZWRfbWVtOwo+ICsgICAgICAgIH0KPiAgICAgICB9Cj4KPiAg ICAgICBpZiAoIGtpbmZvLT51bmFzc2lnbmVkX21lbSApCj4gZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vcGFnZV9hbGxvYy5jIGIveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKPiBpbmRleCA3NGZjMWRl Li5kMGMwZmJiIDEwMDY0NAo+IC0tLSBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCj4gKysrIGIv eGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKPiBAQCAtNTgzLDE2ICs1ODMsMTcgQEAgc3RhdGljIHZv aWQgY2hlY2tfbG93X21lbV92aXJxKHZvaWQpCj4gICAgICAgfQo+ICAgfQo+Cj4gLS8qIEFsbG9j YXRlIDJeQG9yZGVyIGNvbnRpZ3VvdXMgcGFnZXMuICovCj4gLXN0YXRpYyBzdHJ1Y3QgcGFnZV9p bmZvICphbGxvY19oZWFwX3BhZ2VzKAo+ICsvKiBBbGxvY2F0ZSAyXkBvcmRlciBjb250aWd1b3Vz IHBhZ2VzIGF0IGdpdmVuIHBmbi4gKi8KPiArc3RhdGljIHN0cnVjdCBwYWdlX2luZm8gKmFsbG9j X2hlYXBfcGFnZXNfcGZuKAo+ICAgICAgIHVuc2lnbmVkIGludCB6b25lX2xvLCB1bnNpZ25lZCBp bnQgem9uZV9oaSwKPiAgICAgICB1bnNpZ25lZCBpbnQgb3JkZXIsIHVuc2lnbmVkIGludCBtZW1m bGFncywKPiAtICAgIHN0cnVjdCBkb21haW4gKmQpCj4gKyAgICBzdHJ1Y3QgZG9tYWluICpkLCB4 ZW5fcGZuX3QgcGZuKQo+ICAgewo+ICAgICAgIHVuc2lnbmVkIGludCBpLCBqLCB6b25lID0gMCwg bm9kZW1hc2tfcmV0cnkgPSAwOwo+ICAgICAgIG5vZGVpZF90IGZpcnN0X25vZGUsIG5vZGUgPSBN RU1GX2dldF9ub2RlKG1lbWZsYWdzKSwgcmVxX25vZGUgPSBub2RlOwo+ICAgICAgIHVuc2lnbmVk IGxvbmcgcmVxdWVzdCA9IDFVTCA8PCBvcmRlcjsKPiAtICAgIHN0cnVjdCBwYWdlX2luZm8gKnBn Owo+ICsgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGcsICp0bXBfcGc7Cj4gKyAgICBzdHJ1Y3QgcGFn ZV9saXN0X2hlYWQgKnBnX2xpc3Q7Cj4gICAgICAgbm9kZW1hc2tfdCBub2RlbWFzayA9IChkICE9 IE5VTEwgKSA/IGQtPm5vZGVfYWZmaW5pdHkgOiBub2RlX29ubGluZV9tYXA7Cj4gICAgICAgYm9v bF90IG5lZWRfdGxiZmx1c2ggPSAwOwo+ICAgICAgIHVpbnQzMl90IHRsYmZsdXNoX3RpbWVzdGFt cCA9IDA7Cj4gQEAgLTY1Nyw5ICs2NTgsMjUgQEAgc3RhdGljIHN0cnVjdCBwYWdlX2luZm8gKmFs bG9jX2hlYXBfcGFnZXMoCj4gICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4KPiAgICAgICAg ICAgICAgIC8qIEZpbmQgc21hbGxlc3Qgb3JkZXIgd2hpY2ggY2FuIHNhdGlzZnkgdGhlIHJlcXVl c3QuICovCj4gLSAgICAgICAgICAgIGZvciAoIGogPSBvcmRlcjsgaiA8PSBNQVhfT1JERVI7IGor KyApCj4gLSAgICAgICAgICAgICAgICBpZiAoIChwZyA9IHBhZ2VfbGlzdF9yZW1vdmVfaGVhZCgm aGVhcChub2RlLCB6b25lLCBqKSkpICkKPiAtICAgICAgICAgICAgICAgICAgICBnb3RvIGZvdW5k Owo+ICsgICAgICAgICAgICBmb3IgKCBqID0gb3JkZXI7IGogPD0gTUFYX09SREVSOyBqKysgKSB7 Cj4gKyAgICAgICAgICAgICAgICBwZ19saXN0ID0gJmhlYXAobm9kZSwgem9uZSwgaik7Cj4gKyAg ICAgICAgICAgICAgICBpZiAoIHBmbiApCj4gKyAgICAgICAgICAgICAgICB7Cj4gKyAgICAgICAg ICAgICAgICAgICAgcGFnZV9saXN0X2Zvcl9lYWNoX3NhZmUoIHBnLCB0bXBfcGcsIHBnX2xpc3Qg KQo+ICsgICAgICAgICAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYg KCBwZm4gPT0gcGFnZV90b19tZm4ocGcpICkKPiArICAgICAgICAgICAgICAgICAgICAgICAgewo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9saXN0X2RlbChwZywgcGdfbGlzdCk7 Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZvdW5kOwo+ICsgICAgICAgICAg ICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICAg ICAgfQo+ICsgICAgICAgICAgICAgICAgZWxzZQo+ICsgICAgICAgICAgICAgICAgewo+ICsgICAg ICAgICAgICAgICAgICAgIGlmICggKHBnID0gcGFnZV9saXN0X3JlbW92ZV9oZWFkKHBnX2xpc3Qp KSApCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZm91bmQ7Cj4gKyAgICAgICAgICAg ICAgICB9Cj4gKyAgICAgICAgICAgIH0KPiAgICAgICAgICAgfSB3aGlsZSAoIHpvbmUtLSA+IHpv bmVfbG8gKTsgLyogY2FyZWZ1bDogdW5zaWduZWQgem9uZSBtYXkgd3JhcCAqLwo+Cj4gICAgICAg ICAgIGlmICggKG1lbWZsYWdzICYgTUVNRl9leGFjdF9ub2RlKSAmJiByZXFfbm9kZSAhPSBOVU1B X05PX05PREUgKQo+IEBAIC03MDYsOSArNzIzLDE1IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZV9pbmZv ICphbGxvY19oZWFwX3BhZ2VzKAo+ICAgICAgIC8qIFdlIG1heSBoYXZlIHRvIGhhbHZlIHRoZSBj aHVuayBhIG51bWJlciBvZiB0aW1lcy4gKi8KPiAgICAgICB3aGlsZSAoIGogIT0gb3JkZXIgKQo+ ICAgICAgIHsKPiAtICAgICAgICBQRk5fT1JERVIocGcpID0gLS1qOwo+IC0gICAgICAgIHBhZ2Vf bGlzdF9hZGRfdGFpbChwZywgJmhlYXAobm9kZSwgem9uZSwgaikpOwo+IC0gICAgICAgIHBnICs9 IDEgPDwgajsKPiArICAgICAgICB0bXBfcGcgPSBwZzsKPiArICAgICAgICBpZiAoIHBmbiApCj4g KyAgICAgICAgICAgIHRtcF9wZyArPSAxIDw8IChqIC0gMSk7Cj4gKwo+ICsgICAgICAgIFBGTl9P UkRFUih0bXBfcGcpID0gLS1qOwo+ICsgICAgICAgIHBhZ2VfbGlzdF9hZGRfdGFpbCh0bXBfcGcs ICZoZWFwKG5vZGUsIHpvbmUsIGopKTsKPiArCj4gKyAgICAgICAgaWYgKCAhcGZuICkKPiArICAg ICAgICAgICAgcGcgKz0gMSA8PCBqOwo+ICAgICAgIH0KPgo+ICAgICAgIEFTU0VSVChhdmFpbFtu b2RlXVt6b25lXSA+PSByZXF1ZXN0KTsKPiBAQCAtNzYyLDYgKzc4NSwxNSBAQCBzdGF0aWMgc3Ry dWN0IHBhZ2VfaW5mbyAqYWxsb2NfaGVhcF9wYWdlcygKPiAgICAgICByZXR1cm4gcGc7Cj4gICB9 Cj4KPiArLyogQWxsb2NhdGUgMl5Ab3JkZXIgY29udGlndW91cyBwYWdlcy4gKi8KPiArc3RhdGlj IHN0cnVjdCBwYWdlX2luZm8gKmFsbG9jX2hlYXBfcGFnZXMoCj4gKyAgICB1bnNpZ25lZCBpbnQg em9uZV9sbywgdW5zaWduZWQgaW50IHpvbmVfaGksCj4gKyAgICB1bnNpZ25lZCBpbnQgb3JkZXIs IHVuc2lnbmVkIGludCBtZW1mbGFncywKPiArICAgIHN0cnVjdCBkb21haW4gKmQpCj4gK3sKPiAr ICAgIHJldHVybiBhbGxvY19oZWFwX3BhZ2VzX3Bmbih6b25lX2xvLCB6b25lX2hpLCBvcmRlciwg bWVtZmxhZ3MsIGQsIDApOwo+ICt9Cj4gKwo+ICAgLyogUmVtb3ZlIGFueSBvZmZsaW5lZCBwYWdl IGluIHRoZSBidWRkeSBwb2ludGVkIHRvIGJ5IGhlYWQuICovCj4gICBzdGF0aWMgaW50IHJlc2Vy dmVfb2ZmbGluZWRfcGFnZShzdHJ1Y3QgcGFnZV9pbmZvICpoZWFkKQo+ICAgewo+IEBAIC0xNjg3 LDggKzE3MTksOCBAQCBpbnQgYXNzaWduX3BhZ2VzKAo+ICAgfQo+Cj4KPiAtc3RydWN0IHBhZ2Vf aW5mbyAqYWxsb2NfZG9taGVhcF9wYWdlcygKPiAtICAgIHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGludCBvcmRlciwgdW5zaWduZWQgaW50IG1lbWZsYWdzKQo+ICtzdHJ1Y3QgcGFnZV9pbmZv ICphbGxvY19kb21oZWFwX3BhZ2VzX3BmbigKPiArICAgIHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGludCBvcmRlciwgdW5zaWduZWQgaW50IG1lbWZsYWdzLCB4ZW5fcGZuX3QgcGZuKQo+ICAg ewo+ICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnID0gTlVMTDsKPiAgICAgICB1bnNpZ25lZCBp bnQgYml0cyA9IG1lbWZsYWdzID4+IF9NRU1GX2JpdHMsIHpvbmVfaGkgPSBOUl9aT05FUyAtIDE7 Cj4gQEAgLTE3MDUsMTIgKzE3MzcsMTIgQEAgc3RydWN0IHBhZ2VfaW5mbyAqYWxsb2NfZG9taGVh cF9wYWdlcygKPiAgICAgICAgICAgbWVtZmxhZ3MgfD0gTUVNRl9ub19yZWZjb3VudDsKPgo+ICAg ICAgIGlmICggZG1hX2JpdHNpemUgJiYgKChkbWFfem9uZSA9IGJpdHNfdG9fem9uZShkbWFfYml0 c2l6ZSkpIDwgem9uZV9oaSkgKQo+IC0gICAgICAgIHBnID0gYWxsb2NfaGVhcF9wYWdlcyhkbWFf em9uZSArIDEsIHpvbmVfaGksIG9yZGVyLCBtZW1mbGFncywgZCk7Cj4gKyAgICAgICAgcGcgPSBh bGxvY19oZWFwX3BhZ2VzX3BmbihkbWFfem9uZSArIDEsIHpvbmVfaGksIG9yZGVyLCBtZW1mbGFn cywgZCwgcGZuKTsKPgo+ICAgICAgIGlmICggKHBnID09IE5VTEwpICYmCj4gICAgICAgICAgICAo KG1lbWZsYWdzICYgTUVNRl9ub19kbWEpIHx8Cj4gLSAgICAgICAgICAoKHBnID0gYWxsb2NfaGVh cF9wYWdlcyhNRU1aT05FX1hFTiArIDEsIHpvbmVfaGksIG9yZGVyLAo+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbWVtZmxhZ3MsIGQpKSA9PSBOVUxMKSkgKQo+ICsgICAgICAg ICAgKChwZyA9IGFsbG9jX2hlYXBfcGFnZXNfcGZuKE1FTVpPTkVfWEVOICsgMSwgem9uZV9oaSwg b3JkZXIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1mbGFncywgZCwg cGZuKSkgPT0gTlVMTCkpICkKPiAgICAgICAgICAgIHJldHVybiBOVUxMOwo+Cj4gICAgICAgaWYg KCBkICYmICEobWVtZmxhZ3MgJiBNRU1GX25vX293bmVyKSAmJgo+IEBAIC0xNzIzLDYgKzE3NTUs MTIgQEAgc3RydWN0IHBhZ2VfaW5mbyAqYWxsb2NfZG9taGVhcF9wYWdlcygKPiAgICAgICByZXR1 cm4gcGc7Cj4gICB9Cj4KPiArc3RydWN0IHBhZ2VfaW5mbyAqYWxsb2NfZG9taGVhcF9wYWdlcygK PiArICAgIHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBvcmRlciwgdW5zaWduZWQgaW50 IG1lbWZsYWdzKQo+ICt7Cj4gKyAgICByZXR1cm4gYWxsb2NfZG9taGVhcF9wYWdlc19wZm4oZCwg b3JkZXIsIG1lbWZsYWdzLCAwKTsKPiArfQo+ICsKPiAgIHZvaWQgZnJlZV9kb21oZWFwX3BhZ2Vz KHN0cnVjdCBwYWdlX2luZm8gKnBnLCB1bnNpZ25lZCBpbnQgb3JkZXIpCj4gICB7Cj4gICAgICAg c3RydWN0IGRvbWFpbiAqZCA9IHBhZ2VfZ2V0X293bmVyKHBnKTsKPiBkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUveGVuL21tLmggYi94ZW4vaW5jbHVkZS94ZW4vbW0uaAo+IGluZGV4IGE3OTVkZDYu LjgzZTQ5MTMgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL21tLmgKPiArKysgYi94ZW4v aW5jbHVkZS94ZW4vbW0uaAo+IEBAIC0xMTcsNiArMTE3LDggQEAgdm9pZCBnZXRfb3V0c3RhbmRp bmdfY2xhaW1zKHVpbnQ2NF90ICpmcmVlX3BhZ2VzLCB1aW50NjRfdCAqb3V0c3RhbmRpbmdfcGFn ZXMpOwo+Cj4gICAvKiBEb21haW4gc3ViYWxsb2NhdG9yLiBUaGVzZSBmdW5jdGlvbnMgYXJlICpu b3QqIGludGVycnVwdC1zYWZlLiovCj4gICB2b2lkIGluaXRfZG9taGVhcF9wYWdlcyhwYWRkcl90 IHBzLCBwYWRkcl90IHBlKTsKPiArc3RydWN0IHBhZ2VfaW5mbyAqYWxsb2NfZG9taGVhcF9wYWdl c19wZm4oCj4gKyAgICBzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgb3JkZXIsIHVuc2ln bmVkIGludCBtZW1mbGFncywgeGVuX3Bmbl90IHBmbik7Cj4gICBzdHJ1Y3QgcGFnZV9pbmZvICph bGxvY19kb21oZWFwX3BhZ2VzKAo+ICAgICAgIHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGlu dCBvcmRlciwgdW5zaWduZWQgaW50IG1lbWZsYWdzKTsKPiAgIHZvaWQgZnJlZV9kb21oZWFwX3Bh Z2VzKHN0cnVjdCBwYWdlX2luZm8gKnBnLCB1bnNpZ25lZCBpbnQgb3JkZXIpOwo+CgpSZWdhcmRz LAoKLS0gCkp1bGllbiBHcmFsbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK