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.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,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 09FA6C47404 for ; Fri, 11 Oct 2019 16:56:36 +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 C5EFE21835 for ; Fri, 11 Oct 2019 16:56:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="W0VXGlpB" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C5EFE21835 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=eu.citrix.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 1iIyDC-0006JZ-8M; Fri, 11 Oct 2019 16:56:18 +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 1iIyDA-0006If-4m for xen-devel@lists.xenproject.org; Fri, 11 Oct 2019 16:56:16 +0000 X-Inumbo-ID: fe332c96-ec47-11e9-933c-12813bfff9fa Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id fe332c96-ec47-11e9-933c-12813bfff9fa; Fri, 11 Oct 2019 16:55:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1570812956; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=iWeYK+fwOl0HLrE+L672lbS4yidewBgEMlvtHZJ9Ynw=; b=W0VXGlpBnLj32fKcoan9epHfUrHbBWvCi+BTeKb8KwBiI1mvnPqmg+gI /HnGKrsnK+b99JWNu/VEr+OxTPCQiyHVf9C9VK1t4z7Z007+RSEmPcyuA KdBRz68Zv4OrXrBTyclRqalwwjlfMOFDRLGSSZiwpYkWhkOpEWmHpmMk8 o=; Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=ian.jackson@eu.citrix.com; spf=Pass smtp.mailfrom=Ian.Jackson@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa4.hc3370-68.iphmx.com: no sender authenticity information available from domain of ian.jackson@eu.citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="Ian.Jackson@citrix.com"; x-sender="ian.jackson@eu.citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa4.hc3370-68.iphmx.com: domain of Ian.Jackson@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="Ian.Jackson@citrix.com"; x-sender="Ian.Jackson@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ip4:168.245.78.127 ~all" Received-SPF: None (esa4.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="Ian.Jackson@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: /jAJZtIMepThatul4Cuz08XaRodktc7WEGywnjsmnx72fOPG3FWMDSQBg7J6kXNKhR2VwRfSca U4vHjTfgkl9Wct20SmVEbmCNLz2mUCvKkkzeX46UMF/CiZDYT6NHp2mkr5eGnFwrjj5XW7QAZa Ybhayk1820tySjfAx//gn87ZR96fbtPb6G8jsrvOWtg6qel7d6cZrdP9OxvYX22gPlqmQtM5dk W7pA9LeKFk+RhECGg3NS3r/hVkZuGvvgtxjDsd5DY+BfC6HWyR4hGAQEPM4EhIHmqgqDMoaiXD uyQ= X-SBRS: 2.7 X-MesageID: 7173379 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.67,284,1566878400"; d="scan'208";a="7173379" From: Ian Jackson To: Date: Fri, 11 Oct 2019 17:55:49 +0100 Message-ID: <20191011165549.21639-7-ian.jackson@eu.citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20191011165549.21639-1-ian.jackson@eu.citrix.com> References: <20191011165549.21639-1-ian.jackson@eu.citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [XEN PATCH for-4.13 v3 10/10] libxl/xl: Overhaul passthrough setting logic 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 , Julien Grall , Andrew Cooper , Ian Jackson , Paul Durrant , Jan Beulich , Volodymyr Babchuk Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" TElCWExfUEFTU1RIUk9VR0hfVU5LTk9XTiAoYWthICJFTkFCTEVEIiBpbiBhbiBlYXJsaWVyIHVu Y29tbWl0dGVkCnZlcnNpb24gb2YgdGhpcyBjb2RlKSBpcyBkb2luZyBkb3VibGUgZHV0eS4gIFdl IGFjdHVhbGx5IG5lZWQgYWxsIG9mCnRoZSBmb2xsb3dpbmcgdG8gYmUgc3BlY2lmaWNhYmxlOgog ICogZGVmYXVsdCAoInVuc3BlY2lmaWVkIik6IGVuYWJsZSBQVCBpZmYgd2UgaGF2ZSBkZXZpY2Vz IHRvCiAgICBwYXNzIHRocm91Z2ggc3BlY2lmaWVkIGluIHRoZSBpbml0aWFsIGNvbmZpZyBmaWxl LgogICogImVuYWJsZWQiIChhbmQgZmFpbCBpZiB0aGUgcGxhdGZvcm0gZG9lc24ndCBzdXBwb3J0 IGl0KS4KICAqICJkaXNhYmxlZCIgKGFuZCByZWplY3QgZnV0dXJlIFBUIGhvdHBsdWcpLgogICog InNoYXJlX3B0Ii8ic3luY19wdCI6IGVuYWJsZSBQVCBhbmQgc2V0IGEgc3BlY2lmaWMgUFQgbW9k ZS4KCkRlZmF1bHRpbmcgYW5kIGVycm9yIGNoZWNraW5nIHNob3VsZCBiZSBkb25lIGluIGxpYnhs LiAgU28sIHdlIG1ha2UKc2V2ZXJhbCBjaGFuZ2VzIGhlcmUuCgpXZSBpbnRyb2R1Y2UgImVuYWJs ZWQiLiAgKEFuZCB3ZSBkb2N1bWVudCAidW5zcGVjaWZpZWQiLikKCldlIG1vdmUgYWxsIG9mIHRo ZSBlcnJvciBjaGVja2luZyBhbmQgZGVmYXVsdGluZyBjb2RlIGZyb20geGwgaW50bwpsaWJ4bC4g IE5vdywgbGlieGxfX2RvbWFpbl9jb25maWdfc2V0ZGVmYXVsdCBoYXMgYWxsIG9mIHRoZSBuZWNl c3NhcnkKaW5mb3JtYXRpb24gdG8gZ2V0IHRoaXMgcmlnaHQuICBTbyB3ZSBjYW4gZG8gaXQgYWxs IHRoZXJlLiAgQ2hvb3NpbmcKdGhlIHNwZWNpZmljIG1vZGUgaXMgYXJjaC1zcGVjaWZpYy4KCldl IGNhbiBhbHNvIGFycmFuZ2UgdG8gaGF2ZSBvbmx5IG9uZSBwbGFjZSBlYWNoIHdoaWNoIGNhbGN1 bGF0ZXMKKGkpIHdoZXRoZXIgcGFzc3Rocm91Z2ggbmVlZHMgdG8gYmUgZW5hYmxlZCBiZWNhdXNl IHB0IGRldmljZXMgd2VyZQpzcGVjaWZpZWQgKGlpKSB3aGV0aGVyIHB0X3NoYXJlIGNhbiBiZSB1 c2VkIChmb3IgZWFjaCBhcmNoKS4KCnhsIG5vdyBvbmx5IGhhcyB0byBwYXJzZSB0aGUgZW51bSBp biB0aGUgc2FtZSB3YXkgYXMgaXQgcGFyc2VzIGFsbApvdGhlciBlbnVtcy4KClRoaXMgY2hhbmdl IGZpeGVzIGEgcmVncmVzc2lvbiBmcm9tIGVhcmxpZXIgNC4xMy1wcmU6IHVudGlsIHJlY2VudApj aGFuZ2VzLCBwYXNzdGhyb3VnaCB3YXMgb25seSBlbmFibGVkIGJ5IGRlZmF1bHQgaWYgcGFzc3Ro cm91Z2gKZGV2aWNlcyB3ZXJlIHNwZWNpZmllZC4gIFdlIHJlc3RvcmUgdGhpcyBiZWhhdmlvdXIu CgpTaWduZWQtb2ZmLWJ5OiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4K Q0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ0M6IEp1bGll biBHcmFsbCA8anVsaWVuQHhlbi5vcmc+CkNDOiBWb2xvZHlteXIgQmFiY2h1ayA8Vm9sb2R5bXly X0JhYmNodWtAZXBhbS5jb20+CkNDOiBBbmRyZXcgQ29vcGVyIDxBbmRyZXcuQ29vcGVyM0BjaXRy aXguY29tPgpDQzogUGF1bCBEdXJyYW50IDxwZHVycmFudEBnbWFpbC5jb20+CkNDOiBKYW4gQmV1 bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgotLS0KdjM6IERyb3AgcGFyYWdyYXBoIGFib3V0IG1h c2tpbmcgYW5vdGhlciBvc3N0ZXN0IHJlZ3Jlc3Npb24sCiAgICAgYXMgdGhhdCdzIG5vdyBmaXhl ZC4KICAgIERyb3AgcmVkdW5kYW50ICJFUlJPUjoiIGluIHR3byBsb2cgbWVzc2FnZXMuCiAgICBB ZGQgYSBjb21tZW50IGFib3V0IHRoZSB3YXkgImVuYWJsZWQiIGdldHMgY2hhbmdlZCB0byBhIHNw ZWNpZmljIHZhbHVlLgogICAgU3BsaXQgcGFzc3Rocm91Z2ggbW9kZSBkZWZhdWx0aW5nIGludG8g YXJjaCBzcGVjaWZpYyBmdW5jdGlvbnMuCiAgICBPbiBBUk0sIGFsd2F5cyBjaG9vc2UgKGFuZCBp bnNpc3Qgb24pIHNoYXJlX3B0LgogICAgUmVqZWN0IHNoYXJlX3B0IGZvciBub24tSEFQIGd1ZXN0 cy4KICAgIFJlamVjdCBwYXNzdGhyb3VnaCBmb3IgUFZIIGd1ZXN0cy4KICAgIEFjdHVhbGx5IGRv Y3VtZW50ICJ1bnNwZWNpZmllZCIgb3B0aW9uIGluIHhsLmNmZyg1KQogICAgUmVuYW1lICJ1bmtu b3duIiB0byAidW5zcGVjaWZpZWQiCgp2MjogTmV3IHBhdGNoIGluIHRoaXMgdmVyc2lvbiBvZiB0 aGUgc2VyaWVzLgotLS0KIGRvY3MvbWFuL3hsLmNmZy41LnBvZC5pbiAgICB8ICA2ICsrKysKIHRv b2xzL2xpYnhsL2xpYnhsX2FyY2guaCAgICB8ICA2ICsrKysKIHRvb2xzL2xpYnhsL2xpYnhsX2Fy bS5jICAgICB8IDI0ICsrKysrKysrKysrKysrKysKIHRvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5j ICB8IDQzICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiB0b29scy9saWJ4bC9saWJ4bF90 eXBlcy5pZGwgfCAgNyArKystLQogdG9vbHMvbGlieGwvbGlieGxfeDg2LmMgICAgIHwgNDEgKysr KysrKysrKysrKysrKysrKysrKysrKysrCiB0b29scy94bC94bF9wYXJzZS5jICAgICAgICAgfCA2 NyArKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDcgZmlsZXMg Y2hhbmdlZCwgMTE2IGluc2VydGlvbnMoKyksIDc4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RvY3MvbWFuL3hsLmNmZy41LnBvZC5pbiBiL2RvY3MvbWFuL3hsLmNmZy41LnBvZC5pbgppbmRl eCA2NGJlZDMwYmNlLi43ZTIyMGQwYzIwIDEwMDY0NAotLS0gYS9kb2NzL21hbi94bC5jZmcuNS5w b2QuaW4KKysrIGIvZG9jcy9tYW4veGwuY2ZnLjUucG9kLmluCkBAIC02NjAsNiArNjYwLDEyIEBA IGluIHByZWZlcmVuY2UuIEhvd2V2ZXIsIHRoZSBhdmFpbGFiaWxpdHkgb2YgdGhpcyBvcHRpb24g aXMgaGFyZHdhcmUKIHNwZWNpZmljLiBJZiBCPHhsIGluZm8+IHJlcG9ydHMgQjx2aXJ0X2NhcHM+ IGNvbnRhaW5pbmcKIEI8aW9tbXVfaGFwX3B0X3NoYXJlPiB0aGVuIHRoaXMgb3B0aW9uIG1heSBi ZSB1c2VkLgogCis9aXRlbSBCPHVuc3BlY2lmaWVkPgorCitUaGUgZGVmYXVsdCwgd2hpY2ggY2hv b3NlcyBiZXR3ZWVuIEI8ZGlzYWJsZWQ+IGFuZCBCPGVuYWJsZWQ+CithY2NvcmRpbmcgdG8gd2hl dGhlciBwYXNzdGhyb3VnaCBkZXZpY2VzIGFyZSBlbmFibGVkIGluIHRoZSBjb25maWcKK2ZpbGUu CisKID1iYWNrCiAKID1iYWNrCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9hcmNoLmgg Yi90b29scy9saWJ4bC9saWJ4bF9hcmNoLmgKaW5kZXggZDYyNDE1OWU1My4uZWU2NjQxYjNlNiAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfYXJjaC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xp YnhsX2FyY2guaApAQCAtNzMsNiArNzMsMTIgQEAgdm9pZCBsaWJ4bF9fYXJjaF9kb21haW5fYnVp bGRfaW5mb19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2J1aWxkX2luZm8gKmJfaW5mbyk7 CiAKIF9oaWRkZW4KK2ludCBsaWJ4bF9fYXJjaF9wYXNzdGhyb3VnaF9tb2RlX3NldGRlZmF1bHQo bGlieGxfX2djICpnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmlnLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9waHlzaW5mbyAqcGh5c2luZm8p OworCitfaGlkZGVuCiBpbnQgbGlieGxfX2FyY2hfZXh0cmFfbWVtb3J5KGxpYnhsX19nYyAqZ2Ms CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2RvbWFpbl9idWlsZF9p bmZvICppbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqb3V0KTsK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2FybS5jIGIvdG9vbHMvbGlieGwvbGlieGxf YXJtLmMKaW5kZXggYmYzMWI5YjNjYS4uMmYxY2E2OTQzMSAxMDA2NDQKLS0tIGEvdG9vbHMvbGli eGwvbGlieGxfYXJtLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfYXJtLmMKQEAgLTExOTEsNiAr MTE5MSwzMCBAQCB2b2lkIGxpYnhsX19hcmNoX2RvbWFpbl9idWlsZF9pbmZvX3NldGRlZmF1bHQo bGlieGxfX2djICpnYywKICAgICBsaWJ4bF9kb21haW5fYnVpbGRfaW5mb19pbml0X3R5cGUoYl9p bmZvLCBMSUJYTF9ET01BSU5fVFlQRV9QVkgpOwogfQogCitpbnQgbGlieGxfX2FyY2hfcGFzc3Ro cm91Z2hfbW9kZV9zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZp ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGli eGxfcGh5c2luZm8gKnBoeXNpbmZvKQoreworICAgIGludCByYzsKKyAgICBsaWJ4bF9kb21haW5f Y3JlYXRlX2luZm8gKmNvbnN0IGNfaW5mbyA9ICZkX2NvbmZpZy0+Y19pbmZvOworCisgICAgaWYg KGNfaW5mby0+cGFzc3Rocm91Z2ggPT0gTElCWExfUEFTU1RIUk9VR0hfRU5BQkxFRCkgeworICAg ICAgICBjX2luZm8tPnBhc3N0aHJvdWdoID0gTElCWExfUEFTU1RIUk9VR0hfU0hBUkVfUFQ7Cisg ICAgfQorCisgICAgaWYgKGNfaW5mby0+cGFzc3Rocm91Z2ggPT0gTElCWExfUEFTU1RIUk9VR0hf U1lOQ19QVCkgeworICAgICAgICBMT0dEKEVSUk9SLCBkb21pZCwKKyAgICAgICAgICAgICAicGFz c3Rocm91Z2g9XCJzeW5jX3B0XCIgbm90IHN1cHBvcnRlZCBvbiBBUk1cbiIpOworICAgICAgICBy YyA9IEVSUk9SX0lOVkFMOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICByYyA9IDA7 Cisgb3V0OgorICAgIHJldHVybiByYzsKK30KKwogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAq IG1vZGU6IEMKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jIGIvdG9vbHMv bGlieGwvbGlieGxfY3JlYXRlLmMKaW5kZXggM2QyY2I1MmJmNy4uYmNmNDg5NmRmNiAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxf Y3JlYXRlLmMKQEAgLTU3LDE4ICs1Nyw2IEBAIGludCBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9pbmZv X3NldGRlZmF1bHQobGlieGxfX2djICpnYywKICAgICBpZiAoIWNfaW5mby0+c3NpZHJlZikKICAg ICAgICAgY19pbmZvLT5zc2lkcmVmID0gU0VDSU5JVFNJRF9ET01VOwogCi0gICAgaWYgKGluZm8t PmNhcF9odm1fZGlyZWN0aW8gJiYKLSAgICAgICAgKGNfaW5mby0+cGFzc3Rocm91Z2ggPT0gTElC WExfUEFTU1RIUk9VR0hfVU5LTk9XTikpIHsKLSAgICAgICAgY19pbmZvLT5wYXNzdGhyb3VnaCA9 ICgoY19pbmZvLT50eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX1BWKSB8fAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICFpbmZvLT5jYXBfaW9tbXVfaGFwX3B0X3NoYXJlKSA/Ci0gICAg ICAgICAgICBMSUJYTF9QQVNTVEhST1VHSF9TWU5DX1BUIDogTElCWExfUEFTU1RIUk9VR0hfU0hB UkVfUFQ7Ci0gICAgfSBlbHNlIGlmICghaW5mby0+Y2FwX2h2bV9kaXJlY3RpbykgewotICAgICAg ICBjX2luZm8tPnBhc3N0aHJvdWdoID0gTElCWExfUEFTU1RIUk9VR0hfRElTQUJMRUQ7Ci0gICAg fQotCi0gICAgLyogQW4gZXhwbGljaXQgc2V0dGluZyBzaG91bGQgbm93IGhhdmUgYmVlbiBjaG9z ZW4gKi8KLSAgICBhc3NlcnQoY19pbmZvLT5wYXNzdGhyb3VnaCAhPSBMSUJYTF9QQVNTVEhST1VH SF9VTktOT1dOKTsKLQogICAgIHJldHVybiAwOwogfQogCkBAIC01ODcsNyArNTc1LDcgQEAgaW50 IGxpYnhsX19kb21haW5fbWFrZShsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9kb21haW5fY29uZmlnICpk X2NvbmZpZywKICAgICAgICAgICAgICAgICBsaWJ4bF9kZWZib29sX3ZhbChpbmZvLT5vb3MpID8g MCA6IFhFTl9ET01DVExfQ0RGX29vc19vZmY7CiAgICAgICAgIH0KIAotICAgICAgICBhc3NlcnQo aW5mby0+cGFzc3Rocm91Z2ggIT0gTElCWExfUEFTU1RIUk9VR0hfVU5LTk9XTik7CisgICAgICAg IGFzc2VydChpbmZvLT5wYXNzdGhyb3VnaCAhPSBMSUJYTF9QQVNTVEhST1VHSF9VTlNQRUNJRklF RCk7CiAgICAgICAgIExPRyhERVRBSUwsICJwYXNzdGhyb3VnaDogJXMiLAogICAgICAgICAgICAg bGlieGxfcGFzc3Rocm91Z2hfdG9fc3RyaW5nKGluZm8tPnBhc3N0aHJvdWdoKSk7CiAKQEAgLTkw NCw2ICs4OTIsNyBAQCBpbnQgbGlieGxfX2RvbWFpbl9jb25maWdfc2V0ZGVmYXVsdChsaWJ4bF9f Z2MgKmdjLAogICAgIGxpYnhsX2N0eCAqY3R4ID0gbGlieGxfX2djX293bmVyKGdjKTsKICAgICBp bnQgcmV0OwogICAgIGJvb2wgcG9kX2VuYWJsZWQgPSBmYWxzZTsKKyAgICBsaWJ4bF9kb21haW5f Y3JlYXRlX2luZm8gKmNfaW5mbyA9ICZkX2NvbmZpZy0+Y19pbmZvOwogCiAgICAgbGlieGxfcGh5 c2luZm8gcGh5c2luZm87CiAgICAgcmV0ID0gbGlieGxfZ2V0X3BoeXNpbmZvKENUWCwgJnBoeXNp bmZvKTsKQEAgLTk3NSw2ICs5NjQsMzQgQEAgaW50IGxpYnhsX19kb21haW5fY29uZmlnX3NldGRl ZmF1bHQobGlieGxfX2djICpnYywKICAgICAgICAgZ290byBlcnJvcl9vdXQ7CiAgICAgfQogCisg ICAgYm9vbCBuZWVkX3B0ID0gZF9jb25maWctPm51bV9wY2lkZXZzIHx8IGRfY29uZmlnLT5udW1f ZHRkZXZzOworICAgIGlmIChjX2luZm8tPnBhc3N0aHJvdWdoID09IExJQlhMX1BBU1NUSFJPVUdI X1VOU1BFQ0lGSUVEKSB7CisgICAgICAgIGNfaW5mby0+cGFzc3Rocm91Z2ggPSBuZWVkX3B0Cisg ICAgICAgICAgICA/IExJQlhMX1BBU1NUSFJPVUdIX0VOQUJMRUQgOiBMSUJYTF9QQVNTVEhST1VH SF9ESVNBQkxFRDsKKyAgICB9CisKKyAgICBib29sIGlvbW11X2VuYWJsZWQgPSBwaHlzaW5mby5j YXBfaHZtX2RpcmVjdGlvOworICAgIGlmIChjX2luZm8tPnBhc3N0aHJvdWdoICE9IExJQlhMX1BB U1NUSFJPVUdIX0RJU0FCTEVEICYmICFpb21tdV9lbmFibGVkKSB7CisgICAgICAgIExPR0QoRVJS T1IsIGRvbWlkLAorICAgICAgICAgICAgICJwYXNzdGhyb3VnaCBub3Qgc3VwcG9ydGVkIG9uIHRo aXMgcGxhdGZvcm1cbiIpOworICAgICAgICByZXQgPSBFUlJPUl9JTlZBTDsKKyAgICAgICAgZ290 byBlcnJvcl9vdXQ7CisgICAgfQorCisgICAgaWYgKGNfaW5mby0+cGFzc3Rocm91Z2ggPT0gTElC WExfUEFTU1RIUk9VR0hfRElTQUJMRUQgJiYgbmVlZF9wdCkgeworICAgICAgICBMT0dEKEVSUk9S LCBkb21pZCwKKyAgICAgICAgICAgICAicGFzc3Rocm91Z2ggZGlzYWJsZWQgYnV0IGRldmljZXMg YXJlIHNwZWNpZmllZCIpOworICAgICAgICByZXQgPSBFUlJPUl9JTlZBTDsKKyAgICAgICAgZ290 byBlcnJvcl9vdXQ7CisgICAgfQorCisgICAgcmV0ID0gbGlieGxfX2FyY2hfcGFzc3Rocm91Z2hf bW9kZV9zZXRkZWZhdWx0KGdjLGRvbWlkLGRfY29uZmlnLCZwaHlzaW5mbyk7CisgICAgaWYgKHJl dCkgZ290byBlcnJvcl9vdXQ7CisKKyAgICAvKiBBbiBleHBsaWNpdCBzZXR0aW5nIHNob3VsZCBu b3cgaGF2ZSBiZWVuIGNob3NlbiAqLworICAgIGFzc2VydChjX2luZm8tPnBhc3N0aHJvdWdoICE9 IExJQlhMX1BBU1NUSFJPVUdIX1VOU1BFQ0lGSUVEKTsKKyAgICBhc3NlcnQoY19pbmZvLT5wYXNz dGhyb3VnaCAhPSBMSUJYTF9QQVNTVEhST1VHSF9FTkFCTEVEKTsKKwogICAgIC8qIElmIHRhcmdl dF9tZW1rYiBpcyBzbWFsbGVyIHRoYW4gbWF4X21lbWtiLCB0aGUgc3Vic2VxdWVudCBjYWxsCiAg ICAgICogdG8gbGlieGMgd2hlbiBidWlsZGluZyBIVk0gZG9tYWluIHdpbGwgZW5hYmxlIFBvRCBt b2RlLgogICAgICAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsIGIv dG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCmluZGV4IDNhYzk0OTRiODAuLjJjYjVhODZiNjAg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAorKysgYi90b29scy9saWJ4 bC9saWJ4bF90eXBlcy5pZGwKQEAgLTI2NCwxMCArMjY0LDExIEBAIGxpYnhsX3ZrYl9iYWNrZW5k ID0gRW51bWVyYXRpb24oInZrYl9iYWNrZW5kIiwgWwogICAgIF0pCiAKIGxpYnhsX3Bhc3N0aHJv dWdoID0gRW51bWVyYXRpb24oInBhc3N0aHJvdWdoIiwgWwotICAgICgwLCAidW5rbm93biIpLAor ICAgICgwLCAidW5zcGVjaWZpZWQiKSwKICAgICAoMSwgImRpc2FibGVkIiksCi0gICAgKDIsICJz eW5jX3B0IiksCi0gICAgKDMsICJzaGFyZV9wdCIpLAorICAgICgyLCAiZW5hYmxlZCIpLCAjIGJl Y29tZXMge3N5bmMsc2hhcmV9X3B0IG9uY2UgZGVmYXVsdHMgYXJlIGV2YWx1YXRlZAorICAgICgz LCAic3luY19wdCIpLAorICAgICg0LCAic2hhcmVfcHQiKSwKICAgICBdKQogCiAjCmRpZmYgLS1n aXQgYS90b29scy9saWJ4bC9saWJ4bF94ODYuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3g4Ni5jCmlu ZGV4IGMwZjg4YTdlYWEuLjIyNmI3MTJjYmQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhs X3g4Ni5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3g4Ni5jCkBAIC02MzEsNiArNjMxLDQ3IEBA IHZvaWQgbGlieGxfX2FyY2hfZG9tYWluX2J1aWxkX2luZm9fc2V0ZGVmYXVsdChsaWJ4bF9fZ2Mg KmdjLAogICAgIGxpYnhsX2RlZmJvb2xfc2V0ZGVmYXVsdCgmYl9pbmZvLT5hY3BpLCB0cnVlKTsK IH0KIAoraW50IGxpYnhsX19hcmNoX3Bhc3N0aHJvdWdoX21vZGVfc2V0ZGVmYXVsdChsaWJ4bF9f Z2MgKmdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfZG9tYWluX2NvbmZpZyAqZF9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX3BoeXNpbmZvICpwaHlzaW5mbykKK3sKKyAg ICBpbnQgcmM7CisgICAgbGlieGxfZG9tYWluX2NyZWF0ZV9pbmZvICpjb25zdCBjX2luZm8gPSAm ZF9jb25maWctPmNfaW5mbzsKKworICAgIGlmIChjX2luZm8tPnBhc3N0aHJvdWdoICE9IExJQlhM X1BBU1NUSFJPVUdIX0RJU0FCTEVEICYmCisgICAgICAgIGNfaW5mby0+dHlwZSA9PSBMSUJYTF9E T01BSU5fVFlQRV9QVkgpIHsKKyAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsCisgICAgICAgICAg ICAgInBhc3N0aHJvdWdoIG5vdCB5ZXQgc3VwcG9ydGVkIGZvciB4ODYgUFZIIGd1ZXN0c1xuIik7 CisgICAgICAgIHJjID0gRVJST1JfSU5WQUw7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKwor ICAgIGNvbnN0IGNoYXIgKndoeW5vdF9wdF9zaGFyZSA9CisgICAgICAgIGNfaW5mby0+dHlwZSA9 PSBMSUJYTF9ET01BSU5fVFlQRV9QViA/ICJub3QgdmFsaWQgZm9yIFBWIGRvbWFpbiIgOgorICAg ICAgICAhcGh5c2luZm8tPmNhcF9pb21tdV9oYXBfcHRfc2hhcmUgPyAibm90IHN1cHBvcnRlZCBv biB0aGlzIHBsYXRmb3JtIiA6CisgICAgICAgICFsaWJ4bF9kZWZib29sX3ZhbChkX2NvbmZpZy0+ Y19pbmZvLmhhcCkgPyJvbmx5IHZhbGlkIGZvciBIQVAgZ3Vlc3RzIjoKKyAgICAgICAgTlVMTDsK KworICAgIGlmIChjX2luZm8tPnBhc3N0aHJvdWdoID09IExJQlhMX1BBU1NUSFJPVUdIX0VOQUJM RUQpIHsKKyAgICAgICAgY19pbmZvLT5wYXNzdGhyb3VnaCA9IHdoeW5vdF9wdF9zaGFyZQorICAg ICAgICAgICAgPyBMSUJYTF9QQVNTVEhST1VHSF9TWU5DX1BUIDogTElCWExfUEFTU1RIUk9VR0hf U0hBUkVfUFQ7CisgICAgfQorCisgICAgaWYgKGNfaW5mby0+cGFzc3Rocm91Z2ggPT0gTElCWExf UEFTU1RIUk9VR0hfU0hBUkVfUFQgJiYgd2h5bm90X3B0X3NoYXJlKSB7CisgICAgICAgIExPR0Qo RVJST1IsIGRvbWlkLAorICAgICAgICAgICAgICJwYXNzdGhyb3VnaD1cInNoYXJlX3B0XCIgJXNc biIsCisgICAgICAgICAgICAgd2h5bm90X3B0X3NoYXJlKTsKKyAgICAgICAgcmMgPSBFUlJPUl9J TlZBTDsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgcmMgPSAwOworIG91dDoKKyAg ICByZXR1cm4gcmM7Cit9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CisKIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQgYS90b29s cy94bC94bF9wYXJzZS5jIGIvdG9vbHMveGwveGxfcGFyc2UuYwppbmRleCA3OTg3MWMyMmQwLi4x MTJmOGVlMDI2IDEwMDY0NAotLS0gYS90b29scy94bC94bF9wYXJzZS5jCisrKyBiL3Rvb2xzL3hs L3hsX3BhcnNlLmMKQEAgLTEyMjIsNyArMTIyMiw2IEBAIHZvaWQgcGFyc2VfY29uZmlnX2RhdGEo Y29uc3QgY2hhciAqY29uZmlnX3NvdXJjZSwKICAgICBpbnQgcGNpX3NlaXplID0gMDsKICAgICBp bnQgaSwgZTsKICAgICBjaGFyICprZXJuZWxfYmFzZW5hbWU7Ci0gICAgYm9vbCBpb21tdV9lbmFi bGVkLCBpb21tdV9oYXBfcHRfc2hhcmU7CiAKICAgICBsaWJ4bF9kb21haW5fY3JlYXRlX2luZm8g KmNfaW5mbyA9ICZkX2NvbmZpZy0+Y19pbmZvOwogICAgIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZv ICpiX2luZm8gPSAmZF9jb25maWctPmJfaW5mbzsKQEAgLTEyMzQsOCArMTIzMyw2IEBAIHZvaWQg cGFyc2VfY29uZmlnX2RhdGEoY29uc3QgY2hhciAqY29uZmlnX3NvdXJjZSwKICAgICAgICAgZXhp dChFWElUX0ZBSUxVUkUpOwogICAgIH0KIAotICAgIGlvbW11X2VuYWJsZWQgPSBwaHlzaW5mby5j YXBfaHZtX2RpcmVjdGlvOwotICAgIGlvbW11X2hhcF9wdF9zaGFyZSA9IHBoeXNpbmZvLmNhcF9p b21tdV9oYXBfcHRfc2hhcmU7CiAgICAgbGlieGxfcGh5c2luZm9fZGlzcG9zZSgmcGh5c2luZm8p OwogCiAgICAgY29uZmlnPSB4bHVfY2ZnX2luaXQoc3RkZXJyLCBjb25maWdfc291cmNlKTsKQEAg LTE1MDksNjcgKzE1MDYsMTMgQEAgdm9pZCBwYXJzZV9jb25maWdfZGF0YShjb25zdCBjaGFyICpj b25maWdfc291cmNlLAogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKHhsdV9jZmdfZ2V0X3N0 cmluZyhjb25maWcsICJwYXNzdGhyb3VnaCIsICZidWYsIDApKSB7Ci0gICAgICAgIGNfaW5mby0+ cGFzc3Rocm91Z2ggPQotICAgICAgICAgICAgKGRfY29uZmlnLT5udW1fcGNpZGV2cyB8fCBkX2Nv bmZpZy0+bnVtX2R0ZGV2cykKLSAgICAgICAgICAgID8gTElCWExfUEFTU1RIUk9VR0hfVU5LTk9X TiA6IExJQlhMX1BBU1NUSFJPVUdIX0RJU0FCTEVEOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlm ICghc3RyY2FzZWNtcCgiZW5hYmxlZCIsIGJ1ZikpCi0gICAgICAgICAgICBjX2luZm8tPnBhc3N0 aHJvdWdoID0gTElCWExfUEFTU1RIUk9VR0hfVU5LTk9XTjsKLSAgICAgICAgZWxzZSB7Ci0gICAg ICAgICAgICBsaWJ4bF9wYXNzdGhyb3VnaCBvOwotCi0gICAgICAgICAgICBlID0gbGlieGxfcGFz c3Rocm91Z2hfZnJvbV9zdHJpbmcoYnVmLCAmbyk7Ci0gICAgICAgICAgICBpZiAoZSB8fCAhc3Ry Y2FzZWNtcCgidW5rbm93biIsIGJ1ZikpIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVy ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJFUlJPUjogdW5rbm93biBwYXNzdGhyb3VnaCBv cHRpb24gJyVzJ1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zik7Ci0gICAgICAgICAg ICAgICAgZXhpdCgtRVJST1JfRkFJTCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGNf aW5mby0+cGFzc3Rocm91Z2ggPSBvOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgc3dpdGNoIChj X2luZm8tPnBhc3N0aHJvdWdoKSB7Ci0gICAgY2FzZSBMSUJYTF9QQVNTVEhST1VHSF9VTktOT1dO OgotICAgICAgICAvKgotICAgICAgICAgKiBDaG9vc2UgYSBzdWl0YWJsZSBkZWZhdWx0LiBsaWJ4 bCB3b3VsZCBhbHNvIGRvIHRoaXMgYnV0Ci0gICAgICAgICAqIGNob29zaW5nIGhlcmUgYWxsb3dz IHRoZSBjb2RlIGNhbGN1bGF0aW5nICdpb21tdV9tZW1rYicKLSAgICAgICAgICogYmVsb3cgbWFr ZSBhbiBpbmZvcm1lZCBkZWNpc2lvbi4KLSAgICAgICAgICovCi0gICAgICAgIGNfaW5mby0+cGFz c3Rocm91Z2ggPQotICAgICAgICAgICAgKGNfaW5mby0+dHlwZSA9PSBMSUJYTF9ET01BSU5fVFlQ RV9QVikgfHwgIWlvbW11X2hhcF9wdF9zaGFyZQotICAgICAgICAgICAgPyBMSUJYTF9QQVNTVEhS T1VHSF9TWU5DX1BUIDogTElCWExfUEFTU1RIUk9VR0hfU0hBUkVfUFQ7Ci0gICAgICAgIGJyZWFr OwotCi0gICAgY2FzZSBMSUJYTF9QQVNTVEhST1VHSF9ESVNBQkxFRDoKLSAgICAgICAgaWYgKGRf Y29uZmlnLT5udW1fcGNpZGV2cyB8fCBkX2NvbmZpZy0+bnVtX2R0ZGV2cykgeworICAgIGlmICgh eGx1X2NmZ19nZXRfc3RyaW5nKGNvbmZpZywgInBhc3N0aHJvdWdoIiwgJmJ1ZiwgMCkpIHsKKyAg ICAgICAgaWYgKGxpYnhsX3Bhc3N0aHJvdWdoX2Zyb21fc3RyaW5nKGJ1ZiwgJmNfaW5mby0+cGFz c3Rocm91Z2gpKSB7CiAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKLSAgICAgICAgICAgICAg ICAgICAgIkVSUk9SOiBwYXNzdGhyb3VnaCBkaXNhYmxlZCBidXQgZGV2aWNlcyBhcmUgc3BlY2lm aWVkXG4iKTsKLSAgICAgICAgICAgIGV4aXQoLUVSUk9SX0ZBSUwpOwotICAgICAgICB9Ci0gICAg ICAgIGJyZWFrOwotICAgIGNhc2UgTElCWExfUEFTU1RIUk9VR0hfU0hBUkVfUFQ6Ci0gICAgICAg IGlmIChjX2luZm8tPnR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfUFYpIHsKLSAgICAgICAgICAg IGZwcmludGYoc3RkZXJyLAotICAgICAgICAgICAgICAgICAgICAiRVJST1I6IHBhc3N0aHJvdWdo PVwic2hhcmVfcHRcIiBub3QgdmFsaWQgZm9yIFBWIGRvbWFpblxuIik7Ci0gICAgICAgICAgICBl eGl0KC1FUlJPUl9GQUlMKTsKLSAgICAgICAgfSBlbHNlIGlmICghaW9tbXVfaGFwX3B0X3NoYXJl KSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKLSAgICAgICAgICAgICAgICAgICAgIkVS Uk9SOiBwYXNzdGhyb3VnaD1cInNoYXJlX3B0XCIgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRm b3JtXG4iKTsKLSAgICAgICAgICAgIGV4aXQoLUVSUk9SX0ZBSUwpOworICAgICAgICAgICAgICAg ICAgICAiRVJST1I6IHVua25vd24gcGFzc3Rocm91Z2ggb3B0aW9uICclcydcbiIsCisgICAgICAg ICAgICAgICAgICAgIGJ1Zik7CisgICAgICAgICAgICBleGl0KDEpOwogICAgICAgICB9Ci0gICAg ICAgIGJyZWFrOwotICAgIGNhc2UgTElCWExfUEFTU1RIUk9VR0hfU1lOQ19QVDoKLSAgICAgICAg YnJlYWs7Ci0gICAgfQotCi0gICAgaWYgKChjX2luZm8tPnBhc3N0aHJvdWdoICE9IExJQlhMX1BB U1NUSFJPVUdIX0RJU0FCTEVEKSAmJgotICAgICAgICAhaW9tbXVfZW5hYmxlZCkgewotICAgICAg ICBmcHJpbnRmKHN0ZGVyciwKLSAgICAgICAgICAgICAgICAiRVJST1I6IHBhc3N0aHJvdWdoIG5v dCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybVxuIik7Ci0gICAgICAgIGV4aXQoLUVSUk9SX0ZB SUwpOwogICAgIH0KIAogICAgIGlmICgheGx1X2NmZ19nZXRfbG9uZyhjb25maWcsICJzaGFkb3df bWVtb3J5IiwgJmwsIDApKQotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xp c3RpbmZvL3hlbi1kZXZlbA==