From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bhupinder Thakur Subject: [PATCH 21/27 v11] xen/arm: vpl011: Add support for multiple consoles in xenconsole Date: Wed, 27 Sep 2017 11:43:30 +0530 Message-ID: <1506492816-25954-22-git-send-email-bhupinder.thakur@linaro.org> References: <1506492816-25954-1-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dx5bt-00036A-9B for xen-devel@lists.xenproject.org; Wed, 27 Sep 2017 06:14:17 +0000 Received: by mail-pg0-f44.google.com with SMTP id p5so7220953pgn.7 for ; Tue, 26 Sep 2017 23:14:15 -0700 (PDT) In-Reply-To: <1506492816-25954-1-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: xen-devel@lists.xenproject.org Cc: Wei Liu , Julien Grall , Stefano Stabellini , Ian Jackson List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBhZGRzIHRoZSBzdXBwb3J0IGZvciBtdWx0aXBsZSBjb25zb2xlcyBhbmQgaW50 cm9kdWNlcyB0aGUKaXRlcmF0b3IgZnVuY3Rpb25zIHRvIG9wZXJhdGUgb24gbXVsdGlwbGUgY29u c29sZXMuCgpUaGUgZnVuY3Rpb25zIGNhbGxlZCBieSB0aGUgaXRlcmF0b3JzIGNoZWNrIHRoYXQg dGhleSBhcmUgb3BlcmF0aW5nCm9uIHZhbGlkIEkvTyBwYXJhbWV0ZXJzLiBUaGlzIGVuc3VyZXMg dGhhdCBpZiBhIHBhcnRpY3VsYXIgY29uc29sZSBpcwpub3QgaW5pdGlhbGl6ZWQgdGhlbiB0aGUg ZnVuY3Rpb25zIHdpbGwgbm90IGRvIGFueXRoaW5nIGZvciB0aGF0CmNvbnNvbGUgdHlwZS4KClRo aXMgcGF0Y2ggaXMgaW4gcHJlcGFyYXRpb24gdG8gc3VwcG9ydCBhIG5ldyB2dWFydCBjb25zb2xl LgoKU2lnbmVkLW9mZi1ieTogQmh1cGluZGVyIFRoYWt1ciA8Ymh1cGluZGVyLnRoYWt1ckBsaW5h cm8ub3JnPgpBY2tlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCkNDOiBJ YW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5s aXUyQGNpdHJpeC5jb20+CkNDOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5l bC5vcmc+CkNDOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgoKQ2hhbmdlcyBz aW5jZSB2NToKLSBTcGxpdCB0aGlzIHBhdGNoIGluIG11bHRpcGxlIHNtYWxsZXIgcGF0Y2hlcy4K CkNoYW5nZXMgc2luY2UgdjQ6Ci0gQ2hhbmdlcyB0byBtYWtlIGV2ZW50IGNoYW5uZWwgaGFuZGxp bmcgcGVyIGNvbnNvbGUgcmF0aGVyIHRoYW4gcGVyIGRvbWFpbi4KCkNoYW5nZXMgc2luY2UgdjM6 Ci0gVGhlIGNoYW5nZXMgaW4geGVuY29uc29sZSBoYXZlIGJlZW4gc3BsaXQgaW50byBmb3VyIHBh dGNoZXMuIFRoaXMgaXMgdGhlIHRoaXJkIHBhdGNoLgoKIHRvb2xzL2NvbnNvbGUvZGFlbW9uL2lv LmMgfCAxNjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDEyNiBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS90b29scy9jb25zb2xlL2RhZW1vbi9pby5jIGIvdG9vbHMvY29uc29sZS9kYWVtb24v aW8uYwppbmRleCA3MTQ2NWEwLi5hMTk4ZGJiIDEwMDY0NAotLS0gYS90b29scy9jb25zb2xlL2Rh ZW1vbi9pby5jCisrKyBiL3Rvb2xzL2NvbnNvbGUvZGFlbW9uL2lvLmMKQEAgLTkwLDEyICs5MCwx NCBAQCBzdHJ1Y3QgYnVmZmVyIHsKIH07CiAKIHN0cnVjdCBjb25zb2xlIHsKKwljaGFyICp0dHlu YW1lOwogCWludCBtYXN0ZXJfZmQ7CiAJaW50IG1hc3Rlcl9wb2xsZmRfaWR4OwogCWludCBzbGF2 ZV9mZDsKIAlpbnQgbG9nX2ZkOwogCXN0cnVjdCBidWZmZXIgYnVmZmVyOwogCWNoYXIgKnhzcGF0 aDsKKwljaGFyICpsb2dfc3VmZml4OwogCWludCByaW5nX3JlZjsKIAl4ZW5ldnRjaG5faGFuZGxl ICp4Y2VfaGFuZGxlOwogCWludCB4Y2VfcG9sbGZkX2lkeDsKQEAgLTEwNywyMSArMTA5LDEwOSBA QCBzdHJ1Y3QgY29uc29sZSB7CiAJc3RydWN0IGRvbWFpbiAqZDsKIH07CiAKK3N0cnVjdCBjb25z b2xlX3R5cGUgeworCWNoYXIgKnhzbmFtZTsKKwljaGFyICp0dHluYW1lOworCWNoYXIgKmxvZ19z dWZmaXg7Cit9OworCitzdGF0aWMgc3RydWN0IGNvbnNvbGVfdHlwZSBjb25zb2xlX3R5cGVbXSA9 IHsKKwl7CisJCS54c25hbWUgPSAiL2NvbnNvbGUiLAorCQkudHR5bmFtZSA9ICJ0dHkiLAorCQku bG9nX3N1ZmZpeCA9ICIiLAorCX0sCit9OworCisjZGVmaW5lIE5VTV9DT05TT0xFX1RZUEUgKHNp emVvZihjb25zb2xlX3R5cGUpL3NpemVvZihzdHJ1Y3QgY29uc29sZV90eXBlKSkKKwogc3RydWN0 IGRvbWFpbiB7CiAJaW50IGRvbWlkOwogCWJvb2wgaXNfZGVhZDsKIAl1bnNpZ25lZCBsYXN0X3Nl ZW47CiAJc3RydWN0IGRvbWFpbiAqbmV4dDsKLQlzdHJ1Y3QgY29uc29sZSBjb25zb2xlOworCXN0 cnVjdCBjb25zb2xlIGNvbnNvbGVbTlVNX0NPTlNPTEVfVFlQRV07CiB9OwogCiBzdGF0aWMgc3Ry dWN0IGRvbWFpbiAqZG9tX2hlYWQ7CiAKK3R5cGVkZWYgdm9pZCAoKlZPSURfSVRFUl9GVU5DX0FS RzEpKHN0cnVjdCBjb25zb2xlICopOwordHlwZWRlZiBpbnQgKCpJTlRfSVRFUl9GVU5DX0FSRzEp KHN0cnVjdCBjb25zb2xlICopOwordHlwZWRlZiB2b2lkICgqVk9JRF9JVEVSX0ZVTkNfQVJHMiko c3RydWN0IGNvbnNvbGUgKiwgIHZvaWQgKik7Cit0eXBlZGVmIGludCAoKklOVF9JVEVSX0ZVTkNf QVJHMykoc3RydWN0IGNvbnNvbGUgKiwKKwkJCQkgIHN0cnVjdCBkb21haW4gKmRvbSwgdm9pZCAq Kik7CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBjb25zb2xlX2VuYWJsZWQoc3RydWN0IGNvbnNvbGUg KmNvbikKIHsKIAlyZXR1cm4gY29uLT5sb2NhbF9wb3J0ICE9IC0xOwogfQogCitzdGF0aWMgaW5s aW5lIHZvaWQgY29uc29sZV9pdGVyX3ZvaWRfYXJnMShzdHJ1Y3QgZG9tYWluICpkLAorCQkJCQkg IFZPSURfSVRFUl9GVU5DX0FSRzEgaXRlcl9mdW5jKQoreworCXVuc2lnbmVkIGludCBpOworCXN0 cnVjdCBjb25zb2xlICpjb24gPSAmZC0+Y29uc29sZVswXTsKKworCWZvciAoaSA9IDA7IGkgPCBO VU1fQ09OU09MRV9UWVBFOyBpKyssIGNvbisrKSB7CisJCWl0ZXJfZnVuYyhjb24pOworCX0KK30K Kworc3RhdGljIGlubGluZSB2b2lkIGNvbnNvbGVfaXRlcl92b2lkX2FyZzIoc3RydWN0IGRvbWFp biAqZCwKKwkJCQkJICBWT0lEX0lURVJfRlVOQ19BUkcyIGl0ZXJfZnVuYywKKwkJCQkJICB2b2lk ICppdGVyX2RhdGEpCit7CisJdW5zaWduZWQgaW50IGk7CisJc3RydWN0IGNvbnNvbGUgKmNvbiA9 ICZkLT5jb25zb2xlWzBdOworCisJZm9yIChpID0gMDsgaSA8IE5VTV9DT05TT0xFX1RZUEU7IGkr KywgY29uKyspIHsKKwkJaXRlcl9mdW5jKGNvbiwgaXRlcl9kYXRhKTsKKwl9Cit9CisKK3N0YXRp YyBpbmxpbmUgaW50IGNvbnNvbGVfaXRlcl9pbnRfYXJnMShzdHJ1Y3QgZG9tYWluICpkLAorCQkJ CQlJTlRfSVRFUl9GVU5DX0FSRzEgaXRlcl9mdW5jKQoreworCXVuc2lnbmVkIGludCBpOworCWlu dCByZXQ7CisJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkLT5jb25zb2xlWzBdOworCisJZm9yIChp ID0gMDsgaSA8IE5VTV9DT05TT0xFX1RZUEU7IGkrKywgY29uKyspIHsKKwkJLyoKKwkJICogWmVy byByZXR1cm4gdmFsdWVzIG1lYW5zIHN1Y2Nlc3MuCisJCSAqCisJCSAqIE5vbi16ZXJvIHJldHVy biB2YWx1ZSBpbmRpY2F0ZXMgYW4gZXJyb3IgaW4gd2hpY2gKKwkJICogY2FzZSB0ZXJtaW5hdGUg dGhlIGxvb3AuCisJCSAqLworCQlyZXQgPSBpdGVyX2Z1bmMoY29uKTsKKwkJaWYgKHJldCkKKwkJ CWJyZWFrOworCX0KKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW5saW5lIGludCBjb25zb2xl X2l0ZXJfaW50X2FyZzMoc3RydWN0IGRvbWFpbiAqZCwKKwkJCQkJSU5UX0lURVJfRlVOQ19BUkcz IGl0ZXJfZnVuYywKKwkJCQkJdm9pZCAqKml0ZXJfZGF0YSkKK3sKKwl1bnNpZ25lZCBpbnQgaTsK KwlpbnQgcmV0OworCXN0cnVjdCBjb25zb2xlICpjb24gPSAmZC0+Y29uc29sZVswXTsKKworCWZv ciAoaSA9IDA7IGkgPCBOVU1fQ09OU09MRV9UWVBFOyBpKyssIGNvbisrKSB7CisJCS8qCisJCSAq IFplcm8gcmV0dXJuIHZhbHVlcyBtZWFucyBzdWNjZXNzLgorCQkgKgorCQkgKiBOb24temVybyBy ZXR1cm4gdmFsdWUgaW5kaWNhdGVzIGFuIGVycm9yIGluIHdoaWNoCisJCSAqIGNhc2UgdGVybWlu YXRlIHRoZSBsb29wLgorCQkgKi8KKwkJcmV0ID0gaXRlcl9mdW5jKGNvbiwgZCwgaXRlcl9kYXRh KTsKKwkJaWYgKHJldCkKKwkJCWJyZWFrOworCX0KKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMg aW50IHdyaXRlX2FsbChpbnQgZmQsIGNvbnN0IGNoYXIqIGJ1Ziwgc2l6ZV90IGxlbikKIHsKIAl3 aGlsZSAobGVuKSB7CkBAIC0zMzYsNyArNDI2LDkgQEAgc3RhdGljIGludCBjcmVhdGVfY29uc29s ZV9sb2coc3RydWN0IGNvbnNvbGUgKmNvbikKIAkJcmV0dXJuIC0xOwogCX0KIAotCXNucHJpbnRm KGxvZ2ZpbGUsIFBBVEhfTUFYLTEsICIlcy9ndWVzdC0lcy5sb2ciLCBsb2dfZGlyLCBkYXRhKTsK KwlzbnByaW50Zihsb2dmaWxlLCBQQVRIX01BWC0xLCAiJXMvZ3Vlc3QtJXMlcy5sb2ciLAorCQkg bG9nX2RpciwgZGF0YSwgY29uLT5sb2dfc3VmZml4KTsKKwogCWZyZWUoZGF0YSk7CiAJbG9nZmls ZVtQQVRIX01BWC0xXSA9ICdcMCc7CiAKQEAgLTQ4OCw3ICs1ODAsNyBAQCBzdGF0aWMgaW50IGNv bnNvbGVfY3JlYXRlX3R0eShzdHJ1Y3QgY29uc29sZSAqY29uKQogCX0KIAlmcmVlKHBhdGgpOwog Ci0Jc3VjY2VzcyA9IChhc3ByaW50ZigmcGF0aCwgIiVzL3R0eSIsIGNvbi0+eHNwYXRoKSAhPSAt MSk7CisJc3VjY2VzcyA9IChhc3ByaW50ZigmcGF0aCwgIiVzLyVzIiwgY29uLT54c3BhdGgsIGNv bi0+dHR5bmFtZSkgIT0gLTEpOwogCWlmICghc3VjY2VzcykKIAkJZ290byBvdXQ7CiAJc3VjY2Vz cyA9IHhzX3dyaXRlKHhzLCBYQlRfTlVMTCwgcGF0aCwgc2xhdmUsIHN0cmxlbihzbGF2ZSkpOwpA QCAtNjU0LDEzICs3NDYsMTMgQEAgc3RhdGljIGJvb2wgd2F0Y2hfZG9tYWluKHN0cnVjdCBkb21h aW4gKmRvbSwgYm9vbCB3YXRjaCkKIHsKIAljaGFyIGRvbWlkX3N0clszICsgTUFYX1NUUkxFTihk b20tPmRvbWlkKV07CiAJYm9vbCBzdWNjZXNzOwotCXN0cnVjdCBjb25zb2xlICpjb24gPSAmZG9t LT5jb25zb2xlOworCXN0cnVjdCBjb25zb2xlICpjb24gPSAmZG9tLT5jb25zb2xlWzBdOwogCiAJ c25wcmludGYoZG9taWRfc3RyLCBzaXplb2YoZG9taWRfc3RyKSwgImRvbSV1IiwgZG9tLT5kb21p ZCk7CiAJaWYgKHdhdGNoKSB7CiAJCXN1Y2Nlc3MgPSB4c193YXRjaCh4cywgY29uLT54c3BhdGgs IGRvbWlkX3N0cik7CiAJCWlmIChzdWNjZXNzKQotCQkJY29uc29sZV9jcmVhdGVfcmluZyhjb24p OworCQkJY29uc29sZV9pdGVyX2ludF9hcmcxKGRvbSwgY29uc29sZV9jcmVhdGVfcmluZyk7CiAJ CWVsc2UKIAkJCXhzX3Vud2F0Y2goeHMsIGNvbi0+eHNwYXRoLCBkb21pZF9zdHIpOwogCX0gZWxz ZSB7CkBAIC02NzAsMTEgKzc2MiwxMyBAQCBzdGF0aWMgYm9vbCB3YXRjaF9kb21haW4oc3RydWN0 IGRvbWFpbiAqZG9tLCBib29sIHdhdGNoKQogCXJldHVybiBzdWNjZXNzOwogfQogCi1zdGF0aWMg aW50IGNvbnNvbGVfaW5pdChzdHJ1Y3QgY29uc29sZSAqY29uLCBzdHJ1Y3QgZG9tYWluICpkb20p CitzdGF0aWMgaW50IGNvbnNvbGVfaW5pdChzdHJ1Y3QgY29uc29sZSAqY29uLCBzdHJ1Y3QgZG9t YWluICpkb20sIHZvaWQgKipkYXRhKQogewogCWNoYXIgKnM7CiAJaW50IGVyciA9IC0xOwogCXN0 cnVjdCB0aW1lc3BlYyB0czsKKwlzdHJ1Y3QgY29uc29sZV90eXBlICoqY29uX3R5cGUgPSAoc3Ry dWN0IGNvbnNvbGVfdHlwZSAqKilkYXRhOworCWNoYXIgKnhzbmFtZSwgKnhzcGF0aDsKIAogCWlm IChjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJnRzKSA8IDApIHsKIAkJZG9sb2coTE9H X0VSUiwgIkNhbm5vdCBnZXQgdGltZSBvZiBkYXkgJXM6JXM6TCVkIiwKQEAgLTY5MiwxNSArNzg2 LDIxIEBAIHN0YXRpYyBpbnQgY29uc29sZV9pbml0KHN0cnVjdCBjb25zb2xlICpjb24sIHN0cnVj dCBkb21haW4gKmRvbSkKIAljb24tPnhjZV9wb2xsZmRfaWR4ID0gLTE7CiAJY29uLT5uZXh0X3Bl cmlvZCA9ICgobG9uZyBsb25nKXRzLnR2X3NlYyAqIDEwMDApICsgKHRzLnR2X25zZWMgLyAxMDAw MDAwKSArIFJBVEVfTElNSVRfUEVSSU9EOwogCWNvbi0+ZCA9IGRvbTsKLQljb24tPnhzcGF0aCA9 IHhzX2dldF9kb21haW5fcGF0aCh4cywgZG9tLT5kb21pZCk7Ci0JcyA9IHJlYWxsb2MoY29uLT54 c3BhdGgsIHN0cmxlbihjb24tPnhzcGF0aCkgKwotCQkgICAgc3RybGVuKCIvY29uc29sZSIpICsg MSk7CisJY29uLT50dHluYW1lID0gKCpjb25fdHlwZSktPnR0eW5hbWU7CisJY29uLT5sb2dfc3Vm Zml4ID0gKCpjb25fdHlwZSktPmxvZ19zdWZmaXg7CisJeHNuYW1lID0gKGNoYXIgKikoKmNvbl90 eXBlKS0+eHNuYW1lOworCXhzcGF0aCA9IHhzX2dldF9kb21haW5fcGF0aCh4cywgZG9tLT5kb21p ZCk7CisJcyA9IHJlYWxsb2MoeHNwYXRoLCBzdHJsZW4oeHNwYXRoKSArCisJCSAgICBzdHJsZW4o eHNuYW1lKSArIDEpOwogCWlmIChzKSB7Ci0JCWNvbi0+eHNwYXRoID0gczsKLQkJc3RyY2F0KGNv bi0+eHNwYXRoLCAiL2NvbnNvbGUiKTsKKwkJeHNwYXRoID0gczsKKwkJc3RyY2F0KHhzcGF0aCwg eHNuYW1lKTsKKwkJY29uLT54c3BhdGggPSB4c3BhdGg7CiAJCWVyciA9IDA7CiAJfQogCisJKCpj b25fdHlwZSkrKzsKKwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTcxMyw3ICs4MTMsNyBAQCBzdGF0 aWMgdm9pZCBjb25zb2xlX2ZyZWUoc3RydWN0IGNvbnNvbGUgKmNvbikKIHN0YXRpYyBzdHJ1Y3Qg ZG9tYWluICpjcmVhdGVfZG9tYWluKGludCBkb21pZCkKIHsKIAlzdHJ1Y3QgZG9tYWluICpkb207 Ci0Jc3RydWN0IGNvbnNvbGUgKmNvbjsKKwlzdHJ1Y3QgY29uc29sZV90eXBlICpjb25fdHlwZSA9 ICZjb25zb2xlX3R5cGVbMF07CiAKIAlkb20gPSBjYWxsb2MoMSwgc2l6ZW9mICpkb20pOwogCWlm IChkb20gPT0gTlVMTCkgewpAQCAtNzIzLDkgKzgyMyw4IEBAIHN0YXRpYyBzdHJ1Y3QgZG9tYWlu ICpjcmVhdGVfZG9tYWluKGludCBkb21pZCkKIAl9CiAKIAlkb20tPmRvbWlkID0gZG9taWQ7Ci0J Y29uID0gJmRvbS0+Y29uc29sZTsKIAotCWlmIChjb25zb2xlX2luaXQoY29uLCBkb20pKQorCWlm IChjb25zb2xlX2l0ZXJfaW50X2FyZzMoZG9tLCBjb25zb2xlX2luaXQsICh2b2lkICoqKSZjb25f dHlwZSkpCiAJCWdvdG8gb3V0OwogCiAJaWYgKCF3YXRjaF9kb21haW4oZG9tLCB0cnVlKSkKQEAg LTczOCw3ICs4MzcsNyBAQCBzdGF0aWMgc3RydWN0IGRvbWFpbiAqY3JlYXRlX2RvbWFpbihpbnQg ZG9taWQpCiAKIAlyZXR1cm4gZG9tOwogIG91dDoKLQljb25zb2xlX2ZyZWUoY29uKTsKKwljb25z b2xlX2l0ZXJfdm9pZF9hcmcxKGRvbSwgY29uc29sZV9mcmVlKTsKIAlmcmVlKGRvbSk7CiAJcmV0 dXJuIE5VTEw7CiB9CkBAIC03ODQsMTEgKzg4Myw5IEBAIHN0YXRpYyB2b2lkIGNvbnNvbGVfY2xl YW51cChzdHJ1Y3QgY29uc29sZSAqY29uKQogCiBzdGF0aWMgdm9pZCBjbGVhbnVwX2RvbWFpbihz dHJ1Y3QgZG9tYWluICpkKQogewotCXN0cnVjdCBjb25zb2xlICpjb24gPSAmZC0+Y29uc29sZTsK Kwljb25zb2xlX2l0ZXJfdm9pZF9hcmcxKGQsIGNvbnNvbGVfY2xvc2VfdHR5KTsKIAotCWNvbnNv bGVfY2xvc2VfdHR5KGNvbik7Ci0KLQljb25zb2xlX2NsZWFudXAoY29uKTsKKwljb25zb2xlX2l0 ZXJfdm9pZF9hcmcxKGQsIGNvbnNvbGVfY2xlYW51cCk7CiAKIAlyZW1vdmVfZG9tYWluKGQpOwog fQpAQCAtODAzLDEyICs5MDAsMTAgQEAgc3RhdGljIHZvaWQgY29uc29sZV9jbG9zZV9ldnRjaG4o c3RydWN0IGNvbnNvbGUgKmNvbikKIAogc3RhdGljIHZvaWQgc2h1dGRvd25fZG9tYWluKHN0cnVj dCBkb21haW4gKmQpCiB7Ci0Jc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkLT5jb25zb2xlOwotCiAJ ZC0+aXNfZGVhZCA9IHRydWU7CiAJd2F0Y2hfZG9tYWluKGQsIGZhbHNlKTsKLQljb25zb2xlX3Vu bWFwX2ludGVyZmFjZShjb24pOwotCWNvbnNvbGVfY2xvc2VfZXZ0Y2huKGNvbik7CisJY29uc29s ZV9pdGVyX3ZvaWRfYXJnMShkLCBjb25zb2xlX3VubWFwX2ludGVyZmFjZSk7CisJY29uc29sZV9p dGVyX3ZvaWRfYXJnMShkLCBjb25zb2xlX2Nsb3NlX2V2dGNobik7CiB9CiAKIHN0YXRpYyB1bnNp Z25lZCBlbnVtX3Bhc3MgPSAwOwpAQCAtMTAwMyw3ICsxMDk4LDcgQEAgc3RhdGljIHZvaWQgaGFu ZGxlX3hzKHZvaWQpCiAJCS8qIFdlIG1heSBnZXQgd2F0Y2hlcyBmaXJpbmcgZm9yIGRvbWFpbnMg dGhhdCBoYXZlIHJlY2VudGx5CiAJCSAgIGJlZW4gcmVtb3ZlZCwgc28gZG9tIG1heSBiZSBOVUxM IGhlcmUuICovCiAJCWlmIChkb20gJiYgZG9tLT5pc19kZWFkID09IGZhbHNlKQotCQkJY29uc29s ZV9jcmVhdGVfcmluZygmZG9tLT5jb25zb2xlKTsKKwkJCWNvbnNvbGVfaXRlcl9pbnRfYXJnMShk b20sIGNvbnNvbGVfY3JlYXRlX3JpbmcpOwogCX0KIAogCWZyZWUodmVjKTsKQEAgLTEwNTgsOSAr MTE1Myw3IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9sb2dfcmVsb2FkKHZvaWQpCiAJaWYgKGxvZ19n dWVzdCkgewogCQlzdHJ1Y3QgZG9tYWluICpkOwogCQlmb3IgKGQgPSBkb21faGVhZDsgZDsgZCA9 IGQtPm5leHQpIHsKLQkJCXN0cnVjdCBjb25zb2xlICpjb24gPSAmZC0+Y29uc29sZTsKLQotCQkJ Y29uc29sZV9vcGVuX2xvZyhjb24pOworCQkJY29uc29sZV9pdGVyX3ZvaWRfYXJnMShkLCBjb25z b2xlX29wZW5fbG9nKTsKIAkJfQogCX0KIApAQCAtMTIyMywxMyArMTMxNiwxMyBAQCB2b2lkIGhh bmRsZV9pbyh2b2lkKQogCQkvKiBSZS1jYWxjdWxhdGUgYW55IGV2ZW50IGNvdW50ZXIgYWxsb3dh bmNlcyAmIHVuYmxvY2sKIAkJICAgZG9tYWlucyB3aXRoIG5ldyBhbGxvd2FuY2UgKi8KIAkJZm9y IChkID0gZG9tX2hlYWQ7IGQ7IGQgPSBkLT5uZXh0KSB7Ci0JCQlzdHJ1Y3QgY29uc29sZSAqY29u ID0gJmQtPmNvbnNvbGU7CiAKLQkJCWNvbnNvbGVfZXZ0Y2huX3VubWFzayhjb24sICh2b2lkICop bm93KTsKKwkJCWNvbnNvbGVfaXRlcl92b2lkX2FyZzIoZCwgY29uc29sZV9ldnRjaG5fdW5tYXNr LCAodm9pZCAqKW5vdyk7CiAKLQkJCW1heWJlX2FkZF9jb25zb2xlX2V2dGNobl9mZChjb24sICh2 b2lkICopJm5leHRfdGltZW91dCk7CisJCQljb25zb2xlX2l0ZXJfdm9pZF9hcmcyKGQsIG1heWJl X2FkZF9jb25zb2xlX2V2dGNobl9mZCwgCisJCQkJCSAgICAgICAodm9pZCAqKSZuZXh0X3RpbWVv dXQpOwogCi0JCQltYXliZV9hZGRfY29uc29sZV90dHlfZmQoY29uKTsKKwkJCWNvbnNvbGVfaXRl cl92b2lkX2FyZzEoZCwgbWF5YmVfYWRkX2NvbnNvbGVfdHR5X2ZkKTsKIAkJfQogCiAJCS8qIElm IGFueSBkb21haW4gaGFzIGJlZW4gcmF0ZSBsaW1pdGVkLCB3ZSBuZWVkIHRvIHdvcmsKQEAgLTEy OTAsMTMgKzEzODMsMTIgQEAgdm9pZCBoYW5kbGVfaW8odm9pZCkKIAkJfQogCiAJCWZvciAoZCA9 IGRvbV9oZWFkOyBkOyBkID0gbikgewotCQkJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkLT5jb25z b2xlOwogCiAJCQluID0gZC0+bmV4dDsKIAotCQkJaGFuZGxlX2NvbnNvbGVfcmluZyhjb24pOwor CQkJY29uc29sZV9pdGVyX3ZvaWRfYXJnMShkLCBoYW5kbGVfY29uc29sZV9yaW5nKTsKIAotCQkJ aGFuZGxlX2NvbnNvbGVfdHR5KGNvbik7CisJCQljb25zb2xlX2l0ZXJfdm9pZF9hcmcxKGQsIGhh bmRsZV9jb25zb2xlX3R0eSk7CiAKIAkJCWlmIChkLT5sYXN0X3NlZW4gIT0gZW51bV9wYXNzKQog CQkJCXNodXRkb3duX2RvbWFpbihkKTsKLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==