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=DKIM_INVALID,DKIM_SIGNED, 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 9E8AAC4360C for ; Thu, 3 Oct 2019 01:35:52 +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 682E8222BE for ; Thu, 3 Oct 2019 01:35:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="bY2d3kir" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 682E8222BE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org 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 1iFq1r-0003aS-60; Thu, 03 Oct 2019 01:35:39 +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 1iFq1p-0003Zm-EE for xen-devel@lists.xen.org; Thu, 03 Oct 2019 01:35:37 +0000 X-Inumbo-ID: 176182c4-e57e-11e9-971d-12813bfff9fa Received: from mail.kernel.org (unknown [198.145.29.99]) by localhost (Halon) with ESMTPS id 176182c4-e57e-11e9-971d-12813bfff9fa; Thu, 03 Oct 2019 01:35:33 +0000 (UTC) Received: from sstabellini-ThinkPad-T480s.hsd1.ca.comcast.net (c-67-164-102-47.hsd1.ca.comcast.net [67.164.102.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6A246222C2; Thu, 3 Oct 2019 01:35:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570066533; bh=IefElVA/5GkbLDN2pjRIoYjGK0hKZ18rf9bQCZd0zV0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bY2d3kircyvcaLWrRTZs7tWMlpFfIhfBaSALAjdKYLOiJdu2eINFiMe0/8HBNzDfX ZonrQhgW9fwkPW42pHHZFPDSWHIvXxdjnGOQ+YZWdx+pmwPGecM+uajbnar7U63Zjo eTFWjcoNACCmhw7P12OJg7Vf4aGLb92OgqyXKv6Q= From: Stefano Stabellini To: julien.grall@arm.com Date: Wed, 2 Oct 2019 18:35:22 -0700 Message-Id: <20191003013526.30768-4-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: Subject: [Xen-devel] [PATCH v8 4/8] xen/arm: copy dtb fragment to guest dtb 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: Stefano Stabellini , sstabellini@kernel.org, andrii_anisov@epam.com, Achin.Gupta@arm.com, xen-devel@lists.xen.org, Volodymyr_Babchuk@epam.com 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" UmVhZCB0aGUgZHRiIGZyYWdtZW50IGNvcnJlc3BvbmRpbmcgdG8gYSBwYXNzdGhyb3VnaCBkZXZp Y2UgZnJvbSBtZW1vcnkKYXQgdGhlIGxvY2F0aW9uIHJlZmVycmVkIHRvIGJ5IHRoZSAibXVsdGli b290LGRldmljZS10cmVlIiBjb21wYXRpYmxlCm5vZGUuCgpBZGQgYSBuZXcgZmllbGQgbmFtZWQg ZHRiX2Jvb3Rtb2R1bGUgdG8gc3RydWN0IGtlcm5lbF9pbmZvIHRvIGtlZXAgdHJhY2sKb2YgdGhl IGR0YiBmcmFnbWVudCBsb2NhdGlvbi4KCkNvcHkgdGhlIGZyYWdtZW50IHRvIHRoZSBndWVzdCBk dGIgKG9ubHkgL2FsaWFzZXMgYW5kIC9wYXNzdGhyb3VnaCkuCgpTZXQga2luZm8tPnBoYW5kbGVf Z2ljIGJhc2VkIG9uIHRoZSBwaGFuZGxlIG9mIHRoZSBzcGVjaWFsICIvZ2ljIgpub2RlIGluIHRo ZSBkZXZpY2UgdHJlZSBmcmFnbWVudC4gIi9naWMiIGlzIGEgZHVtbXkgbm9kZSBpbiB0aGUgZHRi CmZyYWdtZW50IHRoYXQgcmVwcmVzZW50cyB0aGUgZ2ljIGludGVycnVwdCBjb250cm9sbGVyLiBP dGhlciBwcm9wZXJ0aWVzCmluIHRoZSBkdGIgZnJhZ21lbnQgbWlnaHQgcmVmZXIgdG8gaXQgKGZv ciBpbnN0YW5jZSBpbnRlcnJ1cHQtcGFyZW50IG9mCmEgZGV2aWNlIG5vZGUpLiBXZSByZXVzZSB0 aGUgcGhhbmRsZSBvZiAiL2dpYyIgZnJvbSB0aGUgZHRiIGZyYWdtZW50IGFzCnRoZSBwaGFuZGxl IG9mIHRoZSBmdWxsIEdJQyBub2RlIHRoYXQgd2lsbCBiZSBjcmVhdGVkIGZvciB0aGUgZ3Vlc3QK ZGV2aWNlIHRyZWUuIFRoYXQgd2F5LCB3aGVuIHdlIGNvcHkgcHJvcGVydGllcyBmcm9tIHRoZSBk ZXZpY2UgdHJlZQpmcmFnbWVudCB0byB0aGUgZG9tVSBkZXZpY2UgdHJlZSB0aGUgbGlua3MgcmVt YWluIHVuYnJva2VuLgoKc2Nhbl9wYXNzdGhyb3VnaF9wcm9wIGlzIGludHJvZHVjZWQgaGVyZSBh bmQgbm90IHVzZWQgaW4gdGhpcyBwYXRjaCBidXQKaXQgd2lsbCBiZSB1c2VkIGJ5IGxhdGVyIHBh dGNoZXMuCgpTb21lIG9mIHRoZSBjb2RlIGJlbG93IGlzIHRha2VuIGZyb20gdG9vbHMvbGlieGwv bGlieGxfYXJtLmMuIE5vdGUgdGhhdAppdCBpcyBPSyB0byB0YWtlIExHUEwgMi4xIGNvZGUgYW5k IGluY2x1ZGluZyBpdCBpbnRvIGEgR1BMdjIgY29kZSBiYXNlLgpUaGUgcmVzdWx0IGlzIEdQTHYy IGNvZGUuCgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9zQHhpbGlu eC5jb20+CkFja2VkLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgotLS0t CkNoYW5nZXMgaW4gdjY6Ci0gY29kZSBzdHlsZQotIGluLWNvZGUgY29tbWVudAotIGNvbW1pdCBt ZXNzYWdlIGltcHJvdmVtZW50cwoKQ2hhbmdlcyBpbiB2NToKLSBjb2RlIHN0eWxlCi0gaW4tY29k ZSBjb21tZW50Ci0gcmVtb3ZlIGRlcHRoIHBhcmFtZXRlciBmcm9tIHNjYW5fcGZkdF9ub2RlCi0g Zm9yIGluc3RlYWQgb2YgbG9vcCBpbiBkb21haW5faGFuZGxlX2R0Yl9ib290bW9kdWxlCi0gbW92 ZSAiZ2ljIiBjaGVjayB0byBkb21haW5faGFuZGxlX2R0Yl9ib290bW9kdWxlCi0gYWRkIGNoZWNr X3BhcnRpYWxfZmR0Ci0gdXNlIERUX1JPT1RfTk9ERV9BRERSL1NJWkVfQ0VMTFNfREVGQVVMVAot IGFkZCBzY2FuX3Bhc3N0aHJvdWdoX3Byb3AgcGFyYW1ldGVyLCBzZXQgaXQgdG8gZmFsc2UgZm9y ICIvYWxpYXNlcyIKCkNoYW5nZXMgaW4gdjQ6Ci0gdXNlIHJlY3Vyc2lvbiBpbiB0aGUgaW1wbGVt ZW50YXRpb24KLSByZW5hbWUgaGFuZGxlX3Byb3BlcnRpZXMgdG8gaGFuZGxlX3Byb3BfcGZkdAot IHJlbmFtZSBzY2FuX3B0X25vZGUgdG8gc2Nhbl9wZmR0X25vZGUKLSBwYXNzIGtpbmZvIHRvIGhh bmRsZV9wcm9wZXJ0aWVzCi0gdXNlIHVpbnQzMl90IGluc3RlYWQgb2YgdTMyCi0gcmVuYW1lIHIg dG8gcmVzCi0gYWRkICJwYXNzdGhyb3VnaCIgYW5kICJhbGlhc2VzIiBjaGVjawotIGFkZCBhIG5h bWUgPT0gTlVMTCBjaGVjawotIGNvZGUgc3R5bGUKLSBtb3ZlIERUQiBmcmFnbWVudCBzY2Fubmlu ZyBlYXJsaWVyLCBiZWZvcmUgRG9tVSBHSUMgbm9kZSBjcmVhdGlvbgotIHNldCBndWVzdF9waGFu ZGxlX2dpYyBiYXNlZCBvbiAiL2dpYyIKLSBpbi1jb2RlIGNvbW1lbnQKCkNoYW5nZXMgaW4gdjM6 Ci0gc3dpdGNoIHRvIHVzaW5nIGRldmljZV90cmVlX2Zvcl9lYWNoX25vZGUgZm9yIHRoZSBjb3B5 CgpDaGFuZ2VzIGluIHYyOgotIGFkZCBhIG5vdGUgYWJvdXQgdGhlIGNvZGUgY29taW5nIGZyb20g bGlieGwgaW4gdGhlIGNvbW1pdCBtZXNzYWdlCi0gY29weSAvYWxpYXNlcwotIGNvZGUgc3R5bGUK LS0tCiB4ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgIHwgMTY0ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9hc20tYXJtL2tlcm5lbC5oIHwgICAyICst CiAyIGZpbGVzIGNoYW5nZWQsIDE2NSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFp bl9idWlsZC5jCmluZGV4IGQyM2MwYTliODcuLjg0YjY1YjhmMjUgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL2FybS9kb21haW5fYnVpbGQuYworKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMK QEAgLTE0LDYgKzE0LDcgQEAKICNpbmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNzLmg+CiAjaW5jbHVk ZSA8eGVuL2lvY2FwLmg+CiAjaW5jbHVkZSA8eGVuL2FjcGkuaD4KKyNpbmNsdWRlIDx4ZW4vdm1h cC5oPgogI2luY2x1ZGUgPHhlbi93YXJuaW5nLmg+CiAjaW5jbHVkZSA8YWNwaS9hY3RhYmxlcy5o PgogI2luY2x1ZGUgPGFzbS9kZXZpY2UuaD4KQEAgLTE3MTMsNiArMTcxNCwxNTcgQEAgc3RhdGlj IGludCBfX2luaXQgbWFrZV92cGwwMTFfdWFydF9ub2RlKHN0cnVjdCBrZXJuZWxfaW5mbyAqa2lu Zm8pCiB9CiAjZW5kaWYKIAorc3RhdGljIGludCBfX2luaXQgaGFuZGxlX3Byb3BfcGZkdChzdHJ1 Y3Qga2VybmVsX2luZm8gKmtpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCB2b2lkICpwZmR0LCBpbnQgbm9kZW9mZiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDMyX3QgYWRkcmVzc19jZWxscywgdWludDMyX3Qgc2l6ZV9jZWxscywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBzY2FuX3Bhc3N0aHJvdWdo X3Byb3ApCit7CisgICAgdm9pZCAqZmR0ID0ga2luZm8tPmZkdDsKKyAgICBpbnQgcHJvcG9mZiwg bmFtZW9mZiwgcmVzOworICAgIGNvbnN0IHN0cnVjdCBmZHRfcHJvcGVydHkgKnByb3A7CisKKyAg ICBmb3IgKCBwcm9wb2ZmID0gZmR0X2ZpcnN0X3Byb3BlcnR5X29mZnNldChwZmR0LCBub2Rlb2Zm KTsKKyAgICAgICAgICBwcm9wb2ZmID49IDA7CisgICAgICAgICAgcHJvcG9mZiA9IGZkdF9uZXh0 X3Byb3BlcnR5X29mZnNldChwZmR0LCBwcm9wb2ZmKSApCisgICAgeworICAgICAgICBpZiAoICEo cHJvcCA9IGZkdF9nZXRfcHJvcGVydHlfYnlfb2Zmc2V0KHBmZHQsIHByb3BvZmYsIE5VTEwpKSAp CisgICAgICAgICAgICByZXR1cm4gLUZEVF9FUlJfSU5URVJOQUw7CisKKyAgICAgICAgbmFtZW9m ZiA9IGZkdDMyX3RvX2NwdShwcm9wLT5uYW1lb2ZmKTsKKyAgICAgICAgcmVzID0gZmR0X3Byb3Bl cnR5KGZkdCwgZmR0X3N0cmluZyhwZmR0LCBuYW1lb2ZmKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIHByb3AtPmRhdGEsIGZkdDMyX3RvX2NwdShwcm9wLT5sZW4pKTsKKyAgICAgICAgaWYg KCByZXMgKQorICAgICAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisKKyAgICAvKiBGRFRfRVJS X05PVEZPVU5EID0+IFRoZXJlIGlzIG5vIG1vcmUgcHJvcGVydGllcyBmb3IgdGhpcyBub2RlICov CisgICAgcmV0dXJuICggcHJvcG9mZiAhPSAtRkRUX0VSUl9OT1RGT1VORCApID8gcHJvcG9mZiA6 IDA7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHNjYW5fcGZkdF9ub2RlKHN0cnVjdCBrZXJuZWxf aW5mbyAqa2luZm8sIGNvbnN0IHZvaWQgKnBmZHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgbm9kZW9mZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQzMl90IGFkZHJlc3NfY2VsbHMsIHVpbnQzMl90IHNpemVfY2VsbHMsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBib29sIHNjYW5fcGFzc3Rocm91Z2hfcHJvcCkKK3sKKyAgICBp bnQgcmMgPSAwOworICAgIHZvaWQgKmZkdCA9IGtpbmZvLT5mZHQ7CisgICAgaW50IG5vZGVfbmV4 dDsKKworICAgIHJjID0gZmR0X2JlZ2luX25vZGUoZmR0LCBmZHRfZ2V0X25hbWUocGZkdCwgbm9k ZW9mZiwgTlVMTCkpOworICAgIGlmICggcmMgKQorICAgICAgICByZXR1cm4gcmM7CisKKyAgICBy YyA9IGhhbmRsZV9wcm9wX3BmZHQoa2luZm8sIHBmZHQsIG5vZGVvZmYsIGFkZHJlc3NfY2VsbHMs IHNpemVfY2VsbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYW5fcGFzc3Rocm91Z2hf cHJvcCk7CisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiByYzsKKworICAgIGFkZHJlc3Nf Y2VsbHMgPSBkZXZpY2VfdHJlZV9nZXRfdTMyKHBmZHQsIG5vZGVvZmYsICIjYWRkcmVzcy1jZWxs cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFRfUk9PVF9OT0RF X0FERFJfQ0VMTFNfREVGQVVMVCk7CisgICAgc2l6ZV9jZWxscyA9IGRldmljZV90cmVlX2dldF91 MzIocGZkdCwgbm9kZW9mZiwgIiNzaXplLWNlbGxzIiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBEVF9ST09UX05PREVfU0laRV9DRUxMU19ERUZBVUxUKTsKKworICAgIG5v ZGVfbmV4dCA9IGZkdF9maXJzdF9zdWJub2RlKHBmZHQsIG5vZGVvZmYpOworICAgIHdoaWxlICgg bm9kZV9uZXh0ID4gMCApCisgICAgeworICAgICAgICBzY2FuX3BmZHRfbm9kZShraW5mbywgcGZk dCwgbm9kZV9uZXh0LCBhZGRyZXNzX2NlbGxzLCBzaXplX2NlbGxzLAorICAgICAgICAgICAgICAg ICAgICAgICBzY2FuX3Bhc3N0aHJvdWdoX3Byb3ApOworICAgICAgICBub2RlX25leHQgPSBmZHRf bmV4dF9zdWJub2RlKHBmZHQsIG5vZGVfbmV4dCk7CisgICAgfQorCisgICAgcmV0dXJuIGZkdF9l bmRfbm9kZShmZHQpOworfQorCitzdGF0aWMgaW50IF9faW5pdCBjaGVja19wYXJ0aWFsX2ZkdCh2 b2lkICpwZmR0LCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBpbnQgcmVzOworCisgICAgaWYgKCBmZHRf bWFnaWMocGZkdCkgIT0gRkRUX01BR0lDICkKKyAgICB7CisgICAgICAgIGRwcmludGsoWEVOTE9H X0VSUiwgIlBhcnRpYWwgRkRUIGlzIG5vdCBhIHZhbGlkIEZsYXQgRGV2aWNlIFRyZWUiKTsKKyAg ICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCisgICAgcmVzID0gZmR0X2NoZWNrX2hlYWRl cihwZmR0KTsKKyAgICBpZiAoIHJlcyApCisgICAgeworICAgICAgICBkcHJpbnRrKFhFTkxPR19F UlIsICJGYWlsZWQgdG8gY2hlY2sgdGhlIHBhcnRpYWwgRkRUICglZCkiLCByZXMpOworICAgICAg ICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAgICBpZiAoIGZkdF90b3RhbHNpemUocGZkdCkg PiBzaXplICkKKyAgICB7CisgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgIlBhcnRpYWwgRkRU IHRvdGFsc2l6ZSBpcyB0b28gYmlnIik7CisgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0K KworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9faW5pdCBkb21haW5faGFuZGxlX2R0 Yl9ib290bW9kdWxlKHN0cnVjdCBkb21haW4gKmQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8pCit7CisgICAg dm9pZCAqcGZkdDsKKyAgICBpbnQgcmVzLCBub2RlX25leHQ7CisKKyAgICBwZmR0ID0gaW9yZW1h cF9jYWNoZShraW5mby0+ZHRiX2Jvb3Rtb2R1bGUtPnN0YXJ0LAorICAgICAgICAgICAgICAgICAg ICAgICAgIGtpbmZvLT5kdGJfYm9vdG1vZHVsZS0+c2l6ZSk7CisgICAgaWYgKCBwZmR0ID09IE5V TEwgKQorICAgICAgICByZXR1cm4gLUVGQVVMVDsKKworICAgIHJlcyA9IGNoZWNrX3BhcnRpYWxf ZmR0KHBmZHQsIGtpbmZvLT5kdGJfYm9vdG1vZHVsZS0+c2l6ZSk7CisgICAgaWYgKCByZXMgPCAw ICkKKyAgICAgICAgcmV0dXJuIHJlczsKKworICAgIGZvciAoIG5vZGVfbmV4dCA9IGZkdF9maXJz dF9zdWJub2RlKHBmZHQsIDApOyAKKyAgICAgICAgICBub2RlX25leHQgPiAwOworICAgICAgICAg IG5vZGVfbmV4dCA9IGZkdF9uZXh0X3N1Ym5vZGUocGZkdCwgbm9kZV9uZXh0KSApCisgICAgewor ICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gZmR0X2dldF9uYW1lKHBmZHQsIG5vZGVfbmV4dCwg TlVMTCk7CisKKyAgICAgICAgaWYgKCBuYW1lID09IE5VTEwgKQorICAgICAgICAgICAgY29udGlu dWU7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogT25seSBzY2FuIC9naWMgL2FsaWFzZXMgL3Bh c3N0aHJvdWdoLCBpZ25vcmUgdGhlIHJlc3QuCisgICAgICAgICAqIFRoZXkgZG9uJ3QgaGF2ZSB0 byBiZSBwYXJzZWQgaW4gb3JkZXIuCisgICAgICAgICAqCisgICAgICAgICAqIFRha2UgdGhlIEdJ QyBwaGFuZGxlIHZhbHVlIGZyb20gdGhlIHNwZWNpYWwgL2dpYyBub2RlIGluIHRoZQorICAgICAg ICAgKiBEVEIgZnJhZ21lbnQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIGR0X25vZGVfY21w KG5hbWUsICJnaWMiKSA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAga2luZm8tPnBoYW5k bGVfZ2ljID0gZmR0X2dldF9waGFuZGxlKHBmZHQsIG5vZGVfbmV4dCk7CisgICAgICAgICAgICBj b250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICggZHRfbm9kZV9jbXAobmFtZSwgImFs aWFzZXMiKSA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgcmVzID0gc2Nhbl9wZmR0X25v ZGUoa2luZm8sIHBmZHQsIG5vZGVfbmV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERUX1JPT1RfTk9ERV9BRERSX0NFTExTX0RFRkFVTFQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBEVF9ST09UX05PREVfU0laRV9DRUxMU19ERUZBVUxULAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOworICAgICAgICAgICAgaWYgKCByZXMgKQor ICAgICAgICAgICAgICAgIHJldHVybiByZXM7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg ICAgfQorICAgICAgICBpZiAoIGR0X25vZGVfY21wKG5hbWUsICJwYXNzdGhyb3VnaCIpID09IDAg KQorICAgICAgICB7CisgICAgICAgICAgICByZXMgPSBzY2FuX3BmZHRfbm9kZShraW5mbywgcGZk dCwgbm9kZV9uZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFRfUk9PVF9O T0RFX0FERFJfQ0VMTFNfREVGQVVMVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IERUX1JPT1RfTk9ERV9TSVpFX0NFTExTX0RFRkFVTFQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0cnVlKTsKKyAgICAgICAgICAgIGlmICggcmVzICkKKyAgICAgICAgICAgICAg ICByZXR1cm4gcmVzOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICB9CisK KyAgICBpb3VubWFwKHBmZHQpOworCisgICAgcmV0dXJuIHJlczsKK30KKwogLyoKICAqIFRoZSBt YXggc2l6ZSBmb3IgRFQgaXMgMk1CLiBIb3dldmVyLCB0aGUgZ2VuZXJhdGVkIERUIGlzIHNtYWxs LCA0S0IKICAqIGFyZSBlbm91Z2ggZm9yIG5vdywgYnV0IHdlIG1pZ2h0IGhhdmUgdG8gaW5jcmVh c2UgaXQgaW4gdGhlIGZ1dHVyZS4KQEAgLTE3NjgsNiArMTkyMCwxOCBAQCBzdGF0aWMgaW50IF9f aW5pdCBwcmVwYXJlX2R0Yl9kb21VKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBrZXJuZWxfaW5m byAqa2luZm8pCiAgICAgaWYgKCByZXQgKQogICAgICAgICBnb3RvIGVycjsKIAorICAgIC8qCisg ICAgICogZG9tYWluX2hhbmRsZV9kdGJfYm9vdG1vZHVsZSBoYXMgdG8gYmUgY2FsbGVkIGJlZm9y ZSB0aGUgcmVzdCBvZgorICAgICAqIHRoZSBkZXZpY2UgdHJlZSBpcyBnZW5lcmF0ZWQgYmVjYXVz ZSBpdCBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZgorICAgICAqIHRoZSBmaWVsZCBwaGFuZGxlX2dp Yy4KKyAgICAgKi8KKyAgICBpZiAoIGtpbmZvLT5kdGJfYm9vdG1vZHVsZSApCisgICAgeworICAg ICAgICByZXQgPSBkb21haW5faGFuZGxlX2R0Yl9ib290bW9kdWxlKGQsIGtpbmZvKTsKKyAgICAg ICAgaWYgKCByZXQgKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKICAgICByZXQg PSBtYWtlX2dpY19kb21VX25vZGUoa2luZm8pOwogICAgIGlmICggcmV0ICkKICAgICAgICAgZ290 byBlcnI7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2tlcm5lbC5oIGIveGVuL2lu Y2x1ZGUvYXNtLWFybS9rZXJuZWwuaAppbmRleCA0M2ZhODc1NDVlLi44NzRhYTEwOGE3IDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2tlcm5lbC5oCisrKyBiL3hlbi9pbmNsdWRlL2Fz bS1hcm0va2VybmVsLmgKQEAgLTI4LDcgKzI4LDcgQEAgc3RydWN0IGtlcm5lbF9pbmZvIHsKICAg ICBwYWRkcl90IGdudHRhYl9zaXplOwogCiAgICAgLyogYm9vdCBibG9iIGxvYWQgYWRkcmVzc2Vz ICovCi0gICAgY29uc3Qgc3RydWN0IGJvb3Rtb2R1bGUgKmtlcm5lbF9ib290bW9kdWxlLCAqaW5p dHJkX2Jvb3Rtb2R1bGU7CisgICAgY29uc3Qgc3RydWN0IGJvb3Rtb2R1bGUgKmtlcm5lbF9ib290 bW9kdWxlLCAqaW5pdHJkX2Jvb3Rtb2R1bGUsICpkdGJfYm9vdG1vZHVsZTsKICAgICBjb25zdCBj aGFyKiBjbWRsaW5lOwogICAgIHBhZGRyX3QgZHRiX3BhZGRyOwogICAgIHBhZGRyX3QgaW5pdHJk X3BhZGRyOwotLSAKMi4xNy4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJv amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hl bi1kZXZlbA==