From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bhupinder Thakur Subject: [PATCH 21/25 v6] xen/arm: vpl011: Add support for multiple consoles in xenconsole Date: Mon, 17 Jul 2017 18:36:51 +0530 Message-ID: <1500296815-10243-22-git-send-email-bhupinder.thakur@linaro.org> References: <1500296815-10243-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 1dX5kv-00052t-LN for xen-devel@lists.xenproject.org; Mon, 17 Jul 2017 13:08:09 +0000 Received: by mail-pg0-f45.google.com with SMTP id k14so79616263pgr.0 for ; Mon, 17 Jul 2017 06:08:06 -0700 (PDT) In-Reply-To: <1500296815-10243-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 cm9kdWNlcyB0aGUgaXRlcmF0b3IKZnVuY3Rpb25zIHRvIG9wZXJhdGUgb24gbXVsdGlwbGUgY29u c29sZXMuCgpUaGlzIHBhdGNoIGlzIGluIHByZXBhcmF0aW9uIHRvIHN1cHBvcnQgYSBuZXcgdnVh cnQgY29uc29sZS4KClNpZ25lZC1vZmYtYnk6IEJodXBpbmRlciBUaGFrdXIgPGJodXBpbmRlci50 aGFrdXJAbGluYXJvLm9yZz4KLS0tCkNDOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0 cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBTdGVmYW5vIFN0 YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNDOiBKdWxpZW4gR3JhbGwgPGp1bGll bi5ncmFsbEBhcm0uY29tPgoKQ2hhbmdlcyBzaW5jZSB2NToKLSBTcGxpdCB0aGlzIHBhdGNoIGlu IG11bHRpcGxlIHNtYWxsZXIgcGF0Y2hlcy4KCkNoYW5nZXMgc2luY2UgdjQ6Ci0gQ2hhbmdlcyB0 byBtYWtlIGV2ZW50IGNoYW5uZWwgaGFuZGxpbmcgcGVyIGNvbnNvbGUgcmF0aGVyIHRoYW4gcGVy IGRvbWFpbi4KCkNoYW5nZXMgc2luY2UgdjM6Ci0gVGhlIGNoYW5nZXMgaW4geGVuY29uc29sZSBo YXZlIGJlZW4gc3BsaXQgaW50byBmb3VyIHBhdGNoZXMuIFRoaXMgaXMgdGhlIHRoaXJkIHBhdGNo LgoKIHRvb2xzL2NvbnNvbGUvZGFlbW9uL2lvLmMgfCAxNzQgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzNCBpbnNlcnRpb25z KCspLCA0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9jb25zb2xlL2RhZW1vbi9p by5jIGIvdG9vbHMvY29uc29sZS9kYWVtb24vaW8uYwppbmRleCA1NGM5MWFhLi40OWYwODVjIDEw MDY0NAotLS0gYS90b29scy9jb25zb2xlL2RhZW1vbi9pby5jCisrKyBiL3Rvb2xzL2NvbnNvbGUv ZGFlbW9uL2lvLmMKQEAgLTkwLDEyICs5MCwxNCBAQCBzdHJ1Y3QgYnVmZmVyIHsKIH07CiAKIHN0 cnVjdCBjb25zb2xlIHsKKwljb25zdCBjaGFyICpjb25zdCB0dHluYW1lOwogCWludCBtYXN0ZXJf ZmQ7CiAJaW50IG1hc3Rlcl9wb2xsZmRfaWR4OwogCWludCBzbGF2ZV9mZDsKIAlpbnQgbG9nX2Zk OwogCXN0cnVjdCBidWZmZXIgYnVmZmVyOwotCWNoYXIgKnhzcGF0aDsKKwljb25zdCBjaGFyICpj b25zdCB4c3BhdGg7CisJY29uc3QgY2hhciAqY29uc3QgbG9nX3N1ZmZpeDsKIAlpbnQgcmluZ19y ZWY7CiAJeGVuZXZ0Y2huX2hhbmRsZSAqeGNlX2hhbmRsZTsKIAlpbnQgeGNlX3BvbGxmZF9pZHg7 CkBAIC0xMDcsMjEgKzEwOSwxMTIgQEAgc3RydWN0IGNvbnNvbGUgewogCXN0cnVjdCBkb21haW4g KmQ7CiB9OwogCitzdHJ1Y3QgY29uc29sZV9kYXRhIHsKKwljb25zdCBjaGFyICpjb25zdCB4c25h bWU7CisJY29uc3QgY2hhciAqY29uc3QgdHR5bmFtZTsKKwljb25zdCBjaGFyICpjb25zdCBsb2df c3VmZml4OworfTsKKworc3RhdGljIHN0cnVjdCBjb25zb2xlX2RhdGEgY29uc29sZV9kYXRhW10g PSB7CisJeworCQkueHNuYW1lID0gIi9jb25zb2xlIiwKKwkJLnR0eW5hbWUgPSAidHR5IiwKKwkJ LmxvZ19zdWZmaXggPSAiIiwKKwl9LAorfTsKKworI2RlZmluZSBNQVhfQ09OU09MRSAoc2l6ZW9m KGNvbnNvbGVfZGF0YSkvc2l6ZW9mKHN0cnVjdCBjb25zb2xlX2RhdGEpKQorCiBzdHJ1Y3QgZG9t YWluIHsKIAlpbnQgZG9taWQ7CiAJYm9vbCBpc19kZWFkOwogCXVuc2lnbmVkIGxhc3Rfc2VlbjsK IAlzdHJ1Y3QgZG9tYWluICpuZXh0OwotCXN0cnVjdCBjb25zb2xlIGNvbnNvbGU7CisJc3RydWN0 IGNvbnNvbGUgY29uc29sZVtNQVhfQ09OU09MRV07CiB9OwogCiBzdGF0aWMgc3RydWN0IGRvbWFp biAqZG9tX2hlYWQ7CiAKK3R5cGVkZWYgdm9pZCAoKlZPSURfSVRFUl9GVU5DX0FSRzEpKHN0cnVj dCBjb25zb2xlICopOwordHlwZWRlZiBib29sICgqQk9PTF9JVEVSX0ZVTkNfQVJHMSkoc3RydWN0 IGNvbnNvbGUgKik7Cit0eXBlZGVmIGludCAoKklOVF9JVEVSX0ZVTkNfQVJHMSkoc3RydWN0IGNv bnNvbGUgKik7Cit0eXBlZGVmIHZvaWQgKCpWT0lEX0lURVJfRlVOQ19BUkcyKShzdHJ1Y3QgY29u c29sZSAqLCAgdm9pZCAqKTsKK3R5cGVkZWYgaW50ICgqSU5UX0lURVJfRlVOQ19BUkczKShzdHJ1 Y3QgY29uc29sZSAqLAorCQkJCSAgc3RydWN0IGRvbWFpbiAqZG9tLCB2b2lkICoqKTsKKwogc3Rh dGljIGlubGluZSBib29sIGNvbnNvbGVfZW5hYmxlZChzdHJ1Y3QgY29uc29sZSAqY29uKQogewog CXJldHVybiBjb24tPmxvY2FsX3BvcnQgIT0gLTE7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBj b25zb2xlX2l0ZXJfdm9pZF9hcmcxKHN0cnVjdCBkb21haW4gKmQsCisJCQkJCSAgVk9JRF9JVEVS X0ZVTkNfQVJHMSBpdGVyX2Z1bmMpCit7CisJaW50IGkgPSAwOworCXN0cnVjdCBjb25zb2xlICpj b24gPSAmZC0+Y29uc29sZVswXTsKKworCWZvciAoaSA9IDA7IGkgPCBNQVhfQ09OU09MRTsgaSsr LCBjb24rKykKKwl7CisJCWl0ZXJfZnVuYyhjb24pOworCX0KK30KKworc3RhdGljIGlubGluZSB2 b2lkIGNvbnNvbGVfaXRlcl92b2lkX2FyZzIoc3RydWN0IGRvbWFpbiAqZCwKKwkJCQkJICBWT0lE X0lURVJfRlVOQ19BUkcyIGl0ZXJfZnVuYywKKwkJCQkJICB2b2lkICppdGVyX2RhdGEpCit7CisJ aW50IGkgPSAwOworCXN0cnVjdCBjb25zb2xlICpjb24gPSAmZC0+Y29uc29sZVswXTsKKworCWZv ciAoaSA9IDA7IGkgPCBNQVhfQ09OU09MRTsgaSsrLCBjb24rKykKKwl7CisJCWl0ZXJfZnVuYyhj b24sIGl0ZXJfZGF0YSk7CisJfQorfQorCitzdGF0aWMgaW5saW5lIGJvb2wgY29uc29sZV9pdGVy X2Jvb2xfYXJnMShzdHJ1Y3QgZG9tYWluICpkLAorCQkJCQkgIEJPT0xfSVRFUl9GVU5DX0FSRzEg aXRlcl9mdW5jKQoreworCWludCBpID0gMDsKKwlzdHJ1Y3QgY29uc29sZSAqY29uID0gJmQtPmNv bnNvbGVbMF07CisKKwlmb3IgKGkgPSAwOyBpIDwgTUFYX0NPTlNPTEU7IGkrKywgY29uKyspCisJ eworCQlpZiAoaXRlcl9mdW5jKGNvbikpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisJcmV0dXJuIGZh bHNlOworfQorCitzdGF0aWMgaW5saW5lIGludCBjb25zb2xlX2l0ZXJfaW50X2FyZzEoc3RydWN0 IGRvbWFpbiAqZCwKKwkJCQkJSU5UX0lURVJfRlVOQ19BUkcxIGl0ZXJfZnVuYykKK3sKKwlpbnQg aSA9IDA7CisJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkLT5jb25zb2xlWzBdOworCisJZm9yIChp ID0gMDsgaSA8IE1BWF9DT05TT0xFOyBpKyssIGNvbisrKQorCXsKKwkJaWYgKGl0ZXJfZnVuYyhj b24pKQorCQkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIGlu dCBjb25zb2xlX2l0ZXJfaW50X2FyZzMoc3RydWN0IGRvbWFpbiAqZCwKKwkJCQkJSU5UX0lURVJf RlVOQ19BUkczIGl0ZXJfZnVuYywKKwkJCQkJdm9pZCAqKml0ZXJfZGF0YSkKK3sKKwlpbnQgaSA9 IDA7CisJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkLT5jb25zb2xlWzBdOworCisJZm9yIChpID0g MDsgaSA8IE1BWF9DT05TT0xFOyBpKyssIGNvbisrKQorCXsKKwkJaWYgKGl0ZXJfZnVuYyhjb24s IGQsIGl0ZXJfZGF0YSkpCisJCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7Cit9CisKIHN0YXRp YyBpbnQgd3JpdGVfYWxsKGludCBmZCwgY29uc3QgY2hhciogYnVmLCBzaXplX3QgbGVuKQogewog CXdoaWxlIChsZW4pIHsKQEAgLTMzNiw3ICs0MjksNyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9jb25z b2xlX2xvZyhzdHJ1Y3QgY29uc29sZSAqY29uKQogCQlyZXR1cm4gLTE7CiAJfQogCi0Jc25wcmlu dGYobG9nZmlsZSwgUEFUSF9NQVgtMSwgIiVzL2d1ZXN0LSVzLmxvZyIsIGxvZ19kaXIsIGRhdGEp OworCXNucHJpbnRmKGxvZ2ZpbGUsIFBBVEhfTUFYLTEsICIlcy9ndWVzdC0lcyVzLmxvZyIsIGxv Z19kaXIsIGRhdGEsIGNvbi0+bG9nX3N1ZmZpeCk7CiAJZnJlZShkYXRhKTsKIAlsb2dmaWxlW1BB VEhfTUFYLTFdID0gJ1wwJzsKIApAQCAtNDg4LDcgKzU4MSw3IEBAIHN0YXRpYyBpbnQgY29uc29s ZV9jcmVhdGVfdHR5KHN0cnVjdCBjb25zb2xlICpjb24pCiAJfQogCWZyZWUocGF0aCk7CiAKLQlz dWNjZXNzID0gKGFzcHJpbnRmKCZwYXRoLCAiJXMvdHR5IiwgY29uLT54c3BhdGgpICE9IC0xKTsK KwlzdWNjZXNzID0gKGFzcHJpbnRmKCZwYXRoLCAiJXMvJXMiLCBjb24tPnhzcGF0aCwgY29uLT50 dHluYW1lKSAhPSAtMSk7CiAJaWYgKCFzdWNjZXNzKQogCQlnb3RvIG91dDsKIAlzdWNjZXNzID0g eHNfd3JpdGUoeHMsIFhCVF9OVUxMLCBwYXRoLCBzbGF2ZSwgc3RybGVuKHNsYXZlKSk7CkBAIC02 NTQsMTMgKzc0NywxMyBAQCBzdGF0aWMgYm9vbCB3YXRjaF9kb21haW4oc3RydWN0IGRvbWFpbiAq ZG9tLCBib29sIHdhdGNoKQogewogCWNoYXIgZG9taWRfc3RyWzMgKyBNQVhfU1RSTEVOKGRvbS0+ ZG9taWQpXTsKIAlib29sIHN1Y2Nlc3M7Ci0Jc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkb20tPmNv bnNvbGU7CisJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkb20tPmNvbnNvbGVbMF07CiAKIAlzbnBy aW50Zihkb21pZF9zdHIsIHNpemVvZihkb21pZF9zdHIpLCAiZG9tJXUiLCBkb20tPmRvbWlkKTsK IAlpZiAod2F0Y2gpIHsKIAkJc3VjY2VzcyA9IHhzX3dhdGNoKHhzLCBjb24tPnhzcGF0aCwgZG9t aWRfc3RyKTsKIAkJaWYgKHN1Y2Nlc3MpCi0JCQljb25zb2xlX2NyZWF0ZV9yaW5nKGNvbik7CisJ CQljb25zb2xlX2l0ZXJfaW50X2FyZzEoZG9tLCBjb25zb2xlX2NyZWF0ZV9yaW5nKTsKIAkJZWxz ZQogCQkJeHNfdW53YXRjaCh4cywgY29uLT54c3BhdGgsIGRvbWlkX3N0cik7CiAJfSBlbHNlIHsK QEAgLTY3MCwxNSArNzYzLDE4IEBAIHN0YXRpYyBib29sIHdhdGNoX2RvbWFpbihzdHJ1Y3QgZG9t YWluICpkb20sIGJvb2wgd2F0Y2gpCiAJcmV0dXJuIHN1Y2Nlc3M7CiB9CiAKLXN0YXRpYyBpbnQg Y29uc29sZV9pbml0KHN0cnVjdCBjb25zb2xlICpjb24sIHN0cnVjdCBkb21haW4gKmRvbSkKK3N0 YXRpYyBpbnQgY29uc29sZV9pbml0KHN0cnVjdCBjb25zb2xlICpjb24sIHN0cnVjdCBkb21haW4g KmRvbSwgdm9pZCAqKmRhdGEpCiB7CiAJY2hhciAqczsKKwlpbnQgZXJyID0gLTE7CiAJc3RydWN0 IHRpbWVzcGVjIHRzOworCXN0cnVjdCBjb25zb2xlX2RhdGEgKipjb25fZGF0YSA9IChzdHJ1Y3Qg Y29uc29sZV9kYXRhICoqKWRhdGE7CisJY2hhciAqeHNuYW1lLCAqeHNwYXRoOwogCiAJaWYgKGNs b2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmdHMpIDwgMCkgewogCQlkb2xvZyhMT0dfRVJS LCAiQ2Fubm90IGdldCB0aW1lIG9mIGRheSAlczolczpMJWQiLAogCQkgICAgICBfX0ZJTEVfXywg X19GVU5DVElPTl9fLCBfX0xJTkVfXyk7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gZXJyOwog CX0KIAogCWNvbi0+bWFzdGVyX2ZkID0gLTE7CkBAIC02OTEsMzAgKzc4NywzNyBAQCBzdGF0aWMg aW50IGNvbnNvbGVfaW5pdChzdHJ1Y3QgY29uc29sZSAqY29uLCBzdHJ1Y3QgZG9tYWluICpkb20p CiAJY29uLT54Y2VfcG9sbGZkX2lkeCA9IC0xOwogCWNvbi0+bmV4dF9wZXJpb2QgPSAoKGxvbmcg bG9uZyl0cy50dl9zZWMgKiAxMDAwKSArICh0cy50dl9uc2VjIC8gMTAwMDAwMCkgKyBSQVRFX0xJ TUlUX1BFUklPRDsKIAljb24tPmQgPSBkb207Ci0JY29uLT54c3BhdGggPSB4c19nZXRfZG9tYWlu X3BhdGgoeHMsIGRvbS0+ZG9taWQpOwotCXMgPSByZWFsbG9jKGNvbi0+eHNwYXRoLCBzdHJsZW4o Y29uLT54c3BhdGgpICsKLQkJICAgIHN0cmxlbigiL2NvbnNvbGUiKSArIDEpOworCSooY2hhciAq KikmY29uLT50dHluYW1lID0gKGNoYXIgKikoKmNvbl9kYXRhKS0+dHR5bmFtZTsKKwkqKGNoYXIg KiopJmNvbi0+bG9nX3N1ZmZpeCA9IChjaGFyICopKCpjb25fZGF0YSktPmxvZ19zdWZmaXg7CisJ Y29uLT5vcHRpb25hbCA9ICgqY29uX2RhdGEpLT5vcHRpb25hbDsKKwljb24tPnByZWZlcl9nbnR0 YWIgPSAoKmNvbl9kYXRhKS0+cHJlZmVyX2dudHRhYjsKKwl4c25hbWUgPSAoY2hhciAqKSgqY29u X2RhdGEpLT54c25hbWU7CisJeHNwYXRoID0geHNfZ2V0X2RvbWFpbl9wYXRoKHhzLCBkb20tPmRv bWlkKTsKKwlzID0gcmVhbGxvYyh4c3BhdGgsIHN0cmxlbih4c3BhdGgpICsKKwkJICAgIHN0cmxl bih4c25hbWUpICsgMSk7CiAJaWYgKHMpCiAJewotCQljb24tPnhzcGF0aCA9IHM7Ci0JCXN0cmNh dChjb24tPnhzcGF0aCwgIi9jb25zb2xlIik7CisJCXhzcGF0aCA9IHM7CisJCXN0cmNhdCh4c3Bh dGgsIHhzbmFtZSk7CisJCSooY2hhciAqKikmY29uLT54c3BhdGggPSB4c3BhdGg7CiAJCWVyciA9 IDA7CiAJfQogCisJKCpjb25fZGF0YSkrKzsKKwogCXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyB2 b2lkIGNvbnNvbGVfZnJlZShzdHJ1Y3QgY29uc29sZSAqY29uKQogewogCWlmIChjb24tPnhzcGF0 aCkKLQkJZnJlZShjb24tPnhzcGF0aCk7CisJCWZyZWUoKGNoYXIgKiljb24tPnhzcGF0aCk7CiB9 CiAKIHN0YXRpYyBzdHJ1Y3QgZG9tYWluICpjcmVhdGVfZG9tYWluKGludCBkb21pZCkKIHsKIAlz dHJ1Y3QgZG9tYWluICpkb207Ci0JY2hhciAqczsKLQlzdHJ1Y3QgY29uc29sZSAqY29uOworCXN0 cnVjdCBjb25zb2xlX2RhdGEgKmNvbl9kYXRhID0gJmNvbnNvbGVfZGF0YVswXTsKIAogCWRvbSA9 IGNhbGxvYygxLCBzaXplb2YgKmRvbSk7CiAJaWYgKGRvbSA9PSBOVUxMKSB7CkBAIC03MjQsOSAr ODI3LDggQEAgc3RhdGljIHN0cnVjdCBkb21haW4gKmNyZWF0ZV9kb21haW4oaW50IGRvbWlkKQog CX0KIAogCWRvbS0+ZG9taWQgPSBkb21pZDsKLQljb24gPSAmZG9tLT5jb25zb2xlOwogCi0JaWYg KGNvbnNvbGVfaW5pdChjb24sIGRvbSkpCisJaWYgKGNvbnNvbGVfaXRlcl9pbnRfYXJnMyhkb20s IGNvbnNvbGVfaW5pdCwgKHZvaWQgKiopJmNvbl9kYXRhKSkKIAkJZ290byBvdXQ7CiAKIAlpZiAo IXdhdGNoX2RvbWFpbihkb20sIHRydWUpKQpAQCAtNzM5LDcgKzg0MSw3IEBAIHN0YXRpYyBzdHJ1 Y3QgZG9tYWluICpjcmVhdGVfZG9tYWluKGludCBkb21pZCkKIAogCXJldHVybiBkb207CiAgb3V0 OgotCWNvbnNvbGVfZnJlZShjb24pOworCWNvbnNvbGVfaXRlcl92b2lkX2FyZzEoZG9tLCBjb25z b2xlX2ZyZWUpOwogCWZyZWUoZG9tKTsKIAlyZXR1cm4gTlVMTDsKIH0KQEAgLTc4NCwxOCArODg2 LDE2IEBAIHN0YXRpYyB2b2lkIGNvbnNvbGVfY2xlYW51cChzdHJ1Y3QgY29uc29sZSAqY29uKQog CiAJaWYgKGNvbi0+eHNwYXRoKQogCXsKLQkJZnJlZShjb24tPnhzcGF0aCk7Ci0JCWNvbi0+eHNw YXRoID0gTlVMTDsKKwkJZnJlZSgoY2hhciAqKWNvbi0+eHNwYXRoKTsKKwkJKihjaGFyICoqKSZj b24tPnhzcGF0aCA9IChjaGFyICopTlVMTDsKIAl9CiB9CiAKIHN0YXRpYyB2b2lkIGNsZWFudXBf ZG9tYWluKHN0cnVjdCBkb21haW4gKmQpCiB7Ci0Jc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkLT5j b25zb2xlOwotCi0JY29uc29sZV9jbG9zZV90dHkoY29uKTsKKwljb25zb2xlX2l0ZXJfdm9pZF9h cmcxKGQsIGNvbnNvbGVfY2xvc2VfdHR5KTsKIAotCWNvbnNvbGVfY2xlYW51cChjb24pOworCWNv bnNvbGVfaXRlcl92b2lkX2FyZzEoZCwgY29uc29sZV9jbGVhbnVwKTsKIAogCXJlbW92ZV9kb21h aW4oZCk7CiB9CkBAIC04MTAsMTIgKzkxMCwxMCBAQCBzdGF0aWMgdm9pZCBjb25zb2xlX2Nsb3Nl X2V2dGNobihzdHJ1Y3QgY29uc29sZSAqY29uKQogCiBzdGF0aWMgdm9pZCBzaHV0ZG93bl9kb21h aW4oc3RydWN0IGRvbWFpbiAqZCkKIHsKLQlzdHJ1Y3QgY29uc29sZSAqY29uID0gJmQtPmNvbnNv bGU7Ci0KIAlkLT5pc19kZWFkID0gdHJ1ZTsKIAl3YXRjaF9kb21haW4oZCwgZmFsc2UpOwotCWNv bnNvbGVfdW5tYXBfaW50ZXJmYWNlKGNvbik7Ci0JY29uc29sZV9jbG9zZV9ldnRjaG4oY29uKTsK Kwljb25zb2xlX2l0ZXJfdm9pZF9hcmcxKGQsIGNvbnNvbGVfdW5tYXBfaW50ZXJmYWNlKTsKKwlj b25zb2xlX2l0ZXJfdm9pZF9hcmcxKGQsIGNvbnNvbGVfY2xvc2VfZXZ0Y2huKTsKIH0KIAogc3Rh dGljIHVuc2lnbmVkIGVudW1fcGFzcyA9IDA7CkBAIC0xMDExLDcgKzExMDksNyBAQCBzdGF0aWMg dm9pZCBoYW5kbGVfeHModm9pZCkKIAkJLyogV2UgbWF5IGdldCB3YXRjaGVzIGZpcmluZyBmb3Ig ZG9tYWlucyB0aGF0IGhhdmUgcmVjZW50bHkKIAkJICAgYmVlbiByZW1vdmVkLCBzbyBkb20gbWF5 IGJlIE5VTEwgaGVyZS4gKi8KIAkJaWYgKGRvbSAmJiBkb20tPmlzX2RlYWQgPT0gZmFsc2UpCi0J CQljb25zb2xlX2NyZWF0ZV9yaW5nKCZkb20tPmNvbnNvbGUpOworCQkJY29uc29sZV9pdGVyX2lu dF9hcmcxKGRvbSwgY29uc29sZV9jcmVhdGVfcmluZyk7CiAJfQogCiAJZnJlZSh2ZWMpOwpAQCAt MTA2Nyw5ICsxMTY1LDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlX2xvZ19yZWxvYWQodm9pZCkKIAlp ZiAobG9nX2d1ZXN0KSB7CiAJCXN0cnVjdCBkb21haW4gKmQ7CiAJCWZvciAoZCA9IGRvbV9oZWFk OyBkOyBkID0gZC0+bmV4dCkgewotCQkJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkLT5jb25zb2xl OwotCi0JCQljb25zb2xlX29wZW5fbG9nKGNvbik7CisJCQljb25zb2xlX2l0ZXJfdm9pZF9hcmcx KGQsIGNvbnNvbGVfb3Blbl9sb2cpOwogCQl9CiAJfQogCkBAIC0xMjMzLDEzICsxMzI5LDEyIEBA IHZvaWQgaGFuZGxlX2lvKHZvaWQpCiAJCS8qIFJlLWNhbGN1bGF0ZSBhbnkgZXZlbnQgY291bnRl ciBhbGxvd2FuY2VzICYgdW5ibG9jawogCQkgICBkb21haW5zIHdpdGggbmV3IGFsbG93YW5jZSAq LwogCQlmb3IgKGQgPSBkb21faGVhZDsgZDsgZCA9IGQtPm5leHQpIHsKLQkJCXN0cnVjdCBjb25z b2xlICpjb24gPSAmZC0+Y29uc29sZTsKIAotCQkJY29uc29sZV9ldnRjaG5fdW5tYXNrKGNvbiwg KHZvaWQgKilub3cpOworCQkJY29uc29sZV9pdGVyX3ZvaWRfYXJnMihkLCBjb25zb2xlX2V2dGNo bl91bm1hc2ssICh2b2lkICopbm93KTsKIAotCQkJYWRkX2NvbnNvbGVfZXZ0Y2huX2ZkKGNvbiwg KHZvaWQgKikmbmV4dF90aW1lb3V0KTsKKwkJCWNvbnNvbGVfaXRlcl92b2lkX2FyZzIoZCwgYWRk X2NvbnNvbGVfZXZ0Y2huX2ZkLCAodm9pZCAqKSZuZXh0X3RpbWVvdXQpOwogCi0JCQlhZGRfY29u c29sZV90dHlfZmQoY29uKTsKKwkJCWNvbnNvbGVfaXRlcl92b2lkX2FyZzEoZCwgYWRkX2NvbnNv bGVfdHR5X2ZkKTsKIAkJfQogCiAJCS8qIElmIGFueSBkb21haW4gaGFzIGJlZW4gcmF0ZSBsaW1p dGVkLCB3ZSBuZWVkIHRvIHdvcmsKQEAgLTEzMDAsMTMgKzEzOTUsMTIgQEAgdm9pZCBoYW5kbGVf aW8odm9pZCkKIAkJfQogCiAJCWZvciAoZCA9IGRvbV9oZWFkOyBkOyBkID0gbikgewotCQkJc3Ry dWN0IGNvbnNvbGUgKmNvbiA9ICZkLT5jb25zb2xlOwogCiAJCQluID0gZC0+bmV4dDsKIAotCQkJ aGFuZGxlX2NvbnNvbGVfcmluZyhjb24pOworCQkJY29uc29sZV9pdGVyX3ZvaWRfYXJnMShkLCBo YW5kbGVfY29uc29sZV9yaW5nKTsKIAotCQkJaGFuZGxlX2NvbnNvbGVfdHR5KGNvbik7CisJCQlj b25zb2xlX2l0ZXJfdm9pZF9hcmcxKGQsIGhhbmRsZV9jb25zb2xlX3R0eSk7CiAKIAkJCWlmIChk LT5sYXN0X3NlZW4gIT0gZW51bV9wYXNzKQogCQkJCXNodXRkb3duX2RvbWFpbihkKTsKLS0gCjIu Ny40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==