From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bhupinder Thakur Subject: [PATCH 21/25 v7] xen/arm: vpl011: Add support for multiple consoles in xenconsole Date: Mon, 7 Aug 2017 14:23:13 +0530 Message-ID: <1502095997-31219-22-git-send-email-bhupinder.thakur@linaro.org> References: <1502095997-31219-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dedo2-0005FN-2E for xen-devel@lists.xenproject.org; Mon, 07 Aug 2017 08:54:34 +0000 Received: by mail-pf0-f178.google.com with SMTP id h68so17548959pfk.0 for ; Mon, 07 Aug 2017 01:54:32 -0700 (PDT) In-Reply-To: <1502095997-31219-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 c29sZXMuCgpUaGlzIHBhdGNoIGlzIGluIHByZXBhcmF0aW9uIHRvIHN1cHBvcnQgYSBuZXcgdnVh cnQgY29uc29sZS4KClNpZ25lZC1vZmYtYnk6IEJodXBpbmRlciBUaGFrdXIgPGJodXBpbmRlci50 aGFrdXJAbGluYXJvLm9yZz4KLS0tCkNDOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0 cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBTdGVmYW5vIFN0 YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNDOiBKdWxpZW4gR3JhbGwgPGp1bGll bi5ncmFsbEBhcm0uY29tPgoKQ2hhbmdlcyBzaW5jZSB2NToKLSBTcGxpdCB0aGlzIHBhdGNoIGlu IG11bHRpcGxlIHNtYWxsZXIgcGF0Y2hlcy4KCkNoYW5nZXMgc2luY2UgdjQ6Ci0gQ2hhbmdlcyB0 byBtYWtlIGV2ZW50IGNoYW5uZWwgaGFuZGxpbmcgcGVyIGNvbnNvbGUgcmF0aGVyIHRoYW4gcGVy IGRvbWFpbi4KCkNoYW5nZXMgc2luY2UgdjM6Ci0gVGhlIGNoYW5nZXMgaW4geGVuY29uc29sZSBo YXZlIGJlZW4gc3BsaXQgaW50byBmb3VyIHBhdGNoZXMuIFRoaXMgaXMgdGhlIHRoaXJkIHBhdGNo LgoKIHRvb2xzL2NvbnNvbGUvZGFlbW9uL2lvLmMgfCAxNTYgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyMiBpbnNlcnRpb25z KCspLCAzNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9jb25zb2xlL2RhZW1vbi9p by5jIGIvdG9vbHMvY29uc29sZS9kYWVtb24vaW8uYwppbmRleCA3MTQ2NWEwLi5mNjAzMTJkIDEw MDY0NAotLS0gYS90b29scy9jb25zb2xlL2RhZW1vbi9pby5jCisrKyBiL3Rvb2xzL2NvbnNvbGUv ZGFlbW9uL2lvLmMKQEAgLTkwLDEyICs5MCwxNCBAQCBzdHJ1Y3QgYnVmZmVyIHsKIH07CiAKIHN0 cnVjdCBjb25zb2xlIHsKKwljaGFyICp0dHluYW1lOwogCWludCBtYXN0ZXJfZmQ7CiAJaW50IG1h c3Rlcl9wb2xsZmRfaWR4OwogCWludCBzbGF2ZV9mZDsKIAlpbnQgbG9nX2ZkOwogCXN0cnVjdCBi dWZmZXIgYnVmZmVyOwogCWNoYXIgKnhzcGF0aDsKKwljaGFyICpsb2dfc3VmZml4OwogCWludCBy aW5nX3JlZjsKIAl4ZW5ldnRjaG5faGFuZGxlICp4Y2VfaGFuZGxlOwogCWludCB4Y2VfcG9sbGZk X2lkeDsKQEAgLTEwNywyMSArMTA5LDEwNyBAQCBzdHJ1Y3QgY29uc29sZSB7CiAJc3RydWN0IGRv bWFpbiAqZDsKIH07CiAKK3N0cnVjdCBjb25zb2xlX2RhdGEgeworCWNoYXIgKnhzbmFtZTsKKwlj aGFyICp0dHluYW1lOworCWNoYXIgKmxvZ19zdWZmaXg7Cit9OworCitzdGF0aWMgc3RydWN0IGNv bnNvbGVfZGF0YSBjb25zb2xlX2RhdGFbXSA9IHsKKwl7CisJCS54c25hbWUgPSAiL2NvbnNvbGUi LAorCQkudHR5bmFtZSA9ICJ0dHkiLAorCQkubG9nX3N1ZmZpeCA9ICIiLAorCX0sCit9OworCisj ZGVmaW5lIE1BWF9DT05TT0xFIChzaXplb2YoY29uc29sZV9kYXRhKS9zaXplb2Yoc3RydWN0IGNv bnNvbGVfZGF0YSkpCisKIHN0cnVjdCBkb21haW4gewogCWludCBkb21pZDsKIAlib29sIGlzX2Rl YWQ7CiAJdW5zaWduZWQgbGFzdF9zZWVuOwogCXN0cnVjdCBkb21haW4gKm5leHQ7Ci0Jc3RydWN0 IGNvbnNvbGUgY29uc29sZTsKKwlzdHJ1Y3QgY29uc29sZSBjb25zb2xlW01BWF9DT05TT0xFXTsK IH07CiAKIHN0YXRpYyBzdHJ1Y3QgZG9tYWluICpkb21faGVhZDsKIAordHlwZWRlZiB2b2lkICgq Vk9JRF9JVEVSX0ZVTkNfQVJHMSkoc3RydWN0IGNvbnNvbGUgKik7Cit0eXBlZGVmIGJvb2wgKCpC T09MX0lURVJfRlVOQ19BUkcxKShzdHJ1Y3QgY29uc29sZSAqKTsKK3R5cGVkZWYgaW50ICgqSU5U X0lURVJfRlVOQ19BUkcxKShzdHJ1Y3QgY29uc29sZSAqKTsKK3R5cGVkZWYgdm9pZCAoKlZPSURf SVRFUl9GVU5DX0FSRzIpKHN0cnVjdCBjb25zb2xlICosICB2b2lkICopOwordHlwZWRlZiBpbnQg KCpJTlRfSVRFUl9GVU5DX0FSRzMpKHN0cnVjdCBjb25zb2xlICosCisJCQkJICBzdHJ1Y3QgZG9t YWluICpkb20sIHZvaWQgKiopOworCiBzdGF0aWMgaW5saW5lIGJvb2wgY29uc29sZV9lbmFibGVk KHN0cnVjdCBjb25zb2xlICpjb24pCiB7CiAJcmV0dXJuIGNvbi0+bG9jYWxfcG9ydCAhPSAtMTsK IH0KIAorc3RhdGljIGlubGluZSB2b2lkIGNvbnNvbGVfaXRlcl92b2lkX2FyZzEoc3RydWN0IGRv bWFpbiAqZCwKKwkJCQkJICBWT0lEX0lURVJfRlVOQ19BUkcxIGl0ZXJfZnVuYykKK3sKKwlpbnQg aSA9IDA7CisJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkLT5jb25zb2xlWzBdOworCisJZm9yIChp ID0gMDsgaSA8IE1BWF9DT05TT0xFOyBpKyssIGNvbisrKSB7CisJCWl0ZXJfZnVuYyhjb24pOwor CX0KK30KKworc3RhdGljIGlubGluZSB2b2lkIGNvbnNvbGVfaXRlcl92b2lkX2FyZzIoc3RydWN0 IGRvbWFpbiAqZCwKKwkJCQkJICBWT0lEX0lURVJfRlVOQ19BUkcyIGl0ZXJfZnVuYywKKwkJCQkJ ICB2b2lkICppdGVyX2RhdGEpCit7CisJaW50IGkgPSAwOworCXN0cnVjdCBjb25zb2xlICpjb24g PSAmZC0+Y29uc29sZVswXTsKKworCWZvciAoaSA9IDA7IGkgPCBNQVhfQ09OU09MRTsgaSsrLCBj b24rKykgeworCQlpdGVyX2Z1bmMoY29uLCBpdGVyX2RhdGEpOworCX0KK30KKworc3RhdGljIGlu bGluZSBib29sIGNvbnNvbGVfaXRlcl9ib29sX2FyZzEoc3RydWN0IGRvbWFpbiAqZCwKKwkJCQkJ ICBCT09MX0lURVJfRlVOQ19BUkcxIGl0ZXJfZnVuYykKK3sKKwlpbnQgaSA9IDA7CisJc3RydWN0 IGNvbnNvbGUgKmNvbiA9ICZkLT5jb25zb2xlWzBdOworCisJZm9yIChpID0gMDsgaSA8IE1BWF9D T05TT0xFOyBpKyssIGNvbisrKSB7CisJCWlmIChpdGVyX2Z1bmMoY29uKSkKKwkJCXJldHVybiB0 cnVlOworCX0KKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGNvbnNvbGVf aXRlcl9pbnRfYXJnMShzdHJ1Y3QgZG9tYWluICpkLAorCQkJCQlJTlRfSVRFUl9GVU5DX0FSRzEg aXRlcl9mdW5jKQoreworCWludCBpID0gMDsKKwlzdHJ1Y3QgY29uc29sZSAqY29uID0gJmQtPmNv bnNvbGVbMF07CisKKwlmb3IgKGkgPSAwOyBpIDwgTUFYX0NPTlNPTEU7IGkrKywgY29uKyspIHsK KwkJaWYgKGl0ZXJfZnVuYyhjb24pKQorCQkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQor CitzdGF0aWMgaW5saW5lIGludCBjb25zb2xlX2l0ZXJfaW50X2FyZzMoc3RydWN0IGRvbWFpbiAq ZCwKKwkJCQkJSU5UX0lURVJfRlVOQ19BUkczIGl0ZXJfZnVuYywKKwkJCQkJdm9pZCAqKml0ZXJf ZGF0YSkKK3sKKwlpbnQgaSA9IDA7CisJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkLT5jb25zb2xl WzBdOworCisJZm9yIChpID0gMDsgaSA8IE1BWF9DT05TT0xFOyBpKyssIGNvbisrKSB7CisJCWlm IChpdGVyX2Z1bmMoY29uLCBkLCBpdGVyX2RhdGEpKQorCQkJcmV0dXJuIDE7CisJfQorCXJldHVy biAwOworfQorCiBzdGF0aWMgaW50IHdyaXRlX2FsbChpbnQgZmQsIGNvbnN0IGNoYXIqIGJ1Ziwg c2l6ZV90IGxlbikKIHsKIAl3aGlsZSAobGVuKSB7CkBAIC0zMzYsNyArNDI0LDcgQEAgc3RhdGlj IGludCBjcmVhdGVfY29uc29sZV9sb2coc3RydWN0IGNvbnNvbGUgKmNvbikKIAkJcmV0dXJuIC0x OwogCX0KIAotCXNucHJpbnRmKGxvZ2ZpbGUsIFBBVEhfTUFYLTEsICIlcy9ndWVzdC0lcy5sb2ci LCBsb2dfZGlyLCBkYXRhKTsKKwlzbnByaW50Zihsb2dmaWxlLCBQQVRIX01BWC0xLCAiJXMvZ3Vl c3QtJXMlcy5sb2ciLCBsb2dfZGlyLCBkYXRhLCBjb24tPmxvZ19zdWZmaXgpOwogCWZyZWUoZGF0 YSk7CiAJbG9nZmlsZVtQQVRIX01BWC0xXSA9ICdcMCc7CiAKQEAgLTQ4OCw3ICs1NzYsNyBAQCBz dGF0aWMgaW50IGNvbnNvbGVfY3JlYXRlX3R0eShzdHJ1Y3QgY29uc29sZSAqY29uKQogCX0KIAlm cmVlKHBhdGgpOwogCi0Jc3VjY2VzcyA9IChhc3ByaW50ZigmcGF0aCwgIiVzL3R0eSIsIGNvbi0+ eHNwYXRoKSAhPSAtMSk7CisJc3VjY2VzcyA9IChhc3ByaW50ZigmcGF0aCwgIiVzLyVzIiwgY29u LT54c3BhdGgsIGNvbi0+dHR5bmFtZSkgIT0gLTEpOwogCWlmICghc3VjY2VzcykKIAkJZ290byBv dXQ7CiAJc3VjY2VzcyA9IHhzX3dyaXRlKHhzLCBYQlRfTlVMTCwgcGF0aCwgc2xhdmUsIHN0cmxl bihzbGF2ZSkpOwpAQCAtNjU0LDEzICs3NDIsMTMgQEAgc3RhdGljIGJvb2wgd2F0Y2hfZG9tYWlu KHN0cnVjdCBkb21haW4gKmRvbSwgYm9vbCB3YXRjaCkKIHsKIAljaGFyIGRvbWlkX3N0clszICsg TUFYX1NUUkxFTihkb20tPmRvbWlkKV07CiAJYm9vbCBzdWNjZXNzOwotCXN0cnVjdCBjb25zb2xl ICpjb24gPSAmZG9tLT5jb25zb2xlOworCXN0cnVjdCBjb25zb2xlICpjb24gPSAmZG9tLT5jb25z b2xlWzBdOwogCiAJc25wcmludGYoZG9taWRfc3RyLCBzaXplb2YoZG9taWRfc3RyKSwgImRvbSV1 IiwgZG9tLT5kb21pZCk7CiAJaWYgKHdhdGNoKSB7CiAJCXN1Y2Nlc3MgPSB4c193YXRjaCh4cywg Y29uLT54c3BhdGgsIGRvbWlkX3N0cik7CiAJCWlmIChzdWNjZXNzKQotCQkJY29uc29sZV9jcmVh dGVfcmluZyhjb24pOworCQkJY29uc29sZV9pdGVyX2ludF9hcmcxKGRvbSwgY29uc29sZV9jcmVh dGVfcmluZyk7CiAJCWVsc2UKIAkJCXhzX3Vud2F0Y2goeHMsIGNvbi0+eHNwYXRoLCBkb21pZF9z dHIpOwogCX0gZWxzZSB7CkBAIC02NzAsMTEgKzc1OCwxMyBAQCBzdGF0aWMgYm9vbCB3YXRjaF9k b21haW4oc3RydWN0IGRvbWFpbiAqZG9tLCBib29sIHdhdGNoKQogCXJldHVybiBzdWNjZXNzOwog fQogCi1zdGF0aWMgaW50IGNvbnNvbGVfaW5pdChzdHJ1Y3QgY29uc29sZSAqY29uLCBzdHJ1Y3Qg ZG9tYWluICpkb20pCitzdGF0aWMgaW50IGNvbnNvbGVfaW5pdChzdHJ1Y3QgY29uc29sZSAqY29u LCBzdHJ1Y3QgZG9tYWluICpkb20sIHZvaWQgKipkYXRhKQogewogCWNoYXIgKnM7CiAJaW50IGVy ciA9IC0xOwogCXN0cnVjdCB0aW1lc3BlYyB0czsKKwlzdHJ1Y3QgY29uc29sZV9kYXRhICoqY29u X2RhdGEgPSAoc3RydWN0IGNvbnNvbGVfZGF0YSAqKilkYXRhOworCWNoYXIgKnhzbmFtZSwgKnhz cGF0aDsKIAogCWlmIChjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJnRzKSA8IDApIHsK IAkJZG9sb2coTE9HX0VSUiwgIkNhbm5vdCBnZXQgdGltZSBvZiBkYXkgJXM6JXM6TCVkIiwKQEAg LTY5MiwxNSArNzgyLDIxIEBAIHN0YXRpYyBpbnQgY29uc29sZV9pbml0KHN0cnVjdCBjb25zb2xl ICpjb24sIHN0cnVjdCBkb21haW4gKmRvbSkKIAljb24tPnhjZV9wb2xsZmRfaWR4ID0gLTE7CiAJ Y29uLT5uZXh0X3BlcmlvZCA9ICgobG9uZyBsb25nKXRzLnR2X3NlYyAqIDEwMDApICsgKHRzLnR2 X25zZWMgLyAxMDAwMDAwKSArIFJBVEVfTElNSVRfUEVSSU9EOwogCWNvbi0+ZCA9IGRvbTsKLQlj b24tPnhzcGF0aCA9IHhzX2dldF9kb21haW5fcGF0aCh4cywgZG9tLT5kb21pZCk7Ci0JcyA9IHJl YWxsb2MoY29uLT54c3BhdGgsIHN0cmxlbihjb24tPnhzcGF0aCkgKwotCQkgICAgc3RybGVuKCIv Y29uc29sZSIpICsgMSk7CisJY29uLT50dHluYW1lID0gKCpjb25fZGF0YSktPnR0eW5hbWU7CisJ Y29uLT5sb2dfc3VmZml4ID0gKCpjb25fZGF0YSktPmxvZ19zdWZmaXg7CisJeHNuYW1lID0gKGNo YXIgKikoKmNvbl9kYXRhKS0+eHNuYW1lOworCXhzcGF0aCA9IHhzX2dldF9kb21haW5fcGF0aCh4 cywgZG9tLT5kb21pZCk7CisJcyA9IHJlYWxsb2MoeHNwYXRoLCBzdHJsZW4oeHNwYXRoKSArCisJ CSAgICBzdHJsZW4oeHNuYW1lKSArIDEpOwogCWlmIChzKSB7Ci0JCWNvbi0+eHNwYXRoID0gczsK LQkJc3RyY2F0KGNvbi0+eHNwYXRoLCAiL2NvbnNvbGUiKTsKKwkJeHNwYXRoID0gczsKKwkJc3Ry Y2F0KHhzcGF0aCwgeHNuYW1lKTsKKwkJY29uLT54c3BhdGggPSB4c3BhdGg7CiAJCWVyciA9IDA7 CiAJfQogCisJKCpjb25fZGF0YSkrKzsKKwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTcxMyw3ICs4 MDksNyBAQCBzdGF0aWMgdm9pZCBjb25zb2xlX2ZyZWUoc3RydWN0IGNvbnNvbGUgKmNvbikKIHN0 YXRpYyBzdHJ1Y3QgZG9tYWluICpjcmVhdGVfZG9tYWluKGludCBkb21pZCkKIHsKIAlzdHJ1Y3Qg ZG9tYWluICpkb207Ci0Jc3RydWN0IGNvbnNvbGUgKmNvbjsKKwlzdHJ1Y3QgY29uc29sZV9kYXRh ICpjb25fZGF0YSA9ICZjb25zb2xlX2RhdGFbMF07CiAKIAlkb20gPSBjYWxsb2MoMSwgc2l6ZW9m ICpkb20pOwogCWlmIChkb20gPT0gTlVMTCkgewpAQCAtNzIzLDkgKzgxOSw4IEBAIHN0YXRpYyBz dHJ1Y3QgZG9tYWluICpjcmVhdGVfZG9tYWluKGludCBkb21pZCkKIAl9CiAKIAlkb20tPmRvbWlk ID0gZG9taWQ7Ci0JY29uID0gJmRvbS0+Y29uc29sZTsKIAotCWlmIChjb25zb2xlX2luaXQoY29u LCBkb20pKQorCWlmIChjb25zb2xlX2l0ZXJfaW50X2FyZzMoZG9tLCBjb25zb2xlX2luaXQsICh2 b2lkICoqKSZjb25fZGF0YSkpCiAJCWdvdG8gb3V0OwogCiAJaWYgKCF3YXRjaF9kb21haW4oZG9t LCB0cnVlKSkKQEAgLTczOCw3ICs4MzMsNyBAQCBzdGF0aWMgc3RydWN0IGRvbWFpbiAqY3JlYXRl X2RvbWFpbihpbnQgZG9taWQpCiAKIAlyZXR1cm4gZG9tOwogIG91dDoKLQljb25zb2xlX2ZyZWUo Y29uKTsKKwljb25zb2xlX2l0ZXJfdm9pZF9hcmcxKGRvbSwgY29uc29sZV9mcmVlKTsKIAlmcmVl KGRvbSk7CiAJcmV0dXJuIE5VTEw7CiB9CkBAIC03ODQsMTEgKzg3OSw5IEBAIHN0YXRpYyB2b2lk IGNvbnNvbGVfY2xlYW51cChzdHJ1Y3QgY29uc29sZSAqY29uKQogCiBzdGF0aWMgdm9pZCBjbGVh bnVwX2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkKQogewotCXN0cnVjdCBjb25zb2xlICpjb24gPSAm ZC0+Y29uc29sZTsKKwljb25zb2xlX2l0ZXJfdm9pZF9hcmcxKGQsIGNvbnNvbGVfY2xvc2VfdHR5 KTsKIAotCWNvbnNvbGVfY2xvc2VfdHR5KGNvbik7Ci0KLQljb25zb2xlX2NsZWFudXAoY29uKTsK Kwljb25zb2xlX2l0ZXJfdm9pZF9hcmcxKGQsIGNvbnNvbGVfY2xlYW51cCk7CiAKIAlyZW1vdmVf ZG9tYWluKGQpOwogfQpAQCAtODAzLDEyICs4OTYsMTAgQEAgc3RhdGljIHZvaWQgY29uc29sZV9j bG9zZV9ldnRjaG4oc3RydWN0IGNvbnNvbGUgKmNvbikKIAogc3RhdGljIHZvaWQgc2h1dGRvd25f ZG9tYWluKHN0cnVjdCBkb21haW4gKmQpCiB7Ci0Jc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkLT5j b25zb2xlOwotCiAJZC0+aXNfZGVhZCA9IHRydWU7CiAJd2F0Y2hfZG9tYWluKGQsIGZhbHNlKTsK LQljb25zb2xlX3VubWFwX2ludGVyZmFjZShjb24pOwotCWNvbnNvbGVfY2xvc2VfZXZ0Y2huKGNv bik7CisJY29uc29sZV9pdGVyX3ZvaWRfYXJnMShkLCBjb25zb2xlX3VubWFwX2ludGVyZmFjZSk7 CisJY29uc29sZV9pdGVyX3ZvaWRfYXJnMShkLCBjb25zb2xlX2Nsb3NlX2V2dGNobik7CiB9CiAK IHN0YXRpYyB1bnNpZ25lZCBlbnVtX3Bhc3MgPSAwOwpAQCAtMTAwMyw3ICsxMDk0LDcgQEAgc3Rh dGljIHZvaWQgaGFuZGxlX3hzKHZvaWQpCiAJCS8qIFdlIG1heSBnZXQgd2F0Y2hlcyBmaXJpbmcg Zm9yIGRvbWFpbnMgdGhhdCBoYXZlIHJlY2VudGx5CiAJCSAgIGJlZW4gcmVtb3ZlZCwgc28gZG9t IG1heSBiZSBOVUxMIGhlcmUuICovCiAJCWlmIChkb20gJiYgZG9tLT5pc19kZWFkID09IGZhbHNl KQotCQkJY29uc29sZV9jcmVhdGVfcmluZygmZG9tLT5jb25zb2xlKTsKKwkJCWNvbnNvbGVfaXRl cl9pbnRfYXJnMShkb20sIGNvbnNvbGVfY3JlYXRlX3JpbmcpOwogCX0KIAogCWZyZWUodmVjKTsK QEAgLTEwNTgsOSArMTE0OSw3IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9sb2dfcmVsb2FkKHZvaWQp CiAJaWYgKGxvZ19ndWVzdCkgewogCQlzdHJ1Y3QgZG9tYWluICpkOwogCQlmb3IgKGQgPSBkb21f aGVhZDsgZDsgZCA9IGQtPm5leHQpIHsKLQkJCXN0cnVjdCBjb25zb2xlICpjb24gPSAmZC0+Y29u c29sZTsKLQotCQkJY29uc29sZV9vcGVuX2xvZyhjb24pOworCQkJY29uc29sZV9pdGVyX3ZvaWRf YXJnMShkLCBjb25zb2xlX29wZW5fbG9nKTsKIAkJfQogCX0KIApAQCAtMTIyMywxMyArMTMxMiwx MyBAQCB2b2lkIGhhbmRsZV9pbyh2b2lkKQogCQkvKiBSZS1jYWxjdWxhdGUgYW55IGV2ZW50IGNv dW50ZXIgYWxsb3dhbmNlcyAmIHVuYmxvY2sKIAkJICAgZG9tYWlucyB3aXRoIG5ldyBhbGxvd2Fu Y2UgKi8KIAkJZm9yIChkID0gZG9tX2hlYWQ7IGQ7IGQgPSBkLT5uZXh0KSB7Ci0JCQlzdHJ1Y3Qg Y29uc29sZSAqY29uID0gJmQtPmNvbnNvbGU7CiAKLQkJCWNvbnNvbGVfZXZ0Y2huX3VubWFzayhj b24sICh2b2lkICopbm93KTsKKwkJCWNvbnNvbGVfaXRlcl92b2lkX2FyZzIoZCwgY29uc29sZV9l dnRjaG5fdW5tYXNrLCAodm9pZCAqKW5vdyk7CiAKLQkJCW1heWJlX2FkZF9jb25zb2xlX2V2dGNo bl9mZChjb24sICh2b2lkICopJm5leHRfdGltZW91dCk7CisJCQljb25zb2xlX2l0ZXJfdm9pZF9h cmcyKGQsIG1heWJlX2FkZF9jb25zb2xlX2V2dGNobl9mZCwgCisJCQkJCSAgICAgICAodm9pZCAq KSZuZXh0X3RpbWVvdXQpOwogCi0JCQltYXliZV9hZGRfY29uc29sZV90dHlfZmQoY29uKTsKKwkJ CWNvbnNvbGVfaXRlcl92b2lkX2FyZzEoZCwgbWF5YmVfYWRkX2NvbnNvbGVfdHR5X2ZkKTsKIAkJ fQogCiAJCS8qIElmIGFueSBkb21haW4gaGFzIGJlZW4gcmF0ZSBsaW1pdGVkLCB3ZSBuZWVkIHRv IHdvcmsKQEAgLTEyOTAsMTMgKzEzNzksMTIgQEAgdm9pZCBoYW5kbGVfaW8odm9pZCkKIAkJfQog CiAJCWZvciAoZCA9IGRvbV9oZWFkOyBkOyBkID0gbikgewotCQkJc3RydWN0IGNvbnNvbGUgKmNv biA9ICZkLT5jb25zb2xlOwogCiAJCQluID0gZC0+bmV4dDsKIAotCQkJaGFuZGxlX2NvbnNvbGVf cmluZyhjb24pOworCQkJY29uc29sZV9pdGVyX3ZvaWRfYXJnMShkLCBoYW5kbGVfY29uc29sZV9y aW5nKTsKIAotCQkJaGFuZGxlX2NvbnNvbGVfdHR5KGNvbik7CisJCQljb25zb2xlX2l0ZXJfdm9p ZF9hcmcxKGQsIGhhbmRsZV9jb25zb2xlX3R0eSk7CiAKIAkJCWlmIChkLT5sYXN0X3NlZW4gIT0g ZW51bV9wYXNzKQogCQkJCXNodXRkb3duX2RvbWFpbihkKTsKLS0gCjIuNy40CgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==