From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: Re: [PATCH 09/14 v4] xen/arm: vpl011: Modify xenconsole functions to take console structure as input Date: Tue, 6 Jun 2017 17:43:39 -0700 (PDT) Message-ID: References: <1496769929-23355-1-git-send-email-bhupinder.thakur@linaro.org> <1496769929-23355-10-git-send-email-bhupinder.thakur@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIP4a-0008E7-48 for xen-devel@lists.xenproject.org; Wed, 07 Jun 2017 00:43:44 +0000 In-Reply-To: <1496769929-23355-10-git-send-email-bhupinder.thakur@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Bhupinder Thakur Cc: xen-devel@lists.xenproject.org, Julien Grall , Stefano Stabellini , Ian Jackson , Wei Liu List-Id: xen-devel@lists.xenproject.org T24gVHVlLCA2IEp1biAyMDE3LCBCaHVwaW5kZXIgVGhha3VyIHdyb3RlOgo+IFhlbmNvbnNvbGUg ZnVuY3Rpb25zIHRha2UgZG9tYWluIHN0cnVjdHVyZSBhcyBpbnB1dC4gVGhlc2UgZnVuY3Rpb25z IHNoYWxsIGJlCj4gbW9kaWZpZWQgdG8gdGFrZSBjb25zb2xlIHN0cnVjdHVyZSBhcyBpbnB1dCBz aW5jZSB0aGVzZSBmdW5jdGlvbnMgdHlwaWNhbGx5IHBlcmZvcm0KPiBjb25zb2xlIHNwZWNpZmlj IG9wZXJhdGlvbnMuCj4gCj4gQWxzbyB0aGUgY29uc29sZSBzcGVjaWZpYyBmdW5jdGlvbnMgc3Rh cnRpbmcgd2l0aCBwcmVmaXggImRvbWFpbl8iIHNoYWxsIGJlIG1vZGlmaWVkCj4gdG8gImNvbnNv bGVfIiB0byBpbmRpY2F0ZSB0aGF0IHRoZXNlIGFyZSBjb25zb2xlIHNwZWNpZmljIGZ1bmN0aW9u cy4KPiAKPiBUaGlzIHBhdGNoIGlzIGluIHByZXBhcmF0aW9uIHRvIHN1cHBvcnQgbXVsdGlwbGUg Y29uc29sZXMgdG8gc3VwcG9ydCB2dWFydCBjb25zb2xlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEJo dXBpbmRlciBUaGFrdXIgPGJodXBpbmRlci50aGFrdXJAbGluYXJvLm9yZz4KCkFja2VkLWJ5OiBT dGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CgoKPiAtLS0KPiBDQzog aWoKPiBDQzogd2wKPiBDQzogc3MKPiBDQzogamcKPiAKPiBDaGFuZ2VzIHNpbmNlIHYzOgo+IC0g VGhlIGNoYW5nZXMgaW4geGVuY29uc29sZSBoYXZlIGJlZW4gc3BsaXQgaW50byBmb3VyIHBhdGNo ZXMuIFRoaXMgaXMgdGhlIHNlY29uZCBwYXRjaC4KPiAKPiAgdG9vbHMvY29uc29sZS9kYWVtb24v aW8uYyB8IDgyICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cj4gIDEgZmlsZSBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvdG9vbHMvY29uc29sZS9kYWVtb24vaW8uYyBiL3Rvb2xzL2NvbnNvbGUv ZGFlbW9uL2lvLmMKPiBpbmRleCAwNDAyZGRmLi5jNWRkMDhkIDEwMDY0NAo+IC0tLSBhL3Rvb2xz L2NvbnNvbGUvZGFlbW9uL2lvLmMKPiArKysgYi90b29scy9jb25zb2xlL2RhZW1vbi9pby5jCj4g QEAgLTE2MywxMCArMTYzLDEwIEBAIHN0YXRpYyBpbnQgd3JpdGVfd2l0aF90aW1lc3RhbXAoaW50 IGZkLCBjb25zdCBjaGFyICpkYXRhLCBzaXplX3Qgc3osCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAK PiAtc3RhdGljIHZvaWQgYnVmZmVyX2FwcGVuZChzdHJ1Y3QgZG9tYWluICpkb20pCj4gK3N0YXRp YyB2b2lkIGJ1ZmZlcl9hcHBlbmQoc3RydWN0IGNvbnNvbGUgKmNvbikKPiAgewo+IC0Jc3RydWN0 IGNvbnNvbGUgKmNvbiA9ICZkb20tPmNvbnNvbGU7Cj4gIAlzdHJ1Y3QgYnVmZmVyICpidWZmZXIg PSAmY29uLT5idWZmZXI7Cj4gKwlzdHJ1Y3QgZG9tYWluICpkb20gPSBjb24tPmQ7Cj4gIAlYRU5D T05TX1JJTkdfSURYIGNvbnMsIHByb2QsIHNpemU7Cj4gIAlzdHJ1Y3QgeGVuY29uc19pbnRlcmZh Y2UgKmludGYgPSBjb24tPmludGVyZmFjZTsKPiAgCj4gQEAgLTI5NiwxMiArMjk2LDEzIEBAIHN0 YXRpYyBpbnQgY3JlYXRlX2h2X2xvZyh2b2lkKQo+ICAJcmV0dXJuIGZkOwo+ICB9Cj4gIAo+IC1z dGF0aWMgaW50IGNyZWF0ZV9kb21haW5fbG9nKHN0cnVjdCBkb21haW4gKmRvbSkKPiArc3RhdGlj IGludCBjcmVhdGVfY29uc29sZV9sb2coc3RydWN0IGNvbnNvbGUgKmNvbikKPiAgewo+ICAJY2hh ciBsb2dmaWxlW1BBVEhfTUFYXTsKPiAgCWNoYXIgKm5hbWVwYXRoLCAqZGF0YSwgKnM7Cj4gIAlp bnQgZmQ7Cj4gIAl1bnNpZ25lZCBpbnQgbGVuOwo+ICsJc3RydWN0IGRvbWFpbiAqZG9tID0gY29u LT5kOwo+ICAKPiAgCW5hbWVwYXRoID0geHNfZ2V0X2RvbWFpbl9wYXRoKHhzLCBkb20tPmRvbWlk KTsKPiAgCXMgPSByZWFsbG9jKG5hbWVwYXRoLCBzdHJsZW4obmFtZXBhdGgpICsgNik7Cj4gQEAg LTM0MiwxMCArMzQzLDggQEAgc3RhdGljIGludCBjcmVhdGVfZG9tYWluX2xvZyhzdHJ1Y3QgZG9t YWluICpkb20pCj4gIAlyZXR1cm4gZmQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGRvbWFpbl9j bG9zZV90dHkoc3RydWN0IGRvbWFpbiAqZG9tKQo+ICtzdGF0aWMgdm9pZCBjb25zb2xlX2Nsb3Nl X3R0eShzdHJ1Y3QgY29uc29sZSAqY29uKQo+ICB7Cj4gLQlzdHJ1Y3QgY29uc29sZSAqY29uID0g JmRvbS0+Y29uc29sZTsKPiAtCj4gIAlpZiAoY29uLT5tYXN0ZXJfZmQgIT0gLTEpIHsKPiAgCQlj bG9zZShjb24tPm1hc3Rlcl9mZCk7Cj4gIAkJY29uLT5tYXN0ZXJfZmQgPSAtMTsKPiBAQCAtNDE3 LDcgKzQxNiw3IEBAIHZvaWQgY2ZtYWtlcmF3KHN0cnVjdCB0ZXJtaW9zICp0ZXJtaW9zX3ApCj4g IH0KPiAgI2VuZGlmIC8qIF9fc3VuX18gKi8KPiAgCj4gLXN0YXRpYyBpbnQgZG9tYWluX2NyZWF0 ZV90dHkoc3RydWN0IGRvbWFpbiAqZG9tKQo+ICtzdGF0aWMgaW50IGNvbnNvbGVfY3JlYXRlX3R0 eShzdHJ1Y3QgY29uc29sZSAqY29uKQo+ICB7Cj4gIAljb25zdCBjaGFyICpzbGF2ZTsKPiAgCWNo YXIgKnBhdGg7Cj4gQEAgLTQyNiw3ICs0MjUsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jcmVhdGVf dHR5KHN0cnVjdCBkb21haW4gKmRvbSkKPiAgCWNoYXIgKmRhdGE7Cj4gIAl1bnNpZ25lZCBpbnQg bGVuOwo+ICAJc3RydWN0IHRlcm1pb3MgdGVybTsKPiAtCXN0cnVjdCBjb25zb2xlICpjb24gPSAm ZG9tLT5jb25zb2xlOwo+ICsJc3RydWN0IGRvbWFpbiAqZG9tID0gY29uLT5kOwo+ICAKPiAgCWFz c2VydChjb24tPnNsYXZlX2ZkID09IC0xKTsKPiAgCWFzc2VydChjb24tPm1hc3Rlcl9mZCA9PSAt MSk7Cj4gQEAgLTQ4Nyw3ICs0ODYsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jcmVhdGVfdHR5KHN0 cnVjdCBkb21haW4gKmRvbSkKPiAgCj4gIAlyZXR1cm4gMTsKPiAgb3V0Ogo+IC0JZG9tYWluX2Ns b3NlX3R0eShkb20pOwo+ICsJY29uc29sZV9jbG9zZV90dHkoY29uKTsKPiAgCXJldHVybiAwOwo+ ICB9Cj4gICAKPiBAQCAtNTI2LDEwICs1MjUsOCBAQCBzdGF0aWMgaW50IHhzX2dhdGhlcihzdHJ1 Y3QgeHNfaGFuZGxlICp4cywgY29uc3QgY2hhciAqZGlyLCAuLi4pCj4gIAlyZXR1cm4gcmV0Owo+ ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBkb21haW5fdW5tYXBfaW50ZXJmYWNlKHN0cnVjdCBkb21h aW4gKmRvbSkKPiArc3RhdGljIHZvaWQgY29uc29sZV91bm1hcF9pbnRlcmZhY2Uoc3RydWN0IGNv bnNvbGUgKmNvbikKPiAgewo+IC0Jc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkb20tPmNvbnNvbGU7 Cj4gLQo+ICAJaWYgKGNvbi0+aW50ZXJmYWNlID09IE5VTEwpCj4gIAkJcmV0dXJuOwo+ICAJaWYg KHhndF9oYW5kbGUgJiYgY29uLT5yaW5nX3JlZiA9PSAtMSkKPiBAQCAtNTQwLDExICs1MzcsMTEg QEAgc3RhdGljIHZvaWQgZG9tYWluX3VubWFwX2ludGVyZmFjZShzdHJ1Y3QgZG9tYWluICpkb20p Cj4gIAljb24tPnJpbmdfcmVmID0gLTE7Cj4gIH0KPiAgIAo+IC1zdGF0aWMgaW50IGRvbWFpbl9j cmVhdGVfcmluZyhzdHJ1Y3QgZG9tYWluICpkb20pCj4gK3N0YXRpYyBpbnQgY29uc29sZV9jcmVh dGVfcmluZyhzdHJ1Y3QgY29uc29sZSAqY29uKQo+ICB7Cj4gIAlpbnQgZXJyLCByZW1vdGVfcG9y dCwgcmluZ19yZWYsIHJjOwo+ICAJY2hhciAqdHlwZSwgcGF0aFtQQVRIX01BWF07Cj4gLQlzdHJ1 Y3QgY29uc29sZSAqY29uID0gJmRvbS0+Y29uc29sZTsKPiArCXN0cnVjdCBkb21haW4gKmRvbSA9 IGNvbi0+ZDsKPiAgCj4gIAllcnIgPSB4c19nYXRoZXIoeHMsIGNvbi0+Y29uc3BhdGgsCj4gIAkJ CSJyaW5nLXJlZiIsICIldSIsICZyaW5nX3JlZiwKPiBAQCAtNTYzLDcgKzU2MCw3IEBAIHN0YXRp YyBpbnQgZG9tYWluX2NyZWF0ZV9yaW5nKHN0cnVjdCBkb21haW4gKmRvbSkKPiAgCj4gIAkvKiBJ ZiB1c2luZyByaW5nX3JlZiBhbmQgaXQgaGFzIGNoYW5nZWQsIHJlbWFwICovCj4gIAlpZiAocmlu Z19yZWYgIT0gY29uLT5yaW5nX3JlZiAmJiBjb24tPnJpbmdfcmVmICE9IC0xKQo+IC0JCWRvbWFp bl91bm1hcF9pbnRlcmZhY2UoZG9tKTsKPiArCQljb25zb2xlX3VubWFwX2ludGVyZmFjZShjb24p Owo+ICAKPiAgCWlmICghY29uLT5pbnRlcmZhY2UgJiYgeGd0X2hhbmRsZSkgewo+ICAJCS8qIFBy ZWZlciB1c2luZyBncmFudCB0YWJsZSAqLwo+IEBAIC02MjEsNyArNjE4LDcgQEAgc3RhdGljIGlu dCBkb21haW5fY3JlYXRlX3Jpbmcoc3RydWN0IGRvbWFpbiAqZG9tKQo+ICAJY29uLT5yZW1vdGVf cG9ydCA9IHJlbW90ZV9wb3J0Owo+ICAKPiAgCWlmIChjb24tPm1hc3Rlcl9mZCA9PSAtMSkgewo+ IC0JCWlmICghZG9tYWluX2NyZWF0ZV90dHkoZG9tKSkgewo+ICsJCWlmICghY29uc29sZV9jcmVh dGVfdHR5KGNvbikpIHsKPiAgCQkJZXJyID0gZXJybm87Cj4gIAkJCXhlbmV2dGNobl9jbG9zZShk b20tPnhjZV9oYW5kbGUpOwo+ICAJCQlkb20tPnhjZV9oYW5kbGUgPSBOVUxMOwo+IEBAIC02MzIs NyArNjI5LDcgQEAgc3RhdGljIGludCBkb21haW5fY3JlYXRlX3Jpbmcoc3RydWN0IGRvbWFpbiAq ZG9tKQo+ICAJfQo+ICAKPiAgCWlmIChsb2dfZ3Vlc3QgJiYgKGNvbi0+bG9nX2ZkID09IC0xKSkK PiAtCQljb24tPmxvZ19mZCA9IGNyZWF0ZV9kb21haW5fbG9nKGRvbSk7Cj4gKwkJY29uLT5sb2df ZmQgPSBjcmVhdGVfY29uc29sZV9sb2coY29uKTsKPiAgCj4gICBvdXQ6Cj4gIAlyZXR1cm4gZXJy Owo+IEBAIC02NDgsNyArNjQ1LDcgQEAgc3RhdGljIGJvb2wgd2F0Y2hfZG9tYWluKHN0cnVjdCBk b21haW4gKmRvbSwgYm9vbCB3YXRjaCkKPiAgCWlmICh3YXRjaCkgewo+ICAJCXN1Y2Nlc3MgPSB4 c193YXRjaCh4cywgY29uLT5jb25zcGF0aCwgZG9taWRfc3RyKTsKPiAgCQlpZiAoc3VjY2VzcykK PiAtCQkJZG9tYWluX2NyZWF0ZV9yaW5nKGRvbSk7Cj4gKwkJCWNvbnNvbGVfY3JlYXRlX3Jpbmco Y29uKTsKPiAgCQllbHNlCj4gIAkJCXhzX3Vud2F0Y2goeHMsIGNvbi0+Y29uc3BhdGgsIGRvbWlk X3N0cik7Cj4gIAl9IGVsc2Ugewo+IEBAIC02OTQsNiArNjkxLDcgQEAgc3RhdGljIHN0cnVjdCBk b21haW4gKmNyZWF0ZV9kb21haW4oaW50IGRvbWlkKQo+ICAJY29uLT5tYXN0ZXJfcG9sbGZkX2lk eCA9IC0xOwo+ICAJY29uLT5zbGF2ZV9mZCA9IC0xOwo+ICAJY29uLT5sb2dfZmQgPSAtMTsKPiAr CWNvbi0+ZCA9IGRvbTsKPiAgCWRvbS0+eGNlX3BvbGxmZF9pZHggPSAtMTsKPiAgCj4gIAlkb20t Pm5leHRfcGVyaW9kID0gKChsb25nIGxvbmcpdHMudHZfc2VjICogMTAwMCkgKyAodHMudHZfbnNl YyAvIDEwMDAwMDApICsgUkFURV9MSU1JVF9QRVJJT0Q7Cj4gQEAgLTc0Niw3ICs3NDQsNyBAQCBz dGF0aWMgdm9pZCBjbGVhbnVwX2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkKQo+ICB7Cj4gIAlzdHJ1 Y3QgY29uc29sZSAqY29uID0gJmQtPmNvbnNvbGU7Cj4gIAo+IC0JZG9tYWluX2Nsb3NlX3R0eShk KTsKPiArCWNvbnNvbGVfY2xvc2VfdHR5KGNvbik7Cj4gIAo+ICAJaWYgKGNvbi0+bG9nX2ZkICE9 IC0xKSB7Cj4gIAkJY2xvc2UoY29uLT5sb2dfZmQpOwo+IEBAIC03NjQsOSArNzYyLDExIEBAIHN0 YXRpYyB2b2lkIGNsZWFudXBfZG9tYWluKHN0cnVjdCBkb21haW4gKmQpCj4gIAo+ICBzdGF0aWMg dm9pZCBzaHV0ZG93bl9kb21haW4oc3RydWN0IGRvbWFpbiAqZCkKPiAgewo+ICsJc3RydWN0IGNv bnNvbGUgKmNvbiA9ICZkLT5jb25zb2xlOwo+ICsKPiAgCWQtPmlzX2RlYWQgPSB0cnVlOwo+ICAJ d2F0Y2hfZG9tYWluKGQsIGZhbHNlKTsKPiAtCWRvbWFpbl91bm1hcF9pbnRlcmZhY2UoZCk7Cj4g Kwljb25zb2xlX3VubWFwX2ludGVyZmFjZShjb24pOwo+ICAJaWYgKGQtPnhjZV9oYW5kbGUgIT0g TlVMTCkKPiAgCQl4ZW5ldnRjaG5fY2xvc2UoZC0+eGNlX2hhbmRsZSk7Cj4gIAlkLT54Y2VfaGFu ZGxlID0gTlVMTDsKPiBAQCAtNzk3LDkgKzc5Nyw4IEBAIHN0YXRpYyB2b2lkIGVudW1fZG9tYWlu cyh2b2lkKQo+ICAJfQo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IHJpbmdfZnJlZV9ieXRlcyhzdHJ1 Y3QgZG9tYWluICpkb20pCj4gK3N0YXRpYyBpbnQgcmluZ19mcmVlX2J5dGVzKHN0cnVjdCBjb25z b2xlICpjb24pCj4gIHsKPiAtCXN0cnVjdCBjb25zb2xlICpjb24gPSAmZG9tLT5jb25zb2xlOwo+ ICAJc3RydWN0IHhlbmNvbnNfaW50ZXJmYWNlICppbnRmID0gY29uLT5pbnRlcmZhY2U7Cj4gIAlY RU5DT05TX1JJTkdfSURYIGNvbnMsIHByb2QsIHNwYWNlOwo+ICAKPiBAQCAtODE0LDMwICs4MTMs MzAgQEAgc3RhdGljIGludCByaW5nX2ZyZWVfYnl0ZXMoc3RydWN0IGRvbWFpbiAqZG9tKQo+ICAJ cmV0dXJuIChzaXplb2YoaW50Zi0+aW4pIC0gc3BhY2UpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9p ZCBkb21haW5faGFuZGxlX2Jyb2tlbl90dHkoc3RydWN0IGRvbWFpbiAqZG9tLCBpbnQgcmVjcmVh dGUpCj4gK3N0YXRpYyB2b2lkIGNvbnNvbGVfaGFuZGxlX2Jyb2tlbl90dHkoc3RydWN0IGNvbnNv bGUgKmNvbiwgaW50IHJlY3JlYXRlKQo+ICB7Cj4gLQlkb21haW5fY2xvc2VfdHR5KGRvbSk7Cj4g Kwljb25zb2xlX2Nsb3NlX3R0eShjb24pOwo+ICAKPiAgCWlmIChyZWNyZWF0ZSkgewo+IC0JCWRv bWFpbl9jcmVhdGVfdHR5KGRvbSk7Cj4gKwkJY29uc29sZV9jcmVhdGVfdHR5KGNvbik7Cj4gIAl9 IGVsc2Ugewo+IC0JCXNodXRkb3duX2RvbWFpbihkb20pOwo+ICsJCXNodXRkb3duX2RvbWFpbihj b24tPmQpOwo+ICAJfQo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBoYW5kbGVfdHR5X3JlYWQoc3Ry dWN0IGRvbWFpbiAqZG9tKQo+ICtzdGF0aWMgdm9pZCBoYW5kbGVfdHR5X3JlYWQoc3RydWN0IGNv bnNvbGUgKmNvbikKPiAgewo+ICAJc3NpemVfdCBsZW4gPSAwOwo+ICAJY2hhciBtc2dbODBdOwo+ ICAJaW50IGk7Cj4gLQlzdHJ1Y3QgY29uc29sZSAqY29uID0gJmRvbS0+Y29uc29sZTsKPiAgCXN0 cnVjdCB4ZW5jb25zX2ludGVyZmFjZSAqaW50ZiA9IGNvbi0+aW50ZXJmYWNlOwo+ICsJc3RydWN0 IGRvbWFpbiAqZG9tID0gY29uLT5kOwo+ICAJWEVOQ09OU19SSU5HX0lEWCBwcm9kOwo+ICAKPiAg CWlmIChkb20tPmlzX2RlYWQpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWxlbiA9IHJpbmdfZnJlZV9i eXRlcyhkb20pOwo+ICsJbGVuID0gcmluZ19mcmVlX2J5dGVzKGNvbik7Cj4gIAlpZiAobGVuID09 IDApCj4gIAkJcmV0dXJuOwo+ICAKPiBAQCAtODUxLDcgKzg1MCw3IEBAIHN0YXRpYyB2b2lkIGhh bmRsZV90dHlfcmVhZChzdHJ1Y3QgZG9tYWluICpkb20pCj4gIAkgKiBrZWVwIHRoZSBzbGF2ZSBv cGVuIGZvciB0aGUgZHVyYXRpb24uCj4gIAkgKi8KPiAgCWlmIChsZW4gPCAwKSB7Cj4gLQkJZG9t YWluX2hhbmRsZV9icm9rZW5fdHR5KGRvbSwgZG9tYWluX2lzX3ZhbGlkKGRvbS0+ZG9taWQpKTsK PiArCQljb25zb2xlX2hhbmRsZV9icm9rZW5fdHR5KGNvbiwgZG9tYWluX2lzX3ZhbGlkKGRvbS0+ ZG9taWQpKTsKPiAgCX0gZWxzZSBpZiAoZG9tYWluX2lzX3ZhbGlkKGRvbS0+ZG9taWQpKSB7Cj4g IAkJcHJvZCA9IGludGYtPmluX3Byb2Q7Cj4gIAkJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7 Cj4gQEAgLTg2MiwxNSArODYxLDE1IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV90dHlfcmVhZChzdHJ1 Y3QgZG9tYWluICpkb20pCj4gIAkJaW50Zi0+aW5fcHJvZCA9IHByb2Q7Cj4gIAkJeGVuZXZ0Y2hu X25vdGlmeShkb20tPnhjZV9oYW5kbGUsIGNvbi0+bG9jYWxfcG9ydCk7Cj4gIAl9IGVsc2Ugewo+ IC0JCWRvbWFpbl9jbG9zZV90dHkoZG9tKTsKPiArCQljb25zb2xlX2Nsb3NlX3R0eShjb24pOwo+ ICAJCXNodXRkb3duX2RvbWFpbihkb20pOwo+ICAJfQo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBo YW5kbGVfdHR5X3dyaXRlKHN0cnVjdCBkb21haW4gKmRvbSkKPiArc3RhdGljIHZvaWQgaGFuZGxl X3R0eV93cml0ZShzdHJ1Y3QgY29uc29sZSAqY29uKQo+ICB7Cj4gIAlzc2l6ZV90IGxlbjsKPiAt CXN0cnVjdCBjb25zb2xlICpjb24gPSAmZG9tLT5jb25zb2xlOwo+ICsJc3RydWN0IGRvbWFpbiAq ZG9tID0gY29uLT5kOwo+ICAKPiAgCWlmIChkb20tPmlzX2RlYWQpCj4gIAkJcmV0dXJuOwo+IEBA IC04ODAsNyArODc5LDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlX3R0eV93cml0ZShzdHJ1Y3QgZG9t YWluICpkb20pCj4gICAJaWYgKGxlbiA8IDEpIHsKPiAgCQlkb2xvZyhMT0dfREVCVUcsICJXcml0 ZSBmYWlsZWQgb24gZG9tYWluICVkOiAlemQsICVkXG4iLAo+ICAJCSAgICAgIGRvbS0+ZG9taWQs IGxlbiwgZXJybm8pOwo+IC0JCWRvbWFpbl9oYW5kbGVfYnJva2VuX3R0eShkb20sIGRvbWFpbl9p c192YWxpZChkb20tPmRvbWlkKSk7Cj4gKwkJY29uc29sZV9oYW5kbGVfYnJva2VuX3R0eShjb24s IGRvbWFpbl9pc192YWxpZChkb20tPmRvbWlkKSk7Cj4gIAl9IGVsc2Ugewo+ICAJCWJ1ZmZlcl9h ZHZhbmNlKCZjb24tPmJ1ZmZlciwgbGVuKTsKPiAgCX0KPiBAQCAtODg5LDYgKzg4OCw3IEBAIHN0 YXRpYyB2b2lkIGhhbmRsZV90dHlfd3JpdGUoc3RydWN0IGRvbWFpbiAqZG9tKQo+ICBzdGF0aWMg dm9pZCBoYW5kbGVfcmluZ19yZWFkKHN0cnVjdCBkb21haW4gKmRvbSkKPiAgewo+ICAJeGVuZXZ0 Y2huX3BvcnRfb3JfZXJyb3JfdCBwb3J0Owo+ICsJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkb20t PmNvbnNvbGU7Cj4gIAo+ICAJaWYgKGRvbS0+aXNfZGVhZCkKPiAgCQlyZXR1cm47Cj4gQEAgLTg5 OCw3ICs4OTgsNyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfcmluZ19yZWFkKHN0cnVjdCBkb21haW4g KmRvbSkKPiAgCj4gIAlkb20tPmV2ZW50X2NvdW50Kys7Cj4gIAo+IC0JYnVmZmVyX2FwcGVuZChk b20pOwo+ICsJYnVmZmVyX2FwcGVuZChjb24pOwo+ICAKPiAgCWlmIChkb20tPmV2ZW50X2NvdW50 IDwgUkFURV9MSU1JVF9BTExPV0FOQ0UpCj4gIAkJKHZvaWQpeGVuZXZ0Y2huX3VubWFzayhkb20t PnhjZV9oYW5kbGUsIHBvcnQpOwo+IEBAIC05MjIsNyArOTIyLDcgQEAgc3RhdGljIHZvaWQgaGFu ZGxlX3hzKHZvaWQpCj4gIAkJLyogV2UgbWF5IGdldCB3YXRjaGVzIGZpcmluZyBmb3IgZG9tYWlu cyB0aGF0IGhhdmUgcmVjZW50bHkKPiAgCQkgICBiZWVuIHJlbW92ZWQsIHNvIGRvbSBtYXkgYmUg TlVMTCBoZXJlLiAqLwo+ICAJCWlmIChkb20gJiYgZG9tLT5pc19kZWFkID09IGZhbHNlKQo+IC0J CQlkb21haW5fY3JlYXRlX3JpbmcoZG9tKTsKPiArCQkJY29uc29sZV9jcmVhdGVfcmluZygmZG9t LT5jb25zb2xlKTsKPiAgCX0KPiAgCj4gIAlmcmVlKHZlYyk7Cj4gQEAgLTk3Miw3ICs5NzIsNyBA QCBzdGF0aWMgdm9pZCBoYW5kbGVfbG9nX3JlbG9hZCh2b2lkKQo+ICAKPiAgCQkJaWYgKGNvbi0+ bG9nX2ZkICE9IC0xKQo+ICAJCQkJY2xvc2UoY29uLT5sb2dfZmQpOwo+IC0JCQljb24tPmxvZ19m ZCA9IGNyZWF0ZV9kb21haW5fbG9nKGQpOwo+ICsJCQljb24tPmxvZ19mZCA9IGNyZWF0ZV9jb25z b2xlX2xvZyhjb24pOwo+ICAJCX0KPiAgCX0KPiAgCj4gQEAgLTExMTgsNyArMTExOCw3IEBAIHZv aWQgaGFuZGxlX2lvKHZvaWQpCj4gIAo+ICAJCQlpZiAoY29uLT5tYXN0ZXJfZmQgIT0gLTEpIHsK PiAgCQkJCXNob3J0IGV2ZW50cyA9IDA7Cj4gLQkJCQlpZiAoIWQtPmlzX2RlYWQgJiYgcmluZ19m cmVlX2J5dGVzKGQpKQo+ICsJCQkJaWYgKCFkLT5pc19kZWFkICYmIHJpbmdfZnJlZV9ieXRlcyhj b24pKQo+ICAJCQkJCWV2ZW50cyB8PSBQT0xMSU47Cj4gIAo+ICAJCQkJaWYgKCFidWZmZXJfZW1w dHkoJmNvbi0+YnVmZmVyKSkKPiBAQCAtMTIwMSwxNSArMTIwMSwxNSBAQCB2b2lkIGhhbmRsZV9p byh2b2lkKQo+ICAJCQlpZiAoY29uLT5tYXN0ZXJfZmQgIT0gLTEgJiYgY29uLT5tYXN0ZXJfcG9s bGZkX2lkeCAhPSAtMSkgewo+ICAJCQkJaWYgKGZkc1tjb24tPm1hc3Rlcl9wb2xsZmRfaWR4XS5y ZXZlbnRzICYKPiAgCQkJCSAgICB+KFBPTExJTnxQT0xMT1VUfFBPTExQUkkpKQo+IC0JCQkJCWRv bWFpbl9oYW5kbGVfYnJva2VuX3R0eShkLAo+ICsJCQkJCWNvbnNvbGVfaGFuZGxlX2Jyb2tlbl90 dHkoY29uLAo+ICAJCQkJCQkgICBkb21haW5faXNfdmFsaWQoZC0+ZG9taWQpKTsKPiAgCQkJCWVs c2Ugewo+ICAJCQkJCWlmIChmZHNbY29uLT5tYXN0ZXJfcG9sbGZkX2lkeF0ucmV2ZW50cyAmCj4g IAkJCQkJICAgIFBPTExJTikKPiAtCQkJCQkJaGFuZGxlX3R0eV9yZWFkKGQpOwo+ICsJCQkJCQlo YW5kbGVfdHR5X3JlYWQoY29uKTsKPiAgCQkJCQlpZiAoZmRzW2Nvbi0+bWFzdGVyX3BvbGxmZF9p ZHhdLnJldmVudHMgJgo+ICAJCQkJCSAgICBQT0xMT1VUKQo+IC0JCQkJCQloYW5kbGVfdHR5X3dy aXRlKGQpOwo+ICsJCQkJCQloYW5kbGVfdHR5X3dyaXRlKGNvbik7Cj4gIAkJCQl9Cj4gIAkJCX0K PiAgCj4gLS0gCj4gMi43LjQKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=