From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7825AC4BA10 for ; Wed, 26 Feb 2020 12:47:59 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 459BF21927 for ; Wed, 26 Feb 2020 12:47:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 459BF21927 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1j6w6H-0002Yi-LF; Wed, 26 Feb 2020 12:47:41 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1j6w6G-0002Xn-Np for xen-devel@lists.xenproject.org; Wed, 26 Feb 2020 12:47:40 +0000 X-Inumbo-ID: 1b2b917a-5896-11ea-940c-12813bfff9fa Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 1b2b917a-5896-11ea-940c-12813bfff9fa; Wed, 26 Feb 2020 12:47:11 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id E9681AFDF; Wed, 26 Feb 2020 12:47:09 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Wed, 26 Feb 2020 13:47:02 +0100 Message-Id: <20200226124705.29212-10-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20200226124705.29212-1-jgross@suse.com> References: <20200226124705.29212-1-jgross@suse.com> Subject: [Xen-devel] [PATCH v6 09/12] xen: add runtime parameter access support to hypfs X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Kevin Tian , Stefano Stabellini , Julien Grall , Jun Nakajima , Wei Liu , Konrad Rzeszutek Wilk , Andrew Cooper , Ian Jackson , George Dunlap , Jan Beulich , Volodymyr Babchuk , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" QWRkIHN1cHBvcnQgdG8gcmVhZCBhbmQgbW9kaWZ5IHZhbHVlcyBvZiBoeXBlcnZpc29yIHJ1bnRp bWUgcGFyYW1ldGVycwp2aWEgdGhlIGh5cGVydmlzb3IgZmlsZSBzeXN0ZW0uCgpBcyBydW50aW1l IHBhcmFtZXRlcnMgY2FuIGJlIG1vZGlmaWVkIHZpYSBhIHN5c2N0bCwgdG9vLCB0aGlzIHBhdGgg aGFzCnRvIHRha2UgdGhlIGh5cGZzIHJ3X2xvY2sgYXMgd3JpdGVyLgoKRm9yIGN1c3RvbSBydW50 aW1lIHBhcmFtZXRlcnMgdGhlIGNvbm5lY3Rpb24gYmV0d2VlbiB0aGUgcGFyYW1ldGVyCnZhbHVl IGFuZCB0aGUgZmlsZSBzeXN0ZW0gaXMgZG9uZSB2aWEgYW4gaW5pdCBmdW5jdGlvbiB3aGljaCB3 aWxsIHNldAp0aGUgaW5pdGlhbCB2YWx1ZSAoaWYgbmVlZGVkKSBhbmQgdGhlIGxlYWYgcHJvcGVy dGllcy4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0t ClYzOgotIGNvbXBsZXRlIHJld29yawotIHN1cHBvcnQgY3VzdG9tIHBhcmFtZXRlcnMsIHRvbwot IHN1cHBvcnQgcGFyYW1ldGVyIHdyaXRpbmcKClY2OgotIHJld29yZGluZyBpbiBkb2NzL21pc2Mv aHlwZnMtcGF0aHMucGFuZG9jIChKYW4gQmV1bGljaCkKLSB1c2UgbWVtY2hyKCkgKEphbiBCZXVs aWNoKQotIHVzZSBzdHJsY2F0KCkgKEphbiBCZXVsaWNoKQotIHJld29yayB0byB1c2UgYSBjdXN0 b20gcGFyYW1ldGVyIGluaXQgZnVuY3Rpb24gaW5zdGVhZCBvZiBhIHJlZmVyZW5jZQogIHRvIGEg Y29udGVudCB2YXJpYWJsZSwgYWxsb3dpbmcgdG8gZHJvcCBkZWZhdWx0IHN0cmluZ3MKLSBzdHls ZSBjb3JyZWN0aW9uIChKYW4gQmV1bGljaCkKLSBkcm9wcGluZyBwYXJhbV9hcHBlbmRfc3RyKCkg aW4gZmF2b3Igb2YgYSBjdXN0b20gZnVuY3Rpb24gYXQgaXRzIG9ubHkKICB1c2Ugc2l0ZQotLS0K IGRvY3MvbWlzYy9oeXBmcy1wYXRocy5wYW5kb2MgfCAgOSArKysrKwogeGVuL2FyY2gvYXJtL3hl bi5sZHMuUyAgICAgICB8ICA1ICsrKwogeGVuL2FyY2gveDg2L2h2bS92bXgvdm1jcy5jICB8IDMw ICsrKysrKysrKysrKysrKystCiB4ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMgICAgIHwgMjYgKysr KysrKysrKysrKy0tCiB4ZW4vYXJjaC94ODYveGVuLmxkcy5TICAgICAgIHwgIDUgKysrCiB4ZW4v Y29tbW9uL2dyYW50X3RhYmxlLmMgICAgIHwgMzcgKysrKysrKysrKysrKysrKy0tLS0tCiB4ZW4v Y29tbW9uL2h5cGZzLmMgICAgICAgICAgIHwgMzggKysrKysrKysrKysrKysrKysrKysrCiB4ZW4v Y29tbW9uL2tlcm5lbC5jICAgICAgICAgIHwgMjcgKysrKysrKysrKysrKystCiB4ZW4vZHJpdmVy cy9jaGFyL2NvbnNvbGUuYyAgIHwgNjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLQogeGVuL2luY2x1ZGUveGVuL2h5cGZzLmggICAgICB8ICA0ICsrKwogeGVuL2luY2x1ZGUv eGVuL3BhcmFtLmggICAgICB8IDc4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tCiAxMSBmaWxlcyBjaGFuZ2VkLCAyOTkgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jcy9taXNjL2h5cGZzLXBhdGhzLnBhbmRvYyBiL2RvY3Mv bWlzYy9oeXBmcy1wYXRocy5wYW5kb2MKaW5kZXggMWZhZWJjY2NiYy4uYjRhNWI2MDg2ZSAxMDA2 NDQKLS0tIGEvZG9jcy9taXNjL2h5cGZzLXBhdGhzLnBhbmRvYworKysgYi9kb2NzL21pc2MvaHlw ZnMtcGF0aHMucGFuZG9jCkBAIC0xNTIsMyArMTUyLDEyIEBAIFRoZSBtYWpvciB2ZXJzaW9uIG9m IFhlbi4KICMjIyMgL2J1aWxkaW5mby92ZXJzaW9uL21pbm9yID0gSU5URUdFUgogCiBUaGUgbWlu b3IgdmVyc2lvbiBvZiBYZW4uCisKKyMjIyMgL3BhcmFtcy8KKworQSBkaXJlY3Rvcnkgb2YgcnVu dGltZSBwYXJhbWV0ZXJzLgorCisjIyMjIC9wYXJhbXMvKgorCitUaGUgaW5kaXZpZHVhbCBwYXJh bWV0ZXJzLiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIGRpZmZlcmVudCBwYXJhbWV0ZXJzIGNhbiBi ZQorZm91bmQgaW4gYGRvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLnBhbmRvY2AuCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC9hcm0veGVuLmxkcy5TIGIveGVuL2FyY2gvYXJtL3hlbi5sZHMuUwppbmRl eCBhNDk3ZjZhNDhkLi4wMDYxYThkZmVhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0veGVuLmxk cy5TCisrKyBiL3hlbi9hcmNoL2FybS94ZW4ubGRzLlMKQEAgLTg5LDYgKzg5LDExIEBAIFNFQ1RJ T05TCiAgICAgICAgX19zdGFydF9zY2hlZHVsZXJzX2FycmF5ID0gLjsKICAgICAgICAqKC5kYXRh LnNjaGVkdWxlcnMpCiAgICAgICAgX19lbmRfc2NoZWR1bGVyc19hcnJheSA9IC47CisKKyAgICAg ICAuID0gQUxJR04oOCk7CisgICAgICAgX19wYXJhbWh5cGZzX3N0YXJ0ID0gLjsKKyAgICAgICAq KC5kYXRhLnBhcmFtaHlwZnMpCisgICAgICAgX19wYXJhbWh5cGZzX2VuZCA9IC47CiAgICAgICAg KiguZGF0YS5yZWwpCiAgICAgICAgKiguZGF0YS5yZWwuKikKICAgICAgICBDT05TVFJVQ1RPUlMK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYyBiL3hlbi9hcmNoL3g4Ni9o dm0vdm14L3ZtY3MuYwppbmRleCA2NTQ0NWFmZWIwLi4zYjY5MGIwNWVkIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm1j cy5jCkBAIC03MCw2ICs3MCwzMCBAQCBpbnRlZ2VyX3BhcmFtKCJwbGVfd2luZG93IiwgcGxlX3dp bmRvdyk7CiBzdGF0aWMgYm9vbCBfX3JlYWRfbW9zdGx5IG9wdF9lcHRfcG1sID0gdHJ1ZTsKIHN0 YXRpYyBzOCBfX3JlYWRfbW9zdGx5IG9wdF9lcHRfYWQgPSAtMTsKIGludDhfdCBfX3JlYWRfbW9z dGx5IG9wdF9lcHRfZXhlY19zcCA9IC0xOworc3RhdGljIGNoYXIgb3B0X2VwdF9zZXR0aW5nWzE2 XTsKKworc3RhdGljIHZvaWQgdXBkYXRlX2VwdF9wYXJhbV9hcHBlbmQoY29uc3QgY2hhciAqc3Ry LCBpbnQgdmFsKQoreworICAgIGNoYXIgKnBvcyA9IG9wdF9lcHRfc2V0dGluZyArIHN0cmxlbihv cHRfZXB0X3NldHRpbmcpOworCisgICAgc25wcmludGYocG9zLCBzaXplb2Yob3B0X2VwdF9zZXR0 aW5nKSAtIChwb3MgLSBvcHRfZXB0X3NldHRpbmcpLAorICAgICAgICAgICAgICIsJXM9JWQiLCBz dHIsIHZhbCk7Cit9CisKK3N0YXRpYyB2b2lkIHVwZGF0ZV9lcHRfcGFyYW0odm9pZCkKK3sKKyAg ICBzbnByaW50ZihvcHRfZXB0X3NldHRpbmcsIHNpemVvZihvcHRfZXB0X3NldHRpbmcpLCAicG1s PSVkIiwgb3B0X2VwdF9wbWwpOworICAgIGlmICggb3B0X2VwdF9hZCA+PSAwICkKKyAgICAgICAg dXBkYXRlX2VwdF9wYXJhbV9hcHBlbmQoImFkIiwgb3B0X2VwdF9hZCk7CisgICAgaWYgKCBvcHRf ZXB0X2V4ZWNfc3AgPj0gMCApCisgICAgICAgIHVwZGF0ZV9lcHRfcGFyYW1fYXBwZW5kKCJleGVj LXNwIiwgb3B0X2VwdF9leGVjX3NwKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGluaXRfZXB0 X3BhcmFtKHN0cnVjdCBwYXJhbV9oeXBmcyAqcGFyKQoreworICAgIGN1c3RvbV9ydW50aW1lX3Nl dF92YXIocGFyLCBvcHRfZXB0X3NldHRpbmcpOworICAgIHVwZGF0ZV9lcHRfcGFyYW0oKTsKK30K IAogc3RhdGljIGludCBfX2luaXQgcGFyc2VfZXB0X3BhcmFtKGNvbnN0IGNoYXIgKnMpCiB7CkBA IC05Myw2ICsxMTcsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9lcHRfcGFyYW0oY29uc3Qg Y2hhciAqcykKICAgICAgICAgcyA9IHNzICsgMTsKICAgICB9IHdoaWxlICggKnNzICk7CiAKKyAg ICB1cGRhdGVfZXB0X3BhcmFtKCk7CisKICAgICByZXR1cm4gcmM7CiB9CiBjdXN0b21fcGFyYW0o ImVwdCIsIHBhcnNlX2VwdF9wYXJhbSk7CkBAIC0xMTUsNiArMTQxLDggQEAgc3RhdGljIGludCBw YXJzZV9lcHRfcGFyYW1fcnVudGltZShjb25zdCBjaGFyICpzKQogCiAgICAgb3B0X2VwdF9leGVj X3NwID0gdmFsOwogCisgICAgdXBkYXRlX2VwdF9wYXJhbSgpOworCiAgICAgcmN1X3JlYWRfbG9j aygmZG9tbGlzdF9yZWFkX2xvY2spOwogICAgIGZvcl9lYWNoX2RvbWFpbiAoIGQgKQogICAgIHsK QEAgLTE0NCw3ICsxNzIsNyBAQCBzdGF0aWMgaW50IHBhcnNlX2VwdF9wYXJhbV9ydW50aW1lKGNv bnN0IGNoYXIgKnMpCiAKICAgICByZXR1cm4gMDsKIH0KLWN1c3RvbV9ydW50aW1lX29ubHlfcGFy YW0oImVwdCIsIHBhcnNlX2VwdF9wYXJhbV9ydW50aW1lKTsKK2N1c3RvbV9ydW50aW1lX29ubHlf cGFyYW0oImVwdCIsIHBhcnNlX2VwdF9wYXJhbV9ydW50aW1lLCBpbml0X2VwdF9wYXJhbSk7CiAK IC8qIER5bmFtaWMgKHJ1bi10aW1lIGFkanVzdGVkKSBleGVjdXRpb24gY29udHJvbCBmbGFncy4g Ki8KIHUzMiB2bXhfcGluX2Jhc2VkX2V4ZWNfY29udHJvbCBfX3JlYWRfbW9zdGx5OwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L3B2L2RvbWFpbi5jIGIveGVuL2FyY2gveDg2L3B2L2RvbWFpbi5j CmluZGV4IDBiMzc2NTNiMTIuLjk2ZmFlNjg0MDkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9w di9kb21haW4uYworKysgYi94ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMKQEAgLTIwLDggKzIwLDI3 IEBAIHN0YXRpYyBfX3JlYWRfbW9zdGx5IGVudW0gewogICAgIFBDSURfT0ZGLAogICAgIFBDSURf QUxMLAogICAgIFBDSURfWFBUSSwKLSAgICBQQ0lEX05PWFBUSQorICAgIFBDSURfTk9YUFRJLAor ICAgIFBDSURfRU5ECiB9IG9wdF9wY2lkID0gUENJRF9YUFRJOworc3RhdGljIGNvbnN0IGNoYXIg Km9wdF9wY2lkXzJfc3RyaW5nW1BDSURfRU5EXSA9IHsKKyAgICBbUENJRF9PRkZdID0gIm9mZiIs CisgICAgW1BDSURfQUxMXSA9ICJvbiIsCisgICAgW1BDSURfWFBUSV0gPSAieHB0aSIsCisgICAg W1BDSURfTk9YUFRJXSA9ICJub3hwdGkiCit9Oworc3RhdGljIGNoYXIgb3B0X3BjaWRfdmFsWzdd OworCitzdGF0aWMgdm9pZCB1cGRhdGVfb3B0X3BjaWQodm9pZCkKK3sKKyAgICBzdHJsY3B5KG9w dF9wY2lkX3ZhbCwgb3B0X3BjaWRfMl9zdHJpbmdbb3B0X3BjaWRdLCBzaXplb2Yob3B0X3BjaWRf dmFsKSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBvcHRfcGNpZF9pbml0KHN0cnVjdCBwYXJh bV9oeXBmcyAqcGFyKQoreworICAgIGN1c3RvbV9ydW50aW1lX3NldF92YXIocGFyLCBvcHRfcGNp ZF92YWwpOworICAgIHVwZGF0ZV9vcHRfcGNpZCgpOworfQogCiBzdGF0aWMgaW50IHBhcnNlX3Bj aWQoY29uc3QgY2hhciAqcykKIHsKQEAgLTU1LDkgKzc0LDEyIEBAIHN0YXRpYyBpbnQgcGFyc2Vf cGNpZChjb25zdCBjaGFyICpzKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBpZiAoICFy YyApCisgICAgICAgIHVwZGF0ZV9vcHRfcGNpZCgpOworCiAgICAgcmV0dXJuIHJjOwogfQotY3Vz dG9tX3J1bnRpbWVfcGFyYW0oInBjaWQiLCBwYXJzZV9wY2lkKTsKK2N1c3RvbV9ydW50aW1lX3Bh cmFtKCJwY2lkIiwgcGFyc2VfcGNpZCwgb3B0X3BjaWRfaW5pdCk7CiAKIHN0YXRpYyB2b2lkIG5v cmV0dXJuIGNvbnRpbnVlX25vbmlkbGVfZG9tYWluKHN0cnVjdCB2Y3B1ICp2KQogewpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L3hlbi5sZHMuUyBiL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMKaW5k ZXggN2Y5NDU5ZDY4My4uMjFhMzdmMGY1NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3hlbi5s ZHMuUworKysgYi94ZW4vYXJjaC94ODYveGVuLmxkcy5TCkBAIC0yNzksNiArMjc5LDExIEBAIFNF Q1RJT05TCiAgICAgICAgX19zdGFydF9zY2hlZHVsZXJzX2FycmF5ID0gLjsKICAgICAgICAqKC5k YXRhLnNjaGVkdWxlcnMpCiAgICAgICAgX19lbmRfc2NoZWR1bGVyc19hcnJheSA9IC47CisKKyAg ICAgICAuID0gQUxJR04oOCk7CisgICAgICAgX19wYXJhbWh5cGZzX3N0YXJ0ID0gLjsKKyAgICAg ICAqKC5kYXRhLnBhcmFtaHlwZnMpCisgICAgICAgX19wYXJhbWh5cGZzX2VuZCA9IC47CiAgIH0g OnRleHQKIAogICBERUNMX1NFQ1RJT04oLmRhdGEpIHsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24v Z3JhbnRfdGFibGUuYyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwppbmRleCBiYzM3YWNhZTBl Li4yYjdiM2UyODQ0IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKKysrIGIv eGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCkBAIC04NSw4ICs4NSwxMCBAQCBzdHJ1Y3QgZ3JhbnRf dGFibGUgewogICAgIHN0cnVjdCBncmFudF90YWJsZV9hcmNoIGFyY2g7CiB9OwogCi1zdGF0aWMg aW50IHBhcnNlX2dudHRhYl9saW1pdChjb25zdCBjaGFyICpwYXJhbSwgY29uc3QgY2hhciAqYXJn LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICp2YWxwKQorI2Rl ZmluZSBHUkFOVF9DVVNUT01fVkFMX1NaICAxMgorCitzdGF0aWMgaW50IHBhcnNlX2dudHRhYl9s aW1pdChjb25zdCBjaGFyICphcmcsIHVuc2lnbmVkIGludCAqdmFscCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNoYXIgKnBhcnZhbCkKIHsKICAgICBjb25zdCBjaGFyICplOwogICAg IHVuc2lnbmVkIGxvbmcgdmFsOwpAQCAtOTksMjggKzEwMSw0NyBAQCBzdGF0aWMgaW50IHBhcnNl X2dudHRhYl9saW1pdChjb25zdCBjaGFyICpwYXJhbSwgY29uc3QgY2hhciAqYXJnLAogICAgICAg ICByZXR1cm4gLUVSQU5HRTsKIAogICAgICp2YWxwID0gdmFsOworICAgIHNucHJpbnRmKHBhcnZh bCwgR1JBTlRfQ1VTVE9NX1ZBTF9TWiwgIiVsdSIsIHZhbCk7CiAKICAgICByZXR1cm4gMDsKIH0K IAogdW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgb3B0X21heF9ncmFudF9mcmFtZXMgPSA2NDsK K3N0YXRpYyBjaGFyIF9fcmVhZF9tb3N0bHkgb3B0X21heF9ncmFudF9mcmFtZXNfdmFsW0dSQU5U X0NVU1RPTV9WQUxfU1pdOworCitzdGF0aWMgdm9pZCBfX2luaXQgZ250dGFiX21heF9mcmFtZXNf aW5pdChzdHJ1Y3QgcGFyYW1faHlwZnMgKnBhcikKK3sKKyAgICBjdXN0b21fcnVudGltZV9zZXRf dmFyKHBhciwgb3B0X21heF9ncmFudF9mcmFtZXNfdmFsKTsKKyAgICBzbnByaW50ZihvcHRfbWF4 X2dyYW50X2ZyYW1lc192YWwsIEdSQU5UX0NVU1RPTV9WQUxfU1osICIldSIsCisgICAgICAgICAg ICAgb3B0X21heF9ncmFudF9mcmFtZXMpOworfQogCiBzdGF0aWMgaW50IHBhcnNlX2dudHRhYl9t YXhfZnJhbWVzKGNvbnN0IGNoYXIgKmFyZykKIHsKLSAgICByZXR1cm4gcGFyc2VfZ250dGFiX2xp bWl0KCJnbnR0YWJfbWF4X2ZyYW1lcyIsIGFyZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZvcHRfbWF4X2dyYW50X2ZyYW1lcyk7CisgICAgcmV0dXJuIHBhcnNlX2dudHRhYl9saW1p dChhcmcsICZvcHRfbWF4X2dyYW50X2ZyYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9wdF9tYXhfZ3JhbnRfZnJhbWVzX3ZhbCk7CiB9Ci1jdXN0b21fcnVudGltZV9wYXJhbSgi Z250dGFiX21heF9mcmFtZXMiLCBwYXJzZV9nbnR0YWJfbWF4X2ZyYW1lcyk7CitjdXN0b21fcnVu dGltZV9wYXJhbSgiZ250dGFiX21heF9mcmFtZXMiLCBwYXJzZV9nbnR0YWJfbWF4X2ZyYW1lcywK KyAgICAgICAgICAgICAgICAgICAgIGdudHRhYl9tYXhfZnJhbWVzX2luaXQpOwogCiBzdGF0aWMg dW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgb3B0X21heF9tYXB0cmFja19mcmFtZXMgPSAxMDI0 Oworc3RhdGljIGNoYXIgX19yZWFkX21vc3RseSBvcHRfbWF4X21hcHRyYWNrX2ZyYW1lc192YWxb R1JBTlRfQ1VTVE9NX1ZBTF9TWl07CisKK3N0YXRpYyB2b2lkIF9faW5pdCBtYXhfbWFwdHJhY2tf ZnJhbWVzX2luaXQoc3RydWN0IHBhcmFtX2h5cGZzICpwYXIpCit7CisgICAgY3VzdG9tX3J1bnRp bWVfc2V0X3ZhcihwYXIsIG9wdF9tYXhfbWFwdHJhY2tfZnJhbWVzX3ZhbCk7CisgICAgc25wcmlu dGYob3B0X21heF9tYXB0cmFja19mcmFtZXNfdmFsLCBHUkFOVF9DVVNUT01fVkFMX1NaLCAiJXUi LAorICAgICAgICAgICAgIG9wdF9tYXhfbWFwdHJhY2tfZnJhbWVzKTsKK30KIAogc3RhdGljIGlu dCBwYXJzZV9nbnR0YWJfbWF4X21hcHRyYWNrX2ZyYW1lcyhjb25zdCBjaGFyICphcmcpCiB7Ci0g ICAgcmV0dXJuIHBhcnNlX2dudHRhYl9saW1pdCgiZ250dGFiX21heF9tYXB0cmFja19mcmFtZXMi LCBhcmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3B0X21heF9tYXB0cmFja19m cmFtZXMpOworICAgIHJldHVybiBwYXJzZV9nbnR0YWJfbGltaXQoYXJnLCAmb3B0X21heF9tYXB0 cmFja19mcmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRfbWF4X21hcHRy YWNrX2ZyYW1lc192YWwpOwogfQogY3VzdG9tX3J1bnRpbWVfcGFyYW0oImdudHRhYl9tYXhfbWFw dHJhY2tfZnJhbWVzIiwKLSAgICAgICAgICAgICAgICAgICAgIHBhcnNlX2dudHRhYl9tYXhfbWFw dHJhY2tfZnJhbWVzKTsKKyAgICAgICAgICAgICAgICAgICAgIHBhcnNlX2dudHRhYl9tYXhfbWFw dHJhY2tfZnJhbWVzLAorICAgICAgICAgICAgICAgICAgICAgbWF4X21hcHRyYWNrX2ZyYW1lc19p bml0KTsKIAogI2lmbmRlZiBHTlRUQUJfTUFYX1ZFUlNJT04KICNkZWZpbmUgR05UVEFCX01BWF9W RVJTSU9OIDIKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vaHlwZnMuYyBiL3hlbi9jb21tb24vaHlw ZnMuYwppbmRleCBlNjE2NmZlMWU3Li45NTAzZWYwNzMxIDEwMDY0NAotLS0gYS94ZW4vY29tbW9u L2h5cGZzLmMKKysrIGIveGVuL2NvbW1vbi9oeXBmcy5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5j bHVkZSA8eGVuL2h5cGVyY2FsbC5oPgogI2luY2x1ZGUgPHhlbi9oeXBmcy5oPgogI2luY2x1ZGUg PHhlbi9saWIuaD4KKyNpbmNsdWRlIDx4ZW4vcGFyYW0uaD4KICNpbmNsdWRlIDx4ZW4vcndsb2Nr Lmg+CiAjaW5jbHVkZSA8cHVibGljL2h5cGZzLmg+CiAKQEAgLTI4MSw2ICsyODIsMzMgQEAgaW50 IGh5cGZzX3dyaXRlX2Jvb2woc3RydWN0IGh5cGZzX2VudHJ5X2xlYWYgKmxlYWYsCiAgICAgcmV0 dXJuIDA7CiB9CiAKK2ludCBoeXBmc193cml0ZV9jdXN0b20oc3RydWN0IGh5cGZzX2VudHJ5X2xl YWYgKmxlYWYsCisgICAgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0o dm9pZCkgdWFkZHIsIHVuc2lnbmVkIGxvbmcgdWxlbikKK3sKKyAgICBzdHJ1Y3QgcGFyYW1faHlw ZnMgKnA7CisgICAgY2hhciAqYnVmOworICAgIGludCByZXQ7CisKKyAgICBidWYgPSB4emFsbG9j X2FycmF5KGNoYXIsIHVsZW4pOworICAgIGlmICggIWJ1ZiApCisgICAgICAgIHJldHVybiAtRU5P TUVNOworCisgICAgcmV0ID0gLUVGQVVMVDsKKyAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdChidWYs IHVhZGRyLCB1bGVuKSApCisgICAgICAgIGdvdG8gb3V0OworCisgICAgcmV0ID0gLUVET007Cisg ICAgaWYgKCAhbWVtY2hyKGJ1ZiwgMCwgdWxlbikgKQorICAgICAgICBnb3RvIG91dDsKKworICAg IHAgPSBjb250YWluZXJfb2YobGVhZiwgc3RydWN0IHBhcmFtX2h5cGZzLCBoeXBmcyk7CisgICAg cmV0ID0gcC0+cGFyYW0tPnBhci5mdW5jKGJ1Zik7CisKKyBvdXQ6CisgICAgeGZyZWUoYnVmKTsK KyAgICByZXR1cm4gcmV0OworfQorCiBzdGF0aWMgaW50IGh5cGZzX3dyaXRlKHN0cnVjdCBoeXBm c19lbnRyeSAqZW50cnksCiAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0odm9pZCkgdWFkZHIsIHVuc2lnbmVkIGxvbmcgdWxlbikKIHsKQEAgLTM0NywzICszNzUs MTMgQEAgbG9uZyBkb19oeXBmc19vcCh1bnNpZ25lZCBpbnQgY21kLAogCiAgICAgcmV0dXJuIHJl dDsKIH0KKwordm9pZCBoeXBmc193cml0ZV9sb2NrKHZvaWQpCit7CisgICAgd3JpdGVfbG9jaygm aHlwZnNfbG9jayk7Cit9CisKK3ZvaWQgaHlwZnNfd3JpdGVfdW5sb2NrKHZvaWQpCit7CisgICAg d3JpdGVfdW5sb2NrKCZoeXBmc19sb2NrKTsKK30KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24va2Vy bmVsLmMgYi94ZW4vY29tbW9uL2tlcm5lbC5jCmluZGV4IDRiN2JjMjhhZmIuLjc1MTYyNDIzMzcg MTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24va2VybmVsLmMKKysrIGIveGVuL2NvbW1vbi9rZXJuZWwu YwpAQCAtMTk4LDcgKzE5OCwxMyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgX2NtZGxpbmVfcGFyc2Uo Y29uc3QgY2hhciAqY21kbGluZSkKIAogaW50IHJ1bnRpbWVfcGFyc2UoY29uc3QgY2hhciAqbGlu ZSkKIHsKLSAgICByZXR1cm4gcGFyc2VfcGFyYW1zKGxpbmUsIF9fcGFyYW1fc3RhcnQsIF9fcGFy YW1fZW5kKTsKKyAgICBpbnQgcmV0OworCisgICAgaHlwZnNfd3JpdGVfbG9jaygpOworICAgIHJl dCA9IHBhcnNlX3BhcmFtcyhsaW5lLCBfX3BhcmFtX3N0YXJ0LCBfX3BhcmFtX2VuZCk7CisgICAg aHlwZnNfd3JpdGVfdW5sb2NrKCk7CisKKyAgICByZXR1cm4gcmV0OwogfQogCiAvKioKQEAgLTQz Myw2ICs0MzksMjUgQEAgc3RhdGljIGludCBfX2luaXQgYnVpbGRpbmZvX2luaXQodm9pZCkKIH0K IF9faW5pdGNhbGwoYnVpbGRpbmZvX2luaXQpOwogCitzdGF0aWMgSFlQRlNfRElSX0lOSVQocGFy YW1zLCAicGFyYW1zIik7CisKK3N0YXRpYyBpbnQgX19pbml0IHBhcmFtX2luaXQodm9pZCkKK3sK KyAgICBzdHJ1Y3QgcGFyYW1faHlwZnMgKnBhcmFtOworCisgICAgaHlwZnNfYWRkX2RpcigmaHlw ZnNfcm9vdCwgJnBhcmFtcywgdHJ1ZSk7CisKKyAgICBmb3IgKCBwYXJhbSA9IF9fcGFyYW1oeXBm c19zdGFydDsgcGFyYW0gPCBfX3BhcmFtaHlwZnNfZW5kOyBwYXJhbSsrICkKKyAgICB7CisgICAg ICAgIGlmICggcGFyYW0tPmluaXRfbGVhZiApCisgICAgICAgICAgICBwYXJhbS0+aW5pdF9sZWFm KHBhcmFtKTsKKyAgICAgICAgaHlwZnNfYWRkX2xlYWYoJnBhcmFtcywgJnBhcmFtLT5oeXBmcywg dHJ1ZSk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CitfX2luaXRjYWxsKHBhcmFtX2luaXQp OworCiAjIGRlZmluZSBETyhmbikgbG9uZyBkb18jI2ZuCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv eGVuL2RyaXZlcnMvY2hhci9jb25zb2xlLmMgYi94ZW4vZHJpdmVycy9jaGFyL2NvbnNvbGUuYwpp bmRleCA5MTNhZTFiNjZhLi4wMDAzMzJlYjJhIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9jaGFy L2NvbnNvbGUuYworKysgYi94ZW4vZHJpdmVycy9jaGFyL2NvbnNvbGUuYwpAQCAtNzUsMTIgKzc1 LDM2IEBAIGVudW0gY29uX3RpbWVzdGFtcF9tb2RlCiAgICAgVFNNX0RBVEVfTVMsICAgICAgIC8q IFtZWVlZLU1NLUREIEhIOk1NOlNTLm1tbV0gKi8KICAgICBUU01fQk9PVCwgICAgICAgICAgLyog W1NTU1NTUy51dXV1dXVdICovCiAgICAgVFNNX1JBVywgICAgICAgICAgIC8qIFtYWFhYWFhYWFhY WFhYWFhYXSAqLworICAgIFRTTV9FTkQKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICpjb25fdGlt ZXN0YW1wX21vZGVfMl9zdHJpbmdbVFNNX0VORF0gPSB7CisgICAgW1RTTV9OT05FXSA9ICJub25l IiwKKyAgICBbVFNNX0RBVEVdID0gImRhdGUiLAorICAgIFtUU01fREFURV9NU10gPSAiZGF0ZW1z IiwKKyAgICBbVFNNX0JPT1RdID0gImJvb3QiLAorICAgIFtUU01fUkFXXSA9ICJyYXciCiB9Owog CiBzdGF0aWMgZW51bSBjb25fdGltZXN0YW1wX21vZGUgX19yZWFkX21vc3RseSBvcHRfY29uX3Rp bWVzdGFtcF9tb2RlID0gVFNNX05PTkU7CitzdGF0aWMgY2hhciBjb25fdGltZXN0YW1wX21vZGVf dmFsWzddOworCitzdGF0aWMgdm9pZCB1cGRhdGVfY29uX3RpbWVzdGFtcF9tb2RlKHZvaWQpCit7 CisgICAgc3RybGNweShjb25fdGltZXN0YW1wX21vZGVfdmFsLAorICAgICAgICAgICAgY29uX3Rp bWVzdGFtcF9tb2RlXzJfc3RyaW5nW29wdF9jb25fdGltZXN0YW1wX21vZGVdLAorICAgICAgICAg ICAgc2l6ZW9mKGNvbl90aW1lc3RhbXBfbW9kZV92YWwpKTsKK30KKworc3RhdGljIHZvaWQgX19p bml0IGNvbl90aW1lc3RhbXBfbW9kZV9pbml0KHN0cnVjdCBwYXJhbV9oeXBmcyAqcGFyKQorewor ICAgIGN1c3RvbV9ydW50aW1lX3NldF92YXIocGFyLCBjb25fdGltZXN0YW1wX21vZGVfdmFsKTsK KyAgICB1cGRhdGVfY29uX3RpbWVzdGFtcF9tb2RlKCk7Cit9CiAKIHN0YXRpYyBpbnQgcGFyc2Vf Y29uc29sZV90aW1lc3RhbXBzKGNvbnN0IGNoYXIgKnMpOwotY3VzdG9tX3J1bnRpbWVfcGFyYW0o ImNvbnNvbGVfdGltZXN0YW1wcyIsIHBhcnNlX2NvbnNvbGVfdGltZXN0YW1wcyk7CitjdXN0b21f cnVudGltZV9wYXJhbSgiY29uc29sZV90aW1lc3RhbXBzIiwgcGFyc2VfY29uc29sZV90aW1lc3Rh bXBzLAorICAgICAgICAgICAgICAgICAgICAgY29uX3RpbWVzdGFtcF9tb2RlX2luaXQpOwogCiAv KiBjb25yaW5nX3NpemU6IGFsbG93cyBhIGxhcmdlIGNvbnNvbGUgcmluZyB0aGFuIGRlZmF1bHQg KDE2a0IpLiAqLwogc3RhdGljIHVpbnQzMl90IF9faW5pdGRhdGEgb3B0X2NvbnJpbmdfc2l6ZTsK QEAgLTEzMywxNiArMTU3LDM5IEBAIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soY29uc29sZV9sb2Nr KTsKICNkZWZpbmUgWEVOTE9HX0RFRkFVTFQgICAgICAgMSAvKiBYRU5MT0dfV0FSTklORyAqLwog I2RlZmluZSBYRU5MT0dfR1VFU1RfREVGQVVMVCAxIC8qIFhFTkxPR19XQVJOSU5HICovCiAKKyNk ZWZpbmUgTE9HTFZMX1ZBTF9TWiAxNgogc3RhdGljIGludCBfX3JlYWRfbW9zdGx5IHhlbmxvZ191 cHBlcl90aHJlc2ggPSBYRU5MT0dfVVBQRVJfVEhSRVNIT0xEOwogc3RhdGljIGludCBfX3JlYWRf bW9zdGx5IHhlbmxvZ19sb3dlcl90aHJlc2ggPSBYRU5MT0dfTE9XRVJfVEhSRVNIT0xEOworc3Rh dGljIGNoYXIgeGVubG9nX3ZhbFtMT0dMVkxfVkFMX1NaXTsKIHN0YXRpYyBpbnQgX19yZWFkX21v c3RseSB4ZW5sb2dfZ3Vlc3RfdXBwZXJfdGhyZXNoID0KICAgICBYRU5MT0dfR1VFU1RfVVBQRVJf VEhSRVNIT0xEOwogc3RhdGljIGludCBfX3JlYWRfbW9zdGx5IHhlbmxvZ19ndWVzdF9sb3dlcl90 aHJlc2ggPQogICAgIFhFTkxPR19HVUVTVF9MT1dFUl9USFJFU0hPTEQ7CitzdGF0aWMgY2hhciB4 ZW5sb2dfZ3Vlc3RfdmFsW0xPR0xWTF9WQUxfU1pdOwogCiBzdGF0aWMgaW50IHBhcnNlX2xvZ2x2 bChjb25zdCBjaGFyICpzKTsKIHN0YXRpYyBpbnQgcGFyc2VfZ3Vlc3RfbG9nbHZsKGNvbnN0IGNo YXIgKnMpOwogCitzdGF0aWMgY2hhciAqbHZsMm9wdFtdID0geyAibm9uZSIsICJlcnJvciIsICJ3 YXJuaW5nIiwgImluZm8iLCAiYWxsIiB9OworCitzdGF0aWMgdm9pZCB4ZW5sb2dfdXBkYXRlX3Zh bChpbnQgbG93ZXIsIGludCB1cHBlciwgY2hhciAqdmFsKQoreworICAgIHNucHJpbnRmKHZhbCwg TE9HTFZMX1ZBTF9TWiwgIiVzLyVzIiwgbHZsMm9wdFtsb3dlcl0sIGx2bDJvcHRbdXBwZXJdKTsK K30KKworc3RhdGljIHZvaWQgX19pbml0IHhlbmxvZ19pbml0KHN0cnVjdCBwYXJhbV9oeXBmcyAq cGFyKQoreworICAgIGN1c3RvbV9ydW50aW1lX3NldF92YXIocGFyLCB4ZW5sb2dfdmFsKTsKKyAg ICB4ZW5sb2dfdXBkYXRlX3ZhbCh4ZW5sb2dfbG93ZXJfdGhyZXNoLCB4ZW5sb2dfdXBwZXJfdGhy ZXNoLCB4ZW5sb2dfdmFsKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IHhlbmxvZ19ndWVzdF9p bml0KHN0cnVjdCBwYXJhbV9oeXBmcyAqcGFyKQoreworICAgIGN1c3RvbV9ydW50aW1lX3NldF92 YXIocGFyLCB4ZW5sb2dfZ3Vlc3RfdmFsKTsKKyAgICB4ZW5sb2dfdXBkYXRlX3ZhbCh4ZW5sb2df Z3Vlc3RfbG93ZXJfdGhyZXNoLCB4ZW5sb2dfZ3Vlc3RfdXBwZXJfdGhyZXNoLAorICAgICAgICAg ICAgICAgICAgICAgIHhlbmxvZ19ndWVzdF92YWwpOworfQorCiAvKgogICogPGx2bD4gOj0gbm9u ZXxlcnJvcnx3YXJuaW5nfGluZm98ZGVidWd8YWxsCiAgKiBsb2dsdmw9PGx2bF9wcmludF9hbHdh eXM+Wy88bHZsX3ByaW50X3JhdGVsaW1pdD5dCkBAIC0xNTEsOCArMTk4LDggQEAgc3RhdGljIGlu dCBwYXJzZV9ndWVzdF9sb2dsdmwoY29uc3QgY2hhciAqcyk7CiAgKiBTaW1pbGFyIGRlZmluaXRp b25zIGZvciBndWVzdF9sb2dsdmwsIGJ1dCBhcHBsaWVzIHRvIGd1ZXN0IHRyYWNpbmcuCiAgKiBE ZWZhdWx0czogbG9nbHZsPXdhcm5pbmcgOyBndWVzdF9sb2dsdmw9bm9uZS93YXJuaW5nCiAgKi8K LWN1c3RvbV9ydW50aW1lX3BhcmFtKCJsb2dsdmwiLCBwYXJzZV9sb2dsdmwpOwotY3VzdG9tX3J1 bnRpbWVfcGFyYW0oImd1ZXN0X2xvZ2x2bCIsIHBhcnNlX2d1ZXN0X2xvZ2x2bCk7CitjdXN0b21f cnVudGltZV9wYXJhbSgibG9nbHZsIiwgcGFyc2VfbG9nbHZsLCB4ZW5sb2dfaW5pdCk7CitjdXN0 b21fcnVudGltZV9wYXJhbSgiZ3Vlc3RfbG9nbHZsIiwgcGFyc2VfZ3Vlc3RfbG9nbHZsLCB4ZW5s b2dfZ3Vlc3RfaW5pdCk7CiAKIHN0YXRpYyBhdG9taWNfdCBwcmludF9ldmVyeXRoaW5nID0gQVRP TUlDX0lOSVQoMCk7CiAKQEAgLTE3Myw3ICsyMjAsNyBAQCBzdGF0aWMgaW50IF9fcGFyc2VfbG9n bHZsKGNvbnN0IGNoYXIgKnMsIGNvbnN0IGNoYXIgKipwcykKICAgICByZXR1cm4gMjsgLyogc2Fu ZSBmYWxsYmFjayAqLwogfQogCi1zdGF0aWMgaW50IF9wYXJzZV9sb2dsdmwoY29uc3QgY2hhciAq cywgaW50ICpsb3dlciwgaW50ICp1cHBlcikKK3N0YXRpYyBpbnQgX3BhcnNlX2xvZ2x2bChjb25z dCBjaGFyICpzLCBpbnQgKmxvd2VyLCBpbnQgKnVwcGVyLCBjaGFyICp2YWwpCiB7CiAgICAgKmxv d2VyID0gKnVwcGVyID0gX19wYXJzZV9sb2dsdmwocywgJnMpOwogICAgIGlmICggKnMgPT0gJy8n ICkKQEAgLTE4MSwxOCArMjI4LDIxIEBAIHN0YXRpYyBpbnQgX3BhcnNlX2xvZ2x2bChjb25zdCBj aGFyICpzLCBpbnQgKmxvd2VyLCBpbnQgKnVwcGVyKQogICAgIGlmICggKnVwcGVyIDwgKmxvd2Vy ICkKICAgICAgICAgKnVwcGVyID0gKmxvd2VyOwogCisgICAgeGVubG9nX3VwZGF0ZV92YWwoKmxv d2VyLCAqdXBwZXIsIHZhbCk7CisKICAgICByZXR1cm4gKnMgPyAtRUlOVkFMIDogMDsKIH0KIAog c3RhdGljIGludCBwYXJzZV9sb2dsdmwoY29uc3QgY2hhciAqcykKIHsKLSAgICByZXR1cm4gX3Bh cnNlX2xvZ2x2bChzLCAmeGVubG9nX2xvd2VyX3RocmVzaCwgJnhlbmxvZ191cHBlcl90aHJlc2gp OworICAgIHJldHVybiBfcGFyc2VfbG9nbHZsKHMsICZ4ZW5sb2dfbG93ZXJfdGhyZXNoLCAmeGVu bG9nX3VwcGVyX3RocmVzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5sb2dfdmFsKTsK IH0KIAogc3RhdGljIGludCBwYXJzZV9ndWVzdF9sb2dsdmwoY29uc3QgY2hhciAqcykKIHsKICAg ICByZXR1cm4gX3BhcnNlX2xvZ2x2bChzLCAmeGVubG9nX2d1ZXN0X2xvd2VyX3RocmVzaCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAmeGVubG9nX2d1ZXN0X3VwcGVyX3RocmVzaCk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgJnhlbmxvZ19ndWVzdF91cHBlcl90aHJlc2gsIHhlbmxvZ19n dWVzdF92YWwpOwogfQogCiBzdGF0aWMgY2hhciAqbG9nbHZsX3N0cihpbnQgbHZsKQpAQCAtNzMx LDkgKzc4MSwxMSBAQCBzdGF0aWMgaW50IHBhcnNlX2NvbnNvbGVfdGltZXN0YW1wcyhjb25zdCBj aGFyICpzKQogICAgIHsKICAgICBjYXNlIDA6CiAgICAgICAgIG9wdF9jb25fdGltZXN0YW1wX21v ZGUgPSBUU01fTk9ORTsKKyAgICAgICAgdXBkYXRlX2Nvbl90aW1lc3RhbXBfbW9kZSgpOwogICAg ICAgICByZXR1cm4gMDsKICAgICBjYXNlIDE6CiAgICAgICAgIG9wdF9jb25fdGltZXN0YW1wX21v ZGUgPSBUU01fREFURTsKKyAgICAgICAgdXBkYXRlX2Nvbl90aW1lc3RhbXBfbW9kZSgpOwogICAg ICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgaWYgKCAqcyA9PSAnXDAnIHx8IC8qIENvbXBhdCBm b3Igb2xkIGJvb2xlYW5wYXJhbSgpICovCkBAIC03NTAsNiArODAyLDggQEAgc3RhdGljIGludCBw YXJzZV9jb25zb2xlX3RpbWVzdGFtcHMoY29uc3QgY2hhciAqcykKICAgICBlbHNlCiAgICAgICAg IHJldHVybiAtRUlOVkFMOwogCisgICAgdXBkYXRlX2Nvbl90aW1lc3RhbXBfbW9kZSgpOworCiAg ICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9oeXBmcy5oIGIv eGVuL2luY2x1ZGUveGVuL2h5cGZzLmgKaW5kZXggOWVjYzkwNjBhMy4uNmMxZGIyOTBjYiAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2h5cGZzLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2h5 cGZzLmgKQEAgLTk5LDUgKzk5LDkgQEAgaW50IGh5cGZzX3dyaXRlX2xlYWYoc3RydWN0IGh5cGZz X2VudHJ5X2xlYWYgKmxlYWYsCiAgICAgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExF X1BBUkFNKHZvaWQpIHVhZGRyLCB1bnNpZ25lZCBsb25nIHVsZW4pOwogaW50IGh5cGZzX3dyaXRl X2Jvb2woc3RydWN0IGh5cGZzX2VudHJ5X2xlYWYgKmxlYWYsCiAgICAgICAgICAgICAgICAgICAg ICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIHVhZGRyLCB1bnNpZ25lZCBsb25nIHVsZW4p OworaW50IGh5cGZzX3dyaXRlX2N1c3RvbShzdHJ1Y3QgaHlwZnNfZW50cnlfbGVhZiAqbGVhZiwK KyAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSB1YWRk ciwgdW5zaWduZWQgbG9uZyB1bGVuKTsKK3ZvaWQgaHlwZnNfd3JpdGVfbG9jayh2b2lkKTsKK3Zv aWQgaHlwZnNfd3JpdGVfdW5sb2NrKHZvaWQpOwogCiAjZW5kaWYgLyogX19YRU5fSFlQRlNfSF9f ICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vcGFyYW0uaCBiL3hlbi9pbmNsdWRlL3hl bi9wYXJhbS5oCmluZGV4IGQ0NTc4Y2QyN2YuLjcxODQxMTM3NTEgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL3hlbi9wYXJhbS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9wYXJhbS5oCkBAIC0xLDYg KzEsNyBAQAogI2lmbmRlZiBfWEVOX1BBUkFNX0gKICNkZWZpbmUgX1hFTl9QQVJBTV9ICiAKKyNp bmNsdWRlIDx4ZW4vaHlwZnMuaD4KICNpbmNsdWRlIDx4ZW4vaW5pdC5oPgogI2luY2x1ZGUgPHhl bi9saWIuaD4KICNpbmNsdWRlIDx4ZW4vc3RkYm9vbC5oPgpAQCAtMjUsMTAgKzI2LDE4IEBAIHN0 cnVjdCBrZXJuZWxfcGFyYW0gewogICAgIH0gcGFyOwogfTsKIAorc3RydWN0IHBhcmFtX2h5cGZz IHsKKyAgICBjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICpwYXJhbTsKKyAgICBzdHJ1Y3QgaHlw ZnNfZW50cnlfbGVhZiBoeXBmczsKKyAgICB2b2lkICgqaW5pdF9sZWFmKShzdHJ1Y3QgcGFyYW1f aHlwZnMgKnBhcik7Cit9OworCiBleHRlcm4gY29uc3Qgc3RydWN0IGtlcm5lbF9wYXJhbSBfX3Nl dHVwX3N0YXJ0W10sIF9fc2V0dXBfZW5kW107CiBleHRlcm4gY29uc3Qgc3RydWN0IGtlcm5lbF9w YXJhbSBfX3BhcmFtX3N0YXJ0W10sIF9fcGFyYW1fZW5kW107CitleHRlcm4gc3RydWN0IHBhcmFt X2h5cGZzIF9fcGFyYW1oeXBmc19zdGFydFtdLCBfX3BhcmFtaHlwZnNfZW5kW107CiAKICNkZWZp bmUgX19kYXRhcGFyYW0gICAgICAgX191c2VkX3NlY3Rpb24oIi5kYXRhLnBhcmFtIikKKyNkZWZp bmUgX19wYXJhbWh5cGZzICAgICAgX191c2VkX3NlY3Rpb24oIi5kYXRhLnBhcmFtaHlwZnMiKQog CiAjZGVmaW5lIF9fcGFyYW0oYXR0KSAgICAgIHN0YXRpYyBjb25zdCBhdHQgXAogICAgIF9fYXR0 cmlidXRlX18oKF9fYWxpZ25lZF9fKHNpemVvZih2b2lkICopKSkpIHN0cnVjdCBrZXJuZWxfcGFy YW0KQEAgLTc5LDQxICs4OCw5NCBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGtlcm5lbF9wYXJhbSBf X3BhcmFtX3N0YXJ0W10sIF9fcGFyYW1fZW5kW107CiAgICAgICAgICAgLnR5cGUgPSBPUFRfSUdO T1JFIH0KIAogI2RlZmluZSBfX3J0cGFyYW0gICAgICAgICBfX3BhcmFtKF9fZGF0YXBhcmFtKQor I2RlZmluZSBfX3BhcmFtZnMgICAgICAgICBzdGF0aWMgX19wYXJhbWh5cGZzIFwKKyAgICBfX2F0 dHJpYnV0ZV9fKChfX2FsaWduZWRfXyhzaXplb2Yodm9pZCAqKSkpKSBzdHJ1Y3QgcGFyYW1faHlw ZnMKIAotI2RlZmluZSBjdXN0b21fcnVudGltZV9vbmx5X3BhcmFtKF9uYW1lLCBfdmFyKSBcCisj ZGVmaW5lIGN1c3RvbV9ydW50aW1lX3NldF92YXIocGFyZnMsIHZhcikgXAorICAgIHsgXAorICAg ICAgICAocGFyZnMpLT5oeXBmcy53cml0ZV9wdHIgPSAmKHZhcik7IFwKKyAgICAgICAgKHBhcmZz KS0+aHlwZnMuZS5zaXplID0gc2l6ZW9mKHZhcik7IFwKKyAgICB9CisKKy8qIGluaXRmdW5jIG5l ZWRzIHRvIHNldCBzaXplIGFuZCBjb250ZW50LCBlLmcuIHZpYSBjdXN0b21fcnVudGltZV9zZXRf dmFyKCkuICovCisjZGVmaW5lIGN1c3RvbV9ydW50aW1lX29ubHlfcGFyYW0oX25hbWUsIF92YXIs IGluaXRmdW5jKSBcCiAgICAgX19ydHBhcmFtIF9fcnRwYXJfIyNfdmFyID0gXAogICAgICAgeyAu bmFtZSA9IF9uYW1lLCBcCiAgICAgICAgICAgLnR5cGUgPSBPUFRfQ1VTVE9NLCBcCi0gICAgICAg ICAgLnBhci5mdW5jID0gX3ZhciB9CisgICAgICAgICAgLnBhci5mdW5jID0gX3ZhciB9OyBcCisg ICAgX19wYXJhbWZzIF9fcGFyZnNfIyNfdmFyID0gXAorICAgICAgICB7IC5wYXJhbSA9ICZfX3J0 cGFyXyMjX3ZhciwgXAorICAgICAgICAgIC5pbml0X2xlYWYgPSBpbml0ZnVuYywgXAorICAgICAg ICAgIC5oeXBmcy5lLnR5cGUgPSBYRU5fSFlQRlNfVFlQRV9TVFJJTkcsIFwKKyAgICAgICAgICAu aHlwZnMuZS5lbmNvZGluZyA9IFhFTl9IWVBGU19FTkNfUExBSU4sIFwKKyAgICAgICAgICAuaHlw ZnMuZS5uYW1lID0gX25hbWUsIFwKKyAgICAgICAgICAuaHlwZnMuZS5yZWFkID0gaHlwZnNfcmVh ZF9sZWFmLCBcCisgICAgICAgICAgLmh5cGZzLmUud3JpdGUgPSBoeXBmc193cml0ZV9jdXN0b20g fQogI2RlZmluZSBib29sZWFuX3J1bnRpbWVfb25seV9wYXJhbShfbmFtZSwgX3ZhcikgXAogICAg IF9fcnRwYXJhbSBfX3J0cGFyXyMjX3ZhciA9IFwKICAgICAgICAgeyAubmFtZSA9IF9uYW1lLCBc CiAgICAgICAgICAgLnR5cGUgPSBPUFRfQk9PTCwgXAogICAgICAgICAgIC5sZW4gPSBzaXplb2Yo X3ZhcikgKyBcCiAgICAgICAgICAgICAgICAgIEJVSUxEX0JVR19PTl9aRVJPKHNpemVvZihfdmFy KSAhPSBzaXplb2YoYm9vbCkpLCBcCi0gICAgICAgICAgLnBhci52YXIgPSAmX3ZhciB9CisgICAg ICAgICAgLnBhci52YXIgPSAmX3ZhciB9OyBcCisgICAgX19wYXJhbWZzIF9fcGFyZnNfIyNfdmFy ID0gXAorICAgICAgICB7IC5wYXJhbSA9ICZfX3J0cGFyXyMjX3ZhciwgXAorICAgICAgICAgIC5o eXBmcy5lLnR5cGUgPSBYRU5fSFlQRlNfVFlQRV9CT09MLCBcCisgICAgICAgICAgLmh5cGZzLmUu ZW5jb2RpbmcgPSBYRU5fSFlQRlNfRU5DX1BMQUlOLCBcCisgICAgICAgICAgLmh5cGZzLmUubmFt ZSA9IF9uYW1lLCBcCisgICAgICAgICAgLmh5cGZzLmUuc2l6ZSA9IHNpemVvZihfdmFyKSwgXAor ICAgICAgICAgIC5oeXBmcy5lLnJlYWQgPSBoeXBmc19yZWFkX2xlYWYsIFwKKyAgICAgICAgICAu aHlwZnMuZS53cml0ZSA9IGh5cGZzX3dyaXRlX2Jvb2wsIFwKKyAgICAgICAgICAuaHlwZnMuY29u dGVudCA9ICZfdmFyIH0KICNkZWZpbmUgaW50ZWdlcl9ydW50aW1lX29ubHlfcGFyYW0oX25hbWUs IF92YXIpIFwKICAgICBfX3J0cGFyYW0gX19ydHBhcl8jI192YXIgPSBcCiAgICAgICAgIHsgLm5h bWUgPSBfbmFtZSwgXAogICAgICAgICAgIC50eXBlID0gT1BUX1VJTlQsIFwKICAgICAgICAgICAu bGVuID0gc2l6ZW9mKF92YXIpLCBcCi0gICAgICAgICAgLnBhci52YXIgPSAmX3ZhciB9CisgICAg ICAgICAgLnBhci52YXIgPSAmX3ZhciB9OyBcCisgICAgX19wYXJhbWZzIF9fcGFyZnNfIyNfdmFy ID0gXAorICAgICAgICB7IC5wYXJhbSA9ICZfX3J0cGFyXyMjX3ZhciwgXAorICAgICAgICAgIC5o eXBmcy5lLnR5cGUgPSBYRU5fSFlQRlNfVFlQRV9VSU5ULCBcCisgICAgICAgICAgLmh5cGZzLmUu ZW5jb2RpbmcgPSBYRU5fSFlQRlNfRU5DX1BMQUlOLCBcCisgICAgICAgICAgLmh5cGZzLmUubmFt ZSA9IF9uYW1lLCBcCisgICAgICAgICAgLmh5cGZzLmUuc2l6ZSA9IHNpemVvZihfdmFyKSwgXAor ICAgICAgICAgIC5oeXBmcy5lLnJlYWQgPSBoeXBmc19yZWFkX2xlYWYsIFwKKyAgICAgICAgICAu aHlwZnMuZS53cml0ZSA9IGh5cGZzX3dyaXRlX2xlYWYsIFwKKyAgICAgICAgICAuaHlwZnMuY29u dGVudCA9ICZfdmFyIH0KICNkZWZpbmUgc2l6ZV9ydW50aW1lX29ubHlfcGFyYW0oX25hbWUsIF92 YXIpIFwKICAgICBfX3J0cGFyYW0gX19ydHBhcl8jI192YXIgPSBcCiAgICAgICAgIHsgLm5hbWUg PSBfbmFtZSwgXAogICAgICAgICAgIC50eXBlID0gT1BUX1NJWkUsIFwKICAgICAgICAgICAubGVu ID0gc2l6ZW9mKF92YXIpLCBcCi0gICAgICAgICAgLnBhci52YXIgPSAmX3ZhciB9CisgICAgICAg ICAgLnBhci52YXIgPSAmX3ZhciB9OyBcCisgICAgX19wYXJhbWZzIF9fcGFyZnNfIyNfdmFyID0g XAorICAgICAgICB7IC5wYXJhbSA9ICZfX3J0cGFyXyMjX3ZhciwgXAorICAgICAgICAgIC5oeXBm cy5lLnR5cGUgPSBYRU5fSFlQRlNfVFlQRV9VSU5ULCBcCisgICAgICAgICAgLmh5cGZzLmUuZW5j b2RpbmcgPSBYRU5fSFlQRlNfRU5DX1BMQUlOLCBcCisgICAgICAgICAgLmh5cGZzLmUubmFtZSA9 IF9uYW1lLCBcCisgICAgICAgICAgLmh5cGZzLmUuc2l6ZSA9IHNpemVvZihfdmFyKSwgXAorICAg ICAgICAgIC5oeXBmcy5lLnJlYWQgPSBoeXBmc19yZWFkX2xlYWYsIFwKKyAgICAgICAgICAuaHlw ZnMuZS53cml0ZSA9IGh5cGZzX3dyaXRlX2xlYWYsIFwKKyAgICAgICAgICAuaHlwZnMuY29udGVu dCA9ICZfdmFyIH0KICNkZWZpbmUgc3RyaW5nX3J1bnRpbWVfb25seV9wYXJhbShfbmFtZSwgX3Zh cikgXAogICAgIF9fcnRwYXJhbSBfX3J0cGFyXyMjX3ZhciA9IFwKICAgICAgICAgeyAubmFtZSA9 IF9uYW1lLCBcCiAgICAgICAgICAgLnR5cGUgPSBPUFRfU1RSLCBcCiAgICAgICAgICAgLmxlbiA9 IHNpemVvZihfdmFyKSwgXAotICAgICAgICAgIC5wYXIudmFyID0gJl92YXIgfQorICAgICAgICAg IC5wYXIudmFyID0gJl92YXIgfTsgXAorICAgIF9fcGFyYW1mcyBfX3BhcmZzXyMjX3ZhciA9IFwK KyAgICAgICAgeyAucGFyYW0gPSAmX19ydHBhcl8jI192YXIsIFwKKyAgICAgICAgICAuaHlwZnMu ZS50eXBlID0gWEVOX0hZUEZTX1RZUEVfU1RSSU5HLCBcCisgICAgICAgICAgLmh5cGZzLmUuZW5j b2RpbmcgPSBYRU5fSFlQRlNfRU5DX1BMQUlOLCBcCisgICAgICAgICAgLmh5cGZzLmUubmFtZSA9 IF9uYW1lLCBcCisgICAgICAgICAgLmh5cGZzLmUuc2l6ZSA9IHNpemVvZihfdmFyKSwgXAorICAg ICAgICAgIC5oeXBmcy5lLnJlYWQgPSBoeXBmc19yZWFkX2xlYWYsIFwKKyAgICAgICAgICAuaHlw ZnMuZS53cml0ZSA9IGh5cGZzX3dyaXRlX2xlYWYsIFwKKyAgICAgICAgICAuaHlwZnMuY29udGVu dCA9ICZfdmFyIH0KIAotI2RlZmluZSBjdXN0b21fcnVudGltZV9wYXJhbShfbmFtZSwgX3Zhcikg XAorI2RlZmluZSBjdXN0b21fcnVudGltZV9wYXJhbShfbmFtZSwgX3ZhciwgaW5pdGZ1bmMpIFwK ICAgICBjdXN0b21fcGFyYW0oX25hbWUsIF92YXIpOyBcCi0gICAgY3VzdG9tX3J1bnRpbWVfb25s eV9wYXJhbShfbmFtZSwgX3ZhcikKKyAgICBjdXN0b21fcnVudGltZV9vbmx5X3BhcmFtKF9uYW1l LCBfdmFyLCBpbml0ZnVuYykKICNkZWZpbmUgYm9vbGVhbl9ydW50aW1lX3BhcmFtKF9uYW1lLCBf dmFyKSBcCiAgICAgYm9vbGVhbl9wYXJhbShfbmFtZSwgX3Zhcik7IFwKICAgICBib29sZWFuX3J1 bnRpbWVfb25seV9wYXJhbShfbmFtZSwgX3ZhcikKLS0gCjIuMTYuNAoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v cmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=