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, 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 45017C7618E for ; Mon, 29 Jul 2019 12:12:40 +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 1B35B206B8 for ; Mon, 29 Jul 2019 12:12:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1B35B206B8 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=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 1hs4Vo-0006lE-Ma; Mon, 29 Jul 2019 12:12:20 +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 1hs4Vn-0006jK-H0 for xen-devel@lists.xenproject.org; Mon, 29 Jul 2019 12:12:19 +0000 X-Inumbo-ID: 1b64c5d2-b1fa-11e9-803b-2f6df10fe840 Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 1b64c5d2-b1fa-11e9-803b-2f6df10fe840; Mon, 29 Jul 2019 12:12:17 +0000 (UTC) Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=andrew.cooper3@citrix.com; spf=Pass smtp.mailfrom=Andrew.Cooper3@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender authenticity information available from domain of andrew.cooper3@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="andrew.cooper3@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa6.hc3370-68.iphmx.com: domain of Andrew.Cooper3@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="Andrew.Cooper3@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 ~all" Received-SPF: None (esa6.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=esa6.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: f4kfPd8Kk9C2lKqQCRUk0/B/lVw3mswK6V/oTmKlQUerF1nbg4ldRqPi/owYtXqWBR9ol5rjsa uN+B7jhfva4Q3S7Y8W1XX4MUJmuhFPjhVFsNLl77GDGfc8qwnLUx4WFfaFYdb4LB3BTUHECOwf 6Pvc9nKU3rMTAkmdiJSsE5NjZfBdqIxp638QmYr4IRAcXS+KxLHTjFxfTnmLMFpYfYFo/vy8rb MW7MqClffGt/3ztFOw43sAtlcIX+5JYjx1pjrycE1L1m0SL7TOxufK/zlGbmXXmwg0EwGsohXz nJ8= X-SBRS: 2.7 X-MesageID: 3672670 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,322,1559534400"; d="scan'208";a="3672670" From: Andrew Cooper To: Xen-devel Date: Mon, 29 Jul 2019 13:12:01 +0100 Message-ID: <20190729121204.13559-8-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190729121204.13559-1-andrew.cooper3@citrix.com> References: <20190729121204.13559-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v3 07/10] xen/nodemask: Drop nodes_{setall, clear}() and improve the initialisers 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 , Wei Liu , Andrew Cooper , Julien Grall , Jan Beulich , Volodymyr Babchuk , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" VGhlcmUgaXMgbm8gbmVlZCB0byB1c2UgcnVudGltZSB2YXJpYWJsZS1sZW5ndGggY2xlYXJpbmcg d2hlbiBNQVhfTlVNTk9ERVMgaXMKa25vd24gdG8gdGhlIGNvbXBpbGVyLiAgRHJvcCB0aGVzZSBm dW5jdGlvbnMgYW5kIHVzZSB0aGUgaW5pdGlhbGlzZXJzIGluc3RlYWQuCgpudW1hX2luaXRtZW1f aW5pdCgpIG9wZW5jb2RlcyBub2RlbWFza19vZl9ub2RlKCksIGJ1dCBpdHMgaW1wbGVtZW50aW9u IGlzCnN0aWxsIHBvb3IsIHNvIHJlcGxhY2UgaXQgd2l0aCBOT0RFTUFTS19PRigpIHdoaWNoIGlz IGNhbGN1bGF0ZWQgYXQgY29tcGlsZQp0aW1lLCBhbmQgd2l0aG91dCB0aGUgdXNlIG9mIGEgbG9j a2VkIHNldF9iaXQoKSBvcGVyYXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBz dXNlLmNvbT4KQ0M6IFdlaSBMaXUgPHdsQHhlbi5vcmc+CkNDOiBSb2dlciBQYXUgTW9ubsOpIDxy b2dlci5wYXVAY2l0cml4LmNvbT4KQ0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlA a2VybmVsLm9yZz4KQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNDOiBW b2xvZHlteXIgQmFiY2h1ayA8Vm9sb2R5bXlyX0JhYmNodWtAZXBhbS5jb20+Cgp2MzoKICogTmV3 Ci0tLQogeGVuL2FyY2gveDg2L2RvbTBfYnVpbGQuYyAgfCAgMiArLQogeGVuL2FyY2gveDg2L251 bWEuYyAgICAgICAgfCAgMyArLQogeGVuL2NvbW1vbi9kb21haW4uYyAgICAgICAgfCAgNCArLS0K IHhlbi9pbmNsdWRlL3hlbi9ub2RlbWFzay5oIHwgODUgKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCsp LCA1OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tMF9idWlsZC5j IGIveGVuL2FyY2gveDg2L2RvbTBfYnVpbGQuYwppbmRleCBjNjk1NzA5MjBjLi4wNjUwMGM4N2M2 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tMF9idWlsZC5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9kb20wX2J1aWxkLmMKQEAgLTIzMSw3ICsyMzEsNyBAQCB1bnNpZ25lZCBpbnQgX19pbml0IGRv bTBfbWF4X3ZjcHVzKHZvaWQpCiAKICAgICBpZiAoIHB2X3NoaW0gKQogICAgIHsKLSAgICAgICAg bm9kZXNfc2V0YWxsKGRvbTBfbm9kZXMpOworICAgICAgICBkb20wX25vZGVzID0gTk9ERU1BU0tf QUxMOwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIFdoZW4gYm9vdGluZyBpbiBzaGltIG1vZGUg QVBzIGFyZSBub3Qgc3RhcnRlZCB1bnRpbCB0aGUgZ3Vlc3QgYnJpbmdzCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvbnVtYS5jIGIveGVuL2FyY2gveDg2L251bWEuYwppbmRleCA3ZTFmNTYzMDEy Li43NDczZjgzYjdiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbnVtYS5jCisrKyBiL3hlbi9h cmNoL3g4Ni9udW1hLmMKQEAgLTI2OSw4ICsyNjksNyBAQCB2b2lkIF9faW5pdCBudW1hX2luaXRt ZW1faW5pdCh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBlbmRfcGZuKQog ICAgIC8qIHNldHVwIGR1bW15IG5vZGUgY292ZXJpbmcgYWxsIG1lbW9yeSAqLwogICAgIG1lbW5v ZGVfc2hpZnQgPSBCSVRTX1BFUl9MT05HIC0gMTsKICAgICBtZW1ub2RlbWFwID0gX21lbW5vZGVt YXA7Ci0gICAgbm9kZXNfY2xlYXIobm9kZV9vbmxpbmVfbWFwKTsKLSAgICBub2RlX3NldF9vbmxp bmUoMCk7CisgICAgbm9kZV9vbmxpbmVfbWFwID0gTk9ERU1BU0tfT0YoMCk7CiAgICAgZm9yICgg aSA9IDA7IGkgPCBucl9jcHVfaWRzOyBpKysgKQogICAgICAgICBudW1hX3NldF9ub2RlKGksIDAp OwogICAgIGNwdW1hc2tfY29weSgmbm9kZV90b19jcHVtYXNrWzBdLCBjcHVtYXNrX29mKDApKTsK ZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZG9tYWluLmMgYi94ZW4vY29tbW9uL2RvbWFpbi5jCmlu ZGV4IGU4ZTg1MDc5NmUuLjExNTY1YTY0YjMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZG9tYWlu LmMKKysrIGIveGVuL2NvbW1vbi9kb21haW4uYwpAQCAtMzg0LDcgKzM4NCw3IEBAIHN0cnVjdCBk b21haW4gKmRvbWFpbl9jcmVhdGUoZG9taWRfdCBkb21pZCwKICAgICBJTklUX1BBR0VfTElTVF9I RUFEKCZkLT54ZW5wYWdlX2xpc3QpOwogCiAgICAgc3Bpbl9sb2NrX2luaXQoJmQtPm5vZGVfYWZm aW5pdHlfbG9jayk7Ci0gICAgZC0+bm9kZV9hZmZpbml0eSA9IE5PREVfTUFTS19BTEw7CisgICAg ZC0+bm9kZV9hZmZpbml0eSA9IE5PREVNQVNLX0FMTDsKICAgICBkLT5hdXRvX25vZGVfYWZmaW5p dHkgPSAxOwogCiAgICAgc3Bpbl9sb2NrX2luaXQoJmQtPnNodXRkb3duX2xvY2spOwpAQCAtNjE1 LDcgKzYxNSw3IEBAIHZvaWQgZG9tYWluX3VwZGF0ZV9ub2RlX2FmZmluaXR5KHN0cnVjdCBkb21h aW4gKmQpCiAgICAgICAgIGRvbV9hZmZpbml0eSA9IGNwdW1hc2tfZW1wdHkoZG9tX2NwdW1hc2tf c29mdCkgPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tX2NwdW1hc2sgOiBkb21fY3B1 bWFza19zb2Z0OwogCi0gICAgICAgIG5vZGVzX2NsZWFyKGQtPm5vZGVfYWZmaW5pdHkpOworICAg ICAgICBkLT5ub2RlX2FmZmluaXR5ID0gTk9ERU1BU0tfTk9ORTsKICAgICAgICAgZm9yX2VhY2hf Y3B1ICggY3B1LCBkb21fYWZmaW5pdHkgKQogICAgICAgICAgICAgbm9kZV9zZXQoY3B1X3RvX25v ZGUoY3B1KSwgZC0+bm9kZV9hZmZpbml0eSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUveGVuL25vZGVtYXNrLmggYi94ZW4vaW5jbHVkZS94ZW4vbm9kZW1hc2suaAppbmRleCAxZGQ2 Yzc0NThlLi45OTMzZmVjNWM0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vbm9kZW1hc2su aAorKysgYi94ZW4vaW5jbHVkZS94ZW4vbm9kZW1hc2suaApAQCAtMTIsOCArMTIsNiBAQAogICoK ICAqIHZvaWQgbm9kZV9zZXQobm9kZSwgbWFzaykJCXR1cm4gb24gYml0ICdub2RlJyBpbiBtYXNr CiAgKiB2b2lkIG5vZGVfY2xlYXIobm9kZSwgbWFzaykJCXR1cm4gb2ZmIGJpdCAnbm9kZScgaW4g bWFzawotICogdm9pZCBub2Rlc19zZXRhbGwobWFzaykJCXNldCBhbGwgYml0cwotICogdm9pZCBu b2Rlc19jbGVhcihtYXNrKQkJY2xlYXIgYWxsIGJpdHMKICAqIGJvb2wgbm9kZW1hc2tfdGVzdChu b2RlLCBtYXNrKQl0cnVlIGlmZiBiaXQgJ25vZGUnIHNldCBpbiBtYXNrCiAgKiBpbnQgbm9kZV90 ZXN0X2FuZF9zZXQobm9kZSwgbWFzaykJdGVzdCBhbmQgc2V0IGJpdCAnbm9kZScgaW4gbWFzawog ICoKQEAgLTM2LDkgKzM0LDkgQEAKICAqIGludCBjeWNsZV9ub2RlKG5vZGUsIG1hc2spCQlOZXh0 IG5vZGUgY3ljbGluZyBmcm9tICdub2RlJywgb3IKICAqCQkJCQlNQVhfTlVNTk9ERVMKICAqCi0g KiBub2RlbWFza190IG5vZGVtYXNrX29mX25vZGUobm9kZSkJUmV0dXJuIG5vZGVtYXNrIHdpdGgg Yml0ICdub2RlJyBzZXQKLSAqIE5PREVfTUFTS19BTEwJCQlJbml0aWFsaXplciAtIGFsbCBiaXRz IHNldAotICogTk9ERV9NQVNLX05PTkUJCQlJbml0aWFsaXplciAtIG5vIGJpdHMgc2V0CisgKiBu b2RlbWFza190IE5PREVNQVNLX09GKG5vZGUpCQlJbml0aWFsaXplciAtIGJpdCAnbm9kZScgc2V0 CisgKiBOT0RFTUFTS19BTEwJCQkJSW5pdGlhbGl6ZXIgLSBhbGwgYml0cyBzZXQKKyAqIE5PREVN QVNLX05PTkUJCQlJbml0aWFsaXplciAtIG5vIGJpdHMgc2V0CiAgKiB1bnNpZ25lZCBsb25nICpu b2RlbWFza19iaXRzKG1hc2spCUFycmF5IG9mIHVuc2lnbmVkIGxvbmcncyBpbiBtYXNrCiAgKgog ICogZm9yX2VhY2hfbm9kZV9tYXNrKG5vZGUsIG1hc2spCWZvci1sb29wIG5vZGUgb3ZlciBtYXNr CkBAIC02Nyw3ICs2NSwzNCBAQCB0eXBlZGVmIHN0cnVjdCB7IERFQ0xBUkVfQklUTUFQKGJpdHMs IE1BWF9OVU1OT0RFUyk7IH0gbm9kZW1hc2tfdDsKIAogI2RlZmluZSBub2RlbWFza19iaXRzKHNy YykgKChzcmMpLT5iaXRzKQogCi1leHRlcm4gbm9kZW1hc2tfdCBfdW51c2VkX25vZGVtYXNrX2Fy Z187CisjZGVmaW5lIE5PREVNQVNLX0xBU1RfV09SRCBCSVRNQVBfTEFTVF9XT1JEX01BU0soTUFY X05VTU5PREVTKQorCisjZGVmaW5lIE5PREVNQVNLX05PTkUgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisoKG5vZGVtYXNrX3QpIHt7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg IFswIC4uLiBCSVRTX1RPX0xPTkdTKE1BWF9OVU1OT0RFUykgLSAxXSA9IDAgICAgICAgICAgICAg ICAgICAgICBcCit9fSkKKworI2lmIE1BWF9OVU1OT0RFUyA8PSBCSVRTX1BFUl9MT05HCisKKyNk ZWZpbmUgTk9ERU1BU0tfQUxMICAgICAgKChub2RlbWFza190KSB7eyBOT0RFTUFTS19MQVNUX1dP UkQgfX0pCisjZGVmaW5lIE5PREVNQVNLX09GKG5vZGUpICgobm9kZW1hc2tfdCkge3sgMVVMIDw8 IChub2RlKSB9fSkKKworI2Vsc2UgLyogTUFYX05VTU5PREVTID4gQklUU19QRVJfTE9ORyAqLwor CisjZGVmaW5lIE5PREVNQVNLX0FMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisoKG5vZGVtYXNrX3QpIHt7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFswIC4uLiBCSVRT X1RPX0xPTkdTKE1BWF9OVU1OT0RFUykgLSAyXSA9IH4wVUwsICAgICAgICAgICAgICAgICBcCisg ICAgICAgIFtCSVRTX1RPX0xPTkdTKE1BWF9OVU1OT0RFUykgLSAxXSA9IE5PREVNQVNLX0xBU1Rf V09SRCAgICAgICAgICBcCit9fSkKKworI2RlZmluZSBOT0RFTUFTS19PRihub2RlKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgIG5vZGVtYXNrX3QgbSA9IE5PREVTX05PTkU7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgIG0uYml0c1sobm9kZSkgLyBCSVRTX1BFUl9MT05HXSA9 IDFVTCA8PCAoKG5vZGUpICUgQklUU19QRVJfTE9ORyk7ICAgXAorICAgIG07ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor fSkKKworI2VuZGlmIC8qIE1BWF9OVU1OT0RFUyAqLwogCiAjZGVmaW5lIG5vZGVfc2V0KG5vZGUs IGRzdCkgX19ub2RlX3NldCgobm9kZSksICYoZHN0KSkKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX25v ZGVfc2V0KGludCBub2RlLCB2b2xhdGlsZSBub2RlbWFza190ICpkc3RwKQpAQCAtODEsMTggKzEw Niw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX25vZGVfY2xlYXIoaW50IG5vZGUsIHZvbGF0aWxl IG5vZGVtYXNrX3QgKmRzdHApCiAJY2xlYXJfYml0KG5vZGUsIGRzdHAtPmJpdHMpOwogfQogCi0j ZGVmaW5lIG5vZGVzX3NldGFsbChkc3QpIF9fbm9kZXNfc2V0YWxsKCYoZHN0KSwgTUFYX05VTU5P REVTKQotc3RhdGljIGlubGluZSB2b2lkIF9fbm9kZXNfc2V0YWxsKG5vZGVtYXNrX3QgKmRzdHAs IGludCBuYml0cykKLXsKLQliaXRtYXBfZmlsbChkc3RwLT5iaXRzLCBuYml0cyk7Ci19Ci0KLSNk ZWZpbmUgbm9kZXNfY2xlYXIoZHN0KSBfX25vZGVzX2NsZWFyKCYoZHN0KSwgTUFYX05VTU5PREVT KQotc3RhdGljIGlubGluZSB2b2lkIF9fbm9kZXNfY2xlYXIobm9kZW1hc2tfdCAqZHN0cCwgaW50 IG5iaXRzKQotewotCWJpdG1hcF96ZXJvKGRzdHAtPmJpdHMsIG5iaXRzKTsKLX0KLQogc3RhdGlj IGlubGluZSBib29sIG5vZGVtYXNrX3Rlc3QodW5zaWduZWQgaW50IG5vZGUsIGNvbnN0IG5vZGVt YXNrX3QgKmRzdCkKIHsKICAgICByZXR1cm4gdGVzdF9iaXQobm9kZSwgZHN0LT5iaXRzKTsKQEAg LTIxMywxOCArMjI2LDYgQEAgc3RhdGljIGlubGluZSBpbnQgX19sYXN0X25vZGUoY29uc3Qgbm9k ZW1hc2tfdCAqc3JjcCwgaW50IG5iaXRzKQogCXJldHVybiBwbm9kZTsKIH0KIAotI2RlZmluZSBu b2RlbWFza19vZl9ub2RlKG5vZGUpCQkJCQkJXAotKHsJCQkJCQkJCQlcCi0JdHlwZW9mKF91bnVz ZWRfbm9kZW1hc2tfYXJnXykgbTsJCQkJXAotCWlmIChzaXplb2YobSkgPT0gc2l6ZW9mKHVuc2ln bmVkIGxvbmcpKSB7CQkJXAotCQltLmJpdHNbMF0gPSAxVUw8PChub2RlKTsJCQkJXAotCX0gZWxz ZSB7CQkJCQkJCVwKLQkJbm9kZXNfY2xlYXIobSk7CQkJCQkJXAotCQlub2RlX3NldCgobm9kZSks IG0pOwkJCQkJXAotCX0JCQkJCQkJCVwKLQltOwkJCQkJCQkJXAotfSkKLQogI2RlZmluZSBjeWNs ZV9ub2RlKG4sIHNyYykgX19jeWNsZV9ub2RlKChuKSwgJihzcmMpLCBNQVhfTlVNTk9ERVMpCiBz dGF0aWMgaW5saW5lIGludCBfX2N5Y2xlX25vZGUoaW50IG4sIGNvbnN0IG5vZGVtYXNrX3QgKm1h c2twLCBpbnQgbmJpdHMpCiB7CkBAIC0yMzUsMzAgKzIzNiw2IEBAIHN0YXRpYyBpbmxpbmUgaW50 IF9fY3ljbGVfbm9kZShpbnQgbiwgY29uc3Qgbm9kZW1hc2tfdCAqbWFza3AsIGludCBuYml0cykK ICAgICByZXR1cm4gbnh0OwogfQogCi0jZGVmaW5lIE5PREVfTUFTS19MQVNUX1dPUkQgQklUTUFQ X0xBU1RfV09SRF9NQVNLKE1BWF9OVU1OT0RFUykKLQotI2lmIE1BWF9OVU1OT0RFUyA8PSBCSVRT X1BFUl9MT05HCi0KLSNkZWZpbmUgTk9ERV9NQVNLX0FMTAkJCQkJCQlcCi0oKG5vZGVtYXNrX3Qp IHsgewkJCQkJCQlcCi0JW0JJVFNfVE9fTE9OR1MoTUFYX05VTU5PREVTKS0xXSA9IE5PREVfTUFT S19MQVNUX1dPUkQJCVwKLX0gfSkKLQotI2Vsc2UKLQotI2RlZmluZSBOT0RFX01BU0tfQUxMCQkJ CQkJCVwKLSgobm9kZW1hc2tfdCkgeyB7CQkJCQkJCVwKLQlbMCAuLi4gQklUU19UT19MT05HUyhN QVhfTlVNTk9ERVMpLTJdID0gfjBVTCwJCQlcCi0JW0JJVFNfVE9fTE9OR1MoTUFYX05VTU5PREVT KS0xXSA9IE5PREVfTUFTS19MQVNUX1dPUkQJCVwKLX0gfSkKLQotI2VuZGlmCi0KLSNkZWZpbmUg Tk9ERV9NQVNLX05PTkUJCQkJCQkJXAotKChub2RlbWFza190KSB7IHsJCQkJCQkJXAotCVswIC4u LiBCSVRTX1RPX0xPTkdTKE1BWF9OVU1OT0RFUyktMV0gPSAgMFVMCQkJXAotfSB9KQotCiAjaWYg TUFYX05VTU5PREVTID4gMQogI2RlZmluZSBmb3JfZWFjaF9ub2RlX21hc2sobm9kZSwgbWFzaykJ CQlcCiAJZm9yICgobm9kZSkgPSBmaXJzdF9ub2RlKG1hc2spOwkJCVwKLS0gCjIuMTEuMAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu eGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=