From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bhupinder Thakur Subject: [PATCH 21/27 v8] xen/arm: vpl011: Add support for multiple consoles in xenconsole Date: Mon, 28 Aug 2017 14:26:04 +0530 Message-ID: <1503910570-24427-22-git-send-email-bhupinder.thakur@linaro.org> References: <1503910570-24427-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 1dmFrN-0005cB-7h for xen-devel@lists.xenproject.org; Mon, 28 Aug 2017 08:57:29 +0000 Received: by mail-pg0-f49.google.com with SMTP id 83so22179991pgb.4 for ; Mon, 28 Aug 2017 01:57:27 -0700 (PDT) In-Reply-To: <1503910570-24427-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 cm8ub3JnPgotLS0KQ0M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpD QzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8 c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFy bS5jb20+CgpDaGFuZ2VzIHNpbmNlIHY1OgotIFNwbGl0IHRoaXMgcGF0Y2ggaW4gbXVsdGlwbGUg c21hbGxlciBwYXRjaGVzLgoKQ2hhbmdlcyBzaW5jZSB2NDoKLSBDaGFuZ2VzIHRvIG1ha2UgZXZl bnQgY2hhbm5lbCBoYW5kbGluZyBwZXIgY29uc29sZSByYXRoZXIgdGhhbiBwZXIgZG9tYWluLgoK Q2hhbmdlcyBzaW5jZSB2MzoKLSBUaGUgY2hhbmdlcyBpbiB4ZW5jb25zb2xlIGhhdmUgYmVlbiBz cGxpdCBpbnRvIGZvdXIgcGF0Y2hlcy4gVGhpcyBpcyB0aGUgdGhpcmQgcGF0Y2guCgogdG9vbHMv Y29uc29sZS9kYWVtb24vaW8uYyB8IDE2MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTI2IGluc2VydGlvbnMoKyksIDM0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2NvbnNvbGUvZGFlbW9uL2lvLmMgYi90b29s cy9jb25zb2xlL2RhZW1vbi9pby5jCmluZGV4IDcxNDY1YTAuLmExOThkYmIgMTAwNjQ0Ci0tLSBh L3Rvb2xzL2NvbnNvbGUvZGFlbW9uL2lvLmMKKysrIGIvdG9vbHMvY29uc29sZS9kYWVtb24vaW8u YwpAQCAtOTAsMTIgKzkwLDE0IEBAIHN0cnVjdCBidWZmZXIgewogfTsKIAogc3RydWN0IGNvbnNv bGUgeworCWNoYXIgKnR0eW5hbWU7CiAJaW50IG1hc3Rlcl9mZDsKIAlpbnQgbWFzdGVyX3BvbGxm ZF9pZHg7CiAJaW50IHNsYXZlX2ZkOwogCWludCBsb2dfZmQ7CiAJc3RydWN0IGJ1ZmZlciBidWZm ZXI7CiAJY2hhciAqeHNwYXRoOworCWNoYXIgKmxvZ19zdWZmaXg7CiAJaW50IHJpbmdfcmVmOwog CXhlbmV2dGNobl9oYW5kbGUgKnhjZV9oYW5kbGU7CiAJaW50IHhjZV9wb2xsZmRfaWR4OwpAQCAt MTA3LDIxICsxMDksMTA5IEBAIHN0cnVjdCBjb25zb2xlIHsKIAlzdHJ1Y3QgZG9tYWluICpkOwog fTsKIAorc3RydWN0IGNvbnNvbGVfdHlwZSB7CisJY2hhciAqeHNuYW1lOworCWNoYXIgKnR0eW5h bWU7CisJY2hhciAqbG9nX3N1ZmZpeDsKK307CisKK3N0YXRpYyBzdHJ1Y3QgY29uc29sZV90eXBl IGNvbnNvbGVfdHlwZVtdID0geworCXsKKwkJLnhzbmFtZSA9ICIvY29uc29sZSIsCisJCS50dHlu YW1lID0gInR0eSIsCisJCS5sb2dfc3VmZml4ID0gIiIsCisJfSwKK307CisKKyNkZWZpbmUgTlVN X0NPTlNPTEVfVFlQRSAoc2l6ZW9mKGNvbnNvbGVfdHlwZSkvc2l6ZW9mKHN0cnVjdCBjb25zb2xl X3R5cGUpKQorCiBzdHJ1Y3QgZG9tYWluIHsKIAlpbnQgZG9taWQ7CiAJYm9vbCBpc19kZWFkOwog CXVuc2lnbmVkIGxhc3Rfc2VlbjsKIAlzdHJ1Y3QgZG9tYWluICpuZXh0OwotCXN0cnVjdCBjb25z b2xlIGNvbnNvbGU7CisJc3RydWN0IGNvbnNvbGUgY29uc29sZVtOVU1fQ09OU09MRV9UWVBFXTsK IH07CiAKIHN0YXRpYyBzdHJ1Y3QgZG9tYWluICpkb21faGVhZDsKIAordHlwZWRlZiB2b2lkICgq Vk9JRF9JVEVSX0ZVTkNfQVJHMSkoc3RydWN0IGNvbnNvbGUgKik7Cit0eXBlZGVmIGludCAoKklO VF9JVEVSX0ZVTkNfQVJHMSkoc3RydWN0IGNvbnNvbGUgKik7Cit0eXBlZGVmIHZvaWQgKCpWT0lE X0lURVJfRlVOQ19BUkcyKShzdHJ1Y3QgY29uc29sZSAqLCAgdm9pZCAqKTsKK3R5cGVkZWYgaW50 ICgqSU5UX0lURVJfRlVOQ19BUkczKShzdHJ1Y3QgY29uc29sZSAqLAorCQkJCSAgc3RydWN0IGRv bWFpbiAqZG9tLCB2b2lkICoqKTsKKwogc3RhdGljIGlubGluZSBib29sIGNvbnNvbGVfZW5hYmxl ZChzdHJ1Y3QgY29uc29sZSAqY29uKQogewogCXJldHVybiBjb24tPmxvY2FsX3BvcnQgIT0gLTE7 CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBjb25zb2xlX2l0ZXJfdm9pZF9hcmcxKHN0cnVjdCBk b21haW4gKmQsCisJCQkJCSAgVk9JRF9JVEVSX0ZVTkNfQVJHMSBpdGVyX2Z1bmMpCit7CisJdW5z aWduZWQgaW50IGk7CisJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkLT5jb25zb2xlWzBdOworCisJ Zm9yIChpID0gMDsgaSA8IE5VTV9DT05TT0xFX1RZUEU7IGkrKywgY29uKyspIHsKKwkJaXRlcl9m dW5jKGNvbik7CisJfQorfQorCitzdGF0aWMgaW5saW5lIHZvaWQgY29uc29sZV9pdGVyX3ZvaWRf YXJnMihzdHJ1Y3QgZG9tYWluICpkLAorCQkJCQkgIFZPSURfSVRFUl9GVU5DX0FSRzIgaXRlcl9m dW5jLAorCQkJCQkgIHZvaWQgKml0ZXJfZGF0YSkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKwlzdHJ1 Y3QgY29uc29sZSAqY29uID0gJmQtPmNvbnNvbGVbMF07CisKKwlmb3IgKGkgPSAwOyBpIDwgTlVN X0NPTlNPTEVfVFlQRTsgaSsrLCBjb24rKykgeworCQlpdGVyX2Z1bmMoY29uLCBpdGVyX2RhdGEp OworCX0KK30KKworc3RhdGljIGlubGluZSBpbnQgY29uc29sZV9pdGVyX2ludF9hcmcxKHN0cnVj dCBkb21haW4gKmQsCisJCQkJCUlOVF9JVEVSX0ZVTkNfQVJHMSBpdGVyX2Z1bmMpCit7CisJdW5z aWduZWQgaW50IGk7CisJaW50IHJldDsKKwlzdHJ1Y3QgY29uc29sZSAqY29uID0gJmQtPmNvbnNv bGVbMF07CisKKwlmb3IgKGkgPSAwOyBpIDwgTlVNX0NPTlNPTEVfVFlQRTsgaSsrLCBjb24rKykg eworCQkvKgorCQkgKiBaZXJvIHJldHVybiB2YWx1ZXMgbWVhbnMgc3VjY2Vzcy4KKwkJICoKKwkJ ICogTm9uLXplcm8gcmV0dXJuIHZhbHVlIGluZGljYXRlcyBhbiBlcnJvciBpbiB3aGljaAorCQkg KiBjYXNlIHRlcm1pbmF0ZSB0aGUgbG9vcC4KKwkJICovCisJCXJldCA9IGl0ZXJfZnVuYyhjb24p OworCQlpZiAocmV0KQorCQkJYnJlYWs7CisJfQorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBp bmxpbmUgaW50IGNvbnNvbGVfaXRlcl9pbnRfYXJnMyhzdHJ1Y3QgZG9tYWluICpkLAorCQkJCQlJ TlRfSVRFUl9GVU5DX0FSRzMgaXRlcl9mdW5jLAorCQkJCQl2b2lkICoqaXRlcl9kYXRhKQorewor CXVuc2lnbmVkIGludCBpOworCWludCByZXQ7CisJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkLT5j b25zb2xlWzBdOworCisJZm9yIChpID0gMDsgaSA8IE5VTV9DT05TT0xFX1RZUEU7IGkrKywgY29u KyspIHsKKwkJLyoKKwkJICogWmVybyByZXR1cm4gdmFsdWVzIG1lYW5zIHN1Y2Nlc3MuCisJCSAq CisJCSAqIE5vbi16ZXJvIHJldHVybiB2YWx1ZSBpbmRpY2F0ZXMgYW4gZXJyb3IgaW4gd2hpY2gK KwkJICogY2FzZSB0ZXJtaW5hdGUgdGhlIGxvb3AuCisJCSAqLworCQlyZXQgPSBpdGVyX2Z1bmMo Y29uLCBkLCBpdGVyX2RhdGEpOworCQlpZiAocmV0KQorCQkJYnJlYWs7CisJfQorCXJldHVybiBy ZXQ7Cit9CisKIHN0YXRpYyBpbnQgd3JpdGVfYWxsKGludCBmZCwgY29uc3QgY2hhciogYnVmLCBz aXplX3QgbGVuKQogewogCXdoaWxlIChsZW4pIHsKQEAgLTMzNiw3ICs0MjYsOSBAQCBzdGF0aWMg aW50IGNyZWF0ZV9jb25zb2xlX2xvZyhzdHJ1Y3QgY29uc29sZSAqY29uKQogCQlyZXR1cm4gLTE7 CiAJfQogCi0Jc25wcmludGYobG9nZmlsZSwgUEFUSF9NQVgtMSwgIiVzL2d1ZXN0LSVzLmxvZyIs IGxvZ19kaXIsIGRhdGEpOworCXNucHJpbnRmKGxvZ2ZpbGUsIFBBVEhfTUFYLTEsICIlcy9ndWVz dC0lcyVzLmxvZyIsCisJCSBsb2dfZGlyLCBkYXRhLCBjb24tPmxvZ19zdWZmaXgpOworCiAJZnJl ZShkYXRhKTsKIAlsb2dmaWxlW1BBVEhfTUFYLTFdID0gJ1wwJzsKIApAQCAtNDg4LDcgKzU4MCw3 IEBAIHN0YXRpYyBpbnQgY29uc29sZV9jcmVhdGVfdHR5KHN0cnVjdCBjb25zb2xlICpjb24pCiAJ fQogCWZyZWUocGF0aCk7CiAKLQlzdWNjZXNzID0gKGFzcHJpbnRmKCZwYXRoLCAiJXMvdHR5Iiwg Y29uLT54c3BhdGgpICE9IC0xKTsKKwlzdWNjZXNzID0gKGFzcHJpbnRmKCZwYXRoLCAiJXMvJXMi LCBjb24tPnhzcGF0aCwgY29uLT50dHluYW1lKSAhPSAtMSk7CiAJaWYgKCFzdWNjZXNzKQogCQln b3RvIG91dDsKIAlzdWNjZXNzID0geHNfd3JpdGUoeHMsIFhCVF9OVUxMLCBwYXRoLCBzbGF2ZSwg c3RybGVuKHNsYXZlKSk7CkBAIC02NTQsMTMgKzc0NiwxMyBAQCBzdGF0aWMgYm9vbCB3YXRjaF9k b21haW4oc3RydWN0IGRvbWFpbiAqZG9tLCBib29sIHdhdGNoKQogewogCWNoYXIgZG9taWRfc3Ry WzMgKyBNQVhfU1RSTEVOKGRvbS0+ZG9taWQpXTsKIAlib29sIHN1Y2Nlc3M7Ci0Jc3RydWN0IGNv bnNvbGUgKmNvbiA9ICZkb20tPmNvbnNvbGU7CisJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkb20t PmNvbnNvbGVbMF07CiAKIAlzbnByaW50Zihkb21pZF9zdHIsIHNpemVvZihkb21pZF9zdHIpLCAi ZG9tJXUiLCBkb20tPmRvbWlkKTsKIAlpZiAod2F0Y2gpIHsKIAkJc3VjY2VzcyA9IHhzX3dhdGNo KHhzLCBjb24tPnhzcGF0aCwgZG9taWRfc3RyKTsKIAkJaWYgKHN1Y2Nlc3MpCi0JCQljb25zb2xl X2NyZWF0ZV9yaW5nKGNvbik7CisJCQljb25zb2xlX2l0ZXJfaW50X2FyZzEoZG9tLCBjb25zb2xl X2NyZWF0ZV9yaW5nKTsKIAkJZWxzZQogCQkJeHNfdW53YXRjaCh4cywgY29uLT54c3BhdGgsIGRv bWlkX3N0cik7CiAJfSBlbHNlIHsKQEAgLTY3MCwxMSArNzYyLDEzIEBAIHN0YXRpYyBib29sIHdh dGNoX2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkb20sIGJvb2wgd2F0Y2gpCiAJcmV0dXJuIHN1Y2Nl c3M7CiB9CiAKLXN0YXRpYyBpbnQgY29uc29sZV9pbml0KHN0cnVjdCBjb25zb2xlICpjb24sIHN0 cnVjdCBkb21haW4gKmRvbSkKK3N0YXRpYyBpbnQgY29uc29sZV9pbml0KHN0cnVjdCBjb25zb2xl ICpjb24sIHN0cnVjdCBkb21haW4gKmRvbSwgdm9pZCAqKmRhdGEpCiB7CiAJY2hhciAqczsKIAlp bnQgZXJyID0gLTE7CiAJc3RydWN0IHRpbWVzcGVjIHRzOworCXN0cnVjdCBjb25zb2xlX3R5cGUg Kipjb25fdHlwZSA9IChzdHJ1Y3QgY29uc29sZV90eXBlICoqKWRhdGE7CisJY2hhciAqeHNuYW1l LCAqeHNwYXRoOwogCiAJaWYgKGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmdHMpIDwg MCkgewogCQlkb2xvZyhMT0dfRVJSLCAiQ2Fubm90IGdldCB0aW1lIG9mIGRheSAlczolczpMJWQi LApAQCAtNjkyLDE1ICs3ODYsMjEgQEAgc3RhdGljIGludCBjb25zb2xlX2luaXQoc3RydWN0IGNv bnNvbGUgKmNvbiwgc3RydWN0IGRvbWFpbiAqZG9tKQogCWNvbi0+eGNlX3BvbGxmZF9pZHggPSAt MTsKIAljb24tPm5leHRfcGVyaW9kID0gKChsb25nIGxvbmcpdHMudHZfc2VjICogMTAwMCkgKyAo dHMudHZfbnNlYyAvIDEwMDAwMDApICsgUkFURV9MSU1JVF9QRVJJT0Q7CiAJY29uLT5kID0gZG9t OwotCWNvbi0+eHNwYXRoID0geHNfZ2V0X2RvbWFpbl9wYXRoKHhzLCBkb20tPmRvbWlkKTsKLQlz ID0gcmVhbGxvYyhjb24tPnhzcGF0aCwgc3RybGVuKGNvbi0+eHNwYXRoKSArCi0JCSAgICBzdHJs ZW4oIi9jb25zb2xlIikgKyAxKTsKKwljb24tPnR0eW5hbWUgPSAoKmNvbl90eXBlKS0+dHR5bmFt ZTsKKwljb24tPmxvZ19zdWZmaXggPSAoKmNvbl90eXBlKS0+bG9nX3N1ZmZpeDsKKwl4c25hbWUg PSAoY2hhciAqKSgqY29uX3R5cGUpLT54c25hbWU7CisJeHNwYXRoID0geHNfZ2V0X2RvbWFpbl9w YXRoKHhzLCBkb20tPmRvbWlkKTsKKwlzID0gcmVhbGxvYyh4c3BhdGgsIHN0cmxlbih4c3BhdGgp ICsKKwkJICAgIHN0cmxlbih4c25hbWUpICsgMSk7CiAJaWYgKHMpIHsKLQkJY29uLT54c3BhdGgg PSBzOwotCQlzdHJjYXQoY29uLT54c3BhdGgsICIvY29uc29sZSIpOworCQl4c3BhdGggPSBzOwor CQlzdHJjYXQoeHNwYXRoLCB4c25hbWUpOworCQljb24tPnhzcGF0aCA9IHhzcGF0aDsKIAkJZXJy ID0gMDsKIAl9CiAKKwkoKmNvbl90eXBlKSsrOworCiAJcmV0dXJuIGVycjsKIH0KIApAQCAtNzEz LDcgKzgxMyw3IEBAIHN0YXRpYyB2b2lkIGNvbnNvbGVfZnJlZShzdHJ1Y3QgY29uc29sZSAqY29u KQogc3RhdGljIHN0cnVjdCBkb21haW4gKmNyZWF0ZV9kb21haW4oaW50IGRvbWlkKQogewogCXN0 cnVjdCBkb21haW4gKmRvbTsKLQlzdHJ1Y3QgY29uc29sZSAqY29uOworCXN0cnVjdCBjb25zb2xl X3R5cGUgKmNvbl90eXBlID0gJmNvbnNvbGVfdHlwZVswXTsKIAogCWRvbSA9IGNhbGxvYygxLCBz aXplb2YgKmRvbSk7CiAJaWYgKGRvbSA9PSBOVUxMKSB7CkBAIC03MjMsOSArODIzLDggQEAgc3Rh dGljIHN0cnVjdCBkb21haW4gKmNyZWF0ZV9kb21haW4oaW50IGRvbWlkKQogCX0KIAogCWRvbS0+ ZG9taWQgPSBkb21pZDsKLQljb24gPSAmZG9tLT5jb25zb2xlOwogCi0JaWYgKGNvbnNvbGVfaW5p dChjb24sIGRvbSkpCisJaWYgKGNvbnNvbGVfaXRlcl9pbnRfYXJnMyhkb20sIGNvbnNvbGVfaW5p dCwgKHZvaWQgKiopJmNvbl90eXBlKSkKIAkJZ290byBvdXQ7CiAKIAlpZiAoIXdhdGNoX2RvbWFp bihkb20sIHRydWUpKQpAQCAtNzM4LDcgKzgzNyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZG9tYWluICpj cmVhdGVfZG9tYWluKGludCBkb21pZCkKIAogCXJldHVybiBkb207CiAgb3V0OgotCWNvbnNvbGVf ZnJlZShjb24pOworCWNvbnNvbGVfaXRlcl92b2lkX2FyZzEoZG9tLCBjb25zb2xlX2ZyZWUpOwog CWZyZWUoZG9tKTsKIAlyZXR1cm4gTlVMTDsKIH0KQEAgLTc4NCwxMSArODgzLDkgQEAgc3RhdGlj IHZvaWQgY29uc29sZV9jbGVhbnVwKHN0cnVjdCBjb25zb2xlICpjb24pCiAKIHN0YXRpYyB2b2lk IGNsZWFudXBfZG9tYWluKHN0cnVjdCBkb21haW4gKmQpCiB7Ci0Jc3RydWN0IGNvbnNvbGUgKmNv biA9ICZkLT5jb25zb2xlOworCWNvbnNvbGVfaXRlcl92b2lkX2FyZzEoZCwgY29uc29sZV9jbG9z ZV90dHkpOwogCi0JY29uc29sZV9jbG9zZV90dHkoY29uKTsKLQotCWNvbnNvbGVfY2xlYW51cChj b24pOworCWNvbnNvbGVfaXRlcl92b2lkX2FyZzEoZCwgY29uc29sZV9jbGVhbnVwKTsKIAogCXJl bW92ZV9kb21haW4oZCk7CiB9CkBAIC04MDMsMTIgKzkwMCwxMCBAQCBzdGF0aWMgdm9pZCBjb25z b2xlX2Nsb3NlX2V2dGNobihzdHJ1Y3QgY29uc29sZSAqY29uKQogCiBzdGF0aWMgdm9pZCBzaHV0 ZG93bl9kb21haW4oc3RydWN0IGRvbWFpbiAqZCkKIHsKLQlzdHJ1Y3QgY29uc29sZSAqY29uID0g JmQtPmNvbnNvbGU7Ci0KIAlkLT5pc19kZWFkID0gdHJ1ZTsKIAl3YXRjaF9kb21haW4oZCwgZmFs c2UpOwotCWNvbnNvbGVfdW5tYXBfaW50ZXJmYWNlKGNvbik7Ci0JY29uc29sZV9jbG9zZV9ldnRj aG4oY29uKTsKKwljb25zb2xlX2l0ZXJfdm9pZF9hcmcxKGQsIGNvbnNvbGVfdW5tYXBfaW50ZXJm YWNlKTsKKwljb25zb2xlX2l0ZXJfdm9pZF9hcmcxKGQsIGNvbnNvbGVfY2xvc2VfZXZ0Y2huKTsK IH0KIAogc3RhdGljIHVuc2lnbmVkIGVudW1fcGFzcyA9IDA7CkBAIC0xMDAzLDcgKzEwOTgsNyBA QCBzdGF0aWMgdm9pZCBoYW5kbGVfeHModm9pZCkKIAkJLyogV2UgbWF5IGdldCB3YXRjaGVzIGZp cmluZyBmb3IgZG9tYWlucyB0aGF0IGhhdmUgcmVjZW50bHkKIAkJICAgYmVlbiByZW1vdmVkLCBz byBkb20gbWF5IGJlIE5VTEwgaGVyZS4gKi8KIAkJaWYgKGRvbSAmJiBkb20tPmlzX2RlYWQgPT0g ZmFsc2UpCi0JCQljb25zb2xlX2NyZWF0ZV9yaW5nKCZkb20tPmNvbnNvbGUpOworCQkJY29uc29s ZV9pdGVyX2ludF9hcmcxKGRvbSwgY29uc29sZV9jcmVhdGVfcmluZyk7CiAJfQogCiAJZnJlZSh2 ZWMpOwpAQCAtMTA1OCw5ICsxMTUzLDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlX2xvZ19yZWxvYWQo dm9pZCkKIAlpZiAobG9nX2d1ZXN0KSB7CiAJCXN0cnVjdCBkb21haW4gKmQ7CiAJCWZvciAoZCA9 IGRvbV9oZWFkOyBkOyBkID0gZC0+bmV4dCkgewotCQkJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZk LT5jb25zb2xlOwotCi0JCQljb25zb2xlX29wZW5fbG9nKGNvbik7CisJCQljb25zb2xlX2l0ZXJf dm9pZF9hcmcxKGQsIGNvbnNvbGVfb3Blbl9sb2cpOwogCQl9CiAJfQogCkBAIC0xMjIzLDEzICsx MzE2LDEzIEBAIHZvaWQgaGFuZGxlX2lvKHZvaWQpCiAJCS8qIFJlLWNhbGN1bGF0ZSBhbnkgZXZl bnQgY291bnRlciBhbGxvd2FuY2VzICYgdW5ibG9jawogCQkgICBkb21haW5zIHdpdGggbmV3IGFs bG93YW5jZSAqLwogCQlmb3IgKGQgPSBkb21faGVhZDsgZDsgZCA9IGQtPm5leHQpIHsKLQkJCXN0 cnVjdCBjb25zb2xlICpjb24gPSAmZC0+Y29uc29sZTsKIAotCQkJY29uc29sZV9ldnRjaG5fdW5t YXNrKGNvbiwgKHZvaWQgKilub3cpOworCQkJY29uc29sZV9pdGVyX3ZvaWRfYXJnMihkLCBjb25z b2xlX2V2dGNobl91bm1hc2ssICh2b2lkICopbm93KTsKIAotCQkJbWF5YmVfYWRkX2NvbnNvbGVf ZXZ0Y2huX2ZkKGNvbiwgKHZvaWQgKikmbmV4dF90aW1lb3V0KTsKKwkJCWNvbnNvbGVfaXRlcl92 b2lkX2FyZzIoZCwgbWF5YmVfYWRkX2NvbnNvbGVfZXZ0Y2huX2ZkLCAKKwkJCQkJICAgICAgICh2 b2lkICopJm5leHRfdGltZW91dCk7CiAKLQkJCW1heWJlX2FkZF9jb25zb2xlX3R0eV9mZChjb24p OworCQkJY29uc29sZV9pdGVyX3ZvaWRfYXJnMShkLCBtYXliZV9hZGRfY29uc29sZV90dHlfZmQp OwogCQl9CiAKIAkJLyogSWYgYW55IGRvbWFpbiBoYXMgYmVlbiByYXRlIGxpbWl0ZWQsIHdlIG5l ZWQgdG8gd29yawpAQCAtMTI5MCwxMyArMTM4MywxMiBAQCB2b2lkIGhhbmRsZV9pbyh2b2lkKQog CQl9CiAKIAkJZm9yIChkID0gZG9tX2hlYWQ7IGQ7IGQgPSBuKSB7Ci0JCQlzdHJ1Y3QgY29uc29s ZSAqY29uID0gJmQtPmNvbnNvbGU7CiAKIAkJCW4gPSBkLT5uZXh0OwogCi0JCQloYW5kbGVfY29u c29sZV9yaW5nKGNvbik7CisJCQljb25zb2xlX2l0ZXJfdm9pZF9hcmcxKGQsIGhhbmRsZV9jb25z b2xlX3JpbmcpOwogCi0JCQloYW5kbGVfY29uc29sZV90dHkoY29uKTsKKwkJCWNvbnNvbGVfaXRl cl92b2lkX2FyZzEoZCwgaGFuZGxlX2NvbnNvbGVfdHR5KTsKIAogCQkJaWYgKGQtPmxhc3Rfc2Vl biAhPSBlbnVtX3Bhc3MpCiAJCQkJc2h1dGRvd25fZG9tYWluKGQpOwotLSAKMi43LjQKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK