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.5 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 7C0B6C3A59C for ; Fri, 16 Aug 2019 17:20:43 +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 3D8872171F for ; Fri, 16 Aug 2019 17:20:43 +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="UcinJnaQ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3D8872171F 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 1hyftg-0005R0-Qz; Fri, 16 Aug 2019 17:20:16 +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 1hyftf-0005PN-5s for xen-devel@lists.xenproject.org; Fri, 16 Aug 2019 17:20:15 +0000 X-Inumbo-ID: 1a387bde-c04a-11e9-8bb8-12813bfff9fa Received: from esa5.hc3370-68.iphmx.com (unknown [216.71.155.168]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 1a387bde-c04a-11e9-8bb8-12813bfff9fa; Fri, 16 Aug 2019 17:20:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1565976012; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nASa1Tgs+K7IIZd+K6e2f9QVbEavUGsYP+bwDscAoeI=; b=UcinJnaQbIc0hM/lRYJxiQP4WCSJtN3uZERRXWSECEGHVBaLKxY8A9ca YMnz8Hr8B4Gx2jC9sZQ2md5TyTQo5PFPc9IIZTOSkliFWawM/4nvIe1fq 0M55YO4Pa2MbxnQlroNhy2a7nA/UJ/545ADOeXzk27THWCmkDRa8sPDWh E=; Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=paul.durrant@citrix.com; spf=Pass smtp.mailfrom=Paul.Durrant@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of paul.durrant@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="Paul.Durrant@citrix.com"; x-sender="paul.durrant@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa5.hc3370-68.iphmx.com: domain of Paul.Durrant@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="Paul.Durrant@citrix.com"; x-sender="Paul.Durrant@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 (esa5.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=esa5.hc3370-68.iphmx.com; envelope-from="Paul.Durrant@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: PT3EHJqpVEBTexJy7yyB3xoyWqBOfvCSKeRgBePbrohlSYjgsZTx+RzPA4sTpQy0VerQ1J++dH ZBN+Olq3lxDB/2fS/CNq/gG+SdegeZMD5yEp2JJYdPgnZpr9y1iwOgO90FwdPsClOhsNUhLEbf vkDjESYYKJeM7PWtwINOBULwyNVK4Xmp4RURK87ej1le61bLstlccPZ9/0jlEMxEc39kWddEWU oRnuYE3Bd1HkWjuNWMcHKPomHI+2gkjoMPCP23T6e48LXPWqE4EVyrI81aX9F3h3gYHR84MDEe NtU= X-SBRS: 2.7 X-MesageID: 4531446 X-Ironport-Server: esa5.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,394,1559534400"; d="scan'208";a="4531446" From: Paul Durrant To: Date: Fri, 16 Aug 2019 18:19:59 +0100 Message-ID: <20190816172001.3905-9-paul.durrant@citrix.com> X-Mailer: git-send-email 2.20.1.2.gb21ebb671 In-Reply-To: <20190816172001.3905-1-paul.durrant@citrix.com> References: <20190816172001.3905-1-paul.durrant@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v6 08/10] remove late (on-demand) construction of IOMMU page tables 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: Petre Pircalabu , Stefano Stabellini , Razvan Cojocaru , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Tamas K Lengyel , Jan Beulich , Alexandru Isaila , 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" Tm93IHRoYXQgdGhlcmUgaXMgYSBwZXItZG9tYWluIElPTU1VIGVuYWJsZSBmbGFnLCB3aGljaCBz aG91bGQgYmUgZW5hYmxlZCBpZgphbnkgZGV2aWNlIGlzIGdvaW5nIHRvIGJlIHBhc3NlZCB0aHJv dWdoLCBzdG9wIGRlZmVycmluZyBwYWdlIHRhYmxlCmNvbnN0cnVjdGlvbiB1bnRpbCB0aGUgYXNz aWdubWVudCBpcyBkb25lLiBBbHNvIGRvbid0IHRlYXIgZG93biB0aGUgdGFibGVzCmFnYWluIHdo ZW4gdGhlIGxhc3QgZGV2aWNlIGlzIGRlLWFzc2lnbmVkOyBkZWZlciB0aGF0IHRhc2sgdW50aWwg ZG9tYWluCmRlc3RydWN0aW9uLgoKVGhpcyBhbGxvd3MgdGhlIGhhc19pb21tdV9wdCgpIGhlbHBl ciBhbmQgaW9tbXVfc3RhdHVzIGVudW1lcmF0aW9uIHRvIGJlCnJlbW92ZWQuIENhbGxzIHRvIGhh c19pb21tdV9wdCgpIGFyZSBzaW1wbHkgcmVwbGFjZWQgYnkgY2FsbHMgdG8KaXNfaW9tbXVfZW5h YmxlZCgpLiBSZW1haW5pbmcgb3Blbi1jb2RlIHRlc3RzIG9mIGlvbW11X2hhcF9wdF9zaGFyZSBj YW4gYWxzbwpiZSByZXBsYWNlZCBieSBjYWxscyB0byBpb21tdV91c2VfaGFwX3B0KCkuClRoZSBh cmNoX2lvbW11X3BvcHVsYXRlX3BhZ2VfdGFibGUoKSBhbmQgaW9tbXVfY29uc3RydWN0KCkgZnVu Y3Rpb25zIGJlY29tZQpyZWR1bmRhbnQsIGFzIGRvZXMgdGhlICdzdHJpY3QgbW9kZScgZG9tMCBw YWdlX2xpc3QgbWFwcGluZyBjb2RlIGluCmlvbW11X2h3ZG9tX2luaXQoKSwgYW5kIGlvbW11X3Rl YXJkb3duKCkgY2FuIGJlIG1hZGUgc3RhdGljIGlzIGl0cyBvbmx5CnJlbWFpbmluZyBjYWxsZXIs IGlvbW11X2RvbWFpbl9kZXN0cm95KCksIGlzIHdpdGhpbiB0aGUgc2FtZSBzb3VyY2UKbW9kdWxl LgoKQWxsIGluIGFsbCwgYWJvdXQgMjIwIGxpbmVzIG9mIGNvZGUgYXJlIHJlbW92ZWQuCgpOT1RF OiBUaGlzIHBhdGNoIHdpbGwgY2F1c2UgYSBzbWFsbCBhbW91bnQgb2YgZXh0cmEgcmVzb3VyY2Ug dG8gYmUgdXNlZAogICAgICB0byBhY2NvbW1vZGF0ZSBJT01NVSBwYWdlIHRhYmxlcyB0aGF0IG1h eSBuZXZlciBiZSB1c2VkLCBzaW5jZSB0aGUKICAgICAgcGVyLWRvbWFpbiBJT01NVSBmbGFnIGVu YWJsZSBmbGFnIGlzIGN1cnJlbnRseSBzZXQgdG8gdGhlIHZhbHVlCiAgICAgIG9mIHRoZSBnbG9i YWwgaW9tbXVfZW5hYmxlIGZsYWcuIEEgc3Vic2VxdWVudCBwYXRjaCB3aWxsIGFkZCBhbgogICAg ICBvcHRpb24gdG8gdGhlIHRvb2xzdGFjayB0byBhbGxvdyBpdCB0byBiZSB0dXJuZWQgb2ZmIGlm IHRoZXJlIGlzCiAgICAgIG5vIGludGVudGlvbiB0byBhc3NpZ24gcGFzc3Rocm91Z2ggaGFyZHdh cmUgdG8gdGhlIGRvbWFpbi4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJy YW50QGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBBbGV4YW5kcnUgSXNhaWxhIDxhaXNhaWxhQGJp dGRlZmVuZGVyLmNvbT4KLS0tCkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtl cm5lbC5vcmc+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogVm9s b2R5bXlyIEJhYmNodWsgPFZvbG9keW15cl9CYWJjaHVrQGVwYW0uY29tPgpDYzogQW5kcmV3IENv b3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPEdlb3Jn ZS5EdW5sYXBAZXUuY2l0cml4LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5j aXRyaXguY29tPgpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogS29ucmFk IFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogVGltIERlZWdhbiA8 dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3bEB4ZW4ub3JnPgpDYzogIlJvZ2VyIFBhdSBNb25u w6kiIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KQ2M6IFRhbWFzIEsgTGVuZ3llbCA8dGFtYXNAdGts ZW5neWVsLmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNv bT4KQ2M6IFJhenZhbiBDb2pvY2FydSA8cmNvam9jYXJ1QGJpdGRlZmVuZGVyLmNvbT4KQ2M6IFBl dHJlIFBpcmNhbGFidSA8cHBpcmNhbGFidUBiaXRkZWZlbmRlci5jb20+CgpQcmV2aW91c2x5IHBh cnQgb2Ygc2VyaWVzIGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC94 ZW4tZGV2ZWwvMjAxOS0wNy9tc2cwMjI2Ny5odG1sCgp2NToKIC0gTWlub3Igc3R5bGUgZml4ZXMK LS0tCiB4ZW4vYXJjaC9hcm0vcDJtLmMgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiB4ZW4v YXJjaC94ODYvZG9tMF9idWlsZC5jICAgICAgICAgICAgIHwgICAyICstCiB4ZW4vYXJjaC94ODYv aHZtL210cnIuYyAgICAgICAgICAgICAgIHwgICA1ICstCiB4ZW4vYXJjaC94ODYvbW0vbWVtX3No YXJpbmcuYyAgICAgICAgIHwgICAyICstCiB4ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMgICAgICAg ICAgICAgIHwgICAyICstCiB4ZW4vYXJjaC94ODYveDg2XzY0L21tLmMgICAgICAgICAgICAgIHwg ICAyICstCiB4ZW4vY29tbW9uL21lbW9yeS5jICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiB4 ZW4vY29tbW9uL3ZtX2V2ZW50LmMgICAgICAgICAgICAgICAgIHwgICAyICstCiB4ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9kZXZpY2VfdHJlZS5jIHwgIDExIC0tLQogeGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvaW9tbXUuYyAgICAgICB8IDEzNCArKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMgICAgICAgICB8ICAxMiAtLS0KIHhlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jICAgfCAgMTAgKy0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3g4Ni9pb21tdS5jICAgfCAgOTUgLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9h c20tYXJtL2lvbW11LmggICAgICAgICAgIHwgICAyICstCiB4ZW4vaW5jbHVkZS9hc20teDg2L2lv bW11LmggICAgICAgICAgIHwgICAyICstCiB4ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCAgICAgICAg ICAgICAgIHwgIDE2IC0tLQogeGVuL2luY2x1ZGUveGVuL3NjaGVkLmggICAgICAgICAgICAgICB8 ICAgMiAtCiAxNyBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAyNjMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3AybS5jIGIveGVuL2FyY2gvYXJtL3AybS5j CmluZGV4IDdmMTQ0MjkzMmEuLjY5MjU2NTc1N2UgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9w Mm0uYworKysgYi94ZW4vYXJjaC9hcm0vcDJtLmMKQEAgLTEwNTYsNyArMTA1Niw3IEBAIHN0YXRp YyBpbnQgX19wMm1fc2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCiAgICAgICAgICAh bWZuX2VxKGxwYWVfZ2V0X21mbigqZW50cnkpLCBscGFlX2dldF9tZm4ob3JpZ19wdGUpKSApCiAg ICAgICAgIHAybV9mcmVlX2VudHJ5KHAybSwgb3JpZ19wdGUsIGxldmVsKTsKIAotICAgIGlmICgg aGFzX2lvbW11X3B0KHAybS0+ZG9tYWluKSAmJgorICAgIGlmICggaXNfaW9tbXVfZW5hYmxlZChw Mm0tPmRvbWFpbikgJiYKICAgICAgICAgIChscGFlX2lzX3ZhbGlkKG9yaWdfcHRlKSB8fCBscGFl X2lzX3ZhbGlkKCplbnRyeSkpICkKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGludCBmbHVzaF9m bGFncyA9IDA7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tMF9idWlsZC5jIGIveGVuL2Fy Y2gveDg2L2RvbTBfYnVpbGQuYwppbmRleCBkMzgxNzg0ZWRkLi43Y2ZhYjJkYzI1IDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvZG9tMF9idWlsZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb20wX2J1 aWxkLmMKQEAgLTM2NSw3ICszNjUsNyBAQCB1bnNpZ25lZCBsb25nIF9faW5pdCBkb20wX2NvbXB1 dGVfbnJfcGFnZXMoCiAgICAgfQogCiAgICAgbmVlZF9wYWdpbmcgPSBpc19odm1fZG9tYWluKGQp ICYmCi0gICAgICAgICghaW9tbXVfaGFwX3B0X3NoYXJlIHx8ICFwYWdpbmdfbW9kZV9oYXAoZCkp OworICAgICAgICAoIWlvbW11X3VzZV9oYXBfcHQoZCkgfHwgIXBhZ2luZ19tb2RlX2hhcChkKSk7 CiAgICAgZm9yICggOyA7IG5lZWRfcGFnaW5nID0gZmFsc2UgKQogICAgIHsKICAgICAgICAgbnJf cGFnZXMgPSBnZXRfbWVtc2l6ZSgmZG9tMF9zaXplLCBhdmFpbCk7CmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvaHZtL210cnIuYyBiL3hlbi9hcmNoL3g4Ni9odm0vbXRyci5jCmluZGV4IDdjY2Q4 NWJjZWEuLjVhZDE1ZWFmZTAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vbXRyci5jCisr KyBiL3hlbi9hcmNoL3g4Ni9odm0vbXRyci5jCkBAIC03ODMsNyArNzgzLDggQEAgSFZNX1JFR0lT VEVSX1NBVkVfUkVTVE9SRShNVFJSLCBodm1fc2F2ZV9tdHJyX21zciwgaHZtX2xvYWRfbXRycl9t c3IsIDEsCiAKIHZvaWQgbWVtb3J5X3R5cGVfY2hhbmdlZChzdHJ1Y3QgZG9tYWluICpkKQogewot ICAgIGlmICggKGhhc19pb21tdV9wdChkKSB8fCBjYWNoZV9mbHVzaF9wZXJtaXR0ZWQoZCkpICYm IGQtPnZjcHUgJiYgZC0+dmNwdVswXSApCisgICAgaWYgKCAoaXNfaW9tbXVfZW5hYmxlZChkKSB8 fCBjYWNoZV9mbHVzaF9wZXJtaXR0ZWQoZCkpICYmCisgICAgICAgICBkLT52Y3B1ICYmIGQtPnZj cHVbMF0gKQogICAgIHsKICAgICAgICAgcDJtX21lbW9yeV90eXBlX2NoYW5nZWQoZCk7CiAgICAg ICAgIGZsdXNoX2FsbChGTFVTSF9DQUNIRSk7CkBAIC04MzEsNyArODMyLDcgQEAgaW50IGVwdGVf Z2V0X2VudHJ5X2VtdChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwgbWZuX3Qg bWZuLAogICAgICAgICByZXR1cm4gTVRSUl9UWVBFX1VOQ0FDSEFCTEU7CiAgICAgfQogCi0gICAg aWYgKCAhaGFzX2lvbW11X3B0KGQpICYmICFjYWNoZV9mbHVzaF9wZXJtaXR0ZWQoZCkgKQorICAg IGlmICggIWlzX2lvbW11X2VuYWJsZWQoZCkgJiYgIWNhY2hlX2ZsdXNoX3Blcm1pdHRlZChkKSAp CiAgICAgewogICAgICAgICAqaXBhdCA9IDE7CiAgICAgICAgIHJldHVybiBNVFJSX1RZUEVfV1JC QUNLOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL21lbV9zaGFyaW5nLmMgYi94ZW4vYXJj aC94ODYvbW0vbWVtX3NoYXJpbmcuYwppbmRleCBhNWZlODllMzM5Li5lZmI4ODIxNzY4IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vbWVtX3NoYXJpbmcuYworKysgYi94ZW4vYXJjaC94ODYv bW0vbWVtX3NoYXJpbmcuYwpAQCAtMTY2NCw3ICsxNjY0LDcgQEAgaW50IG1lbV9zaGFyaW5nX2Rv bWN0bChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2RvbWN0bF9tZW1fc2hhcmluZ19vcCAq bWVjKQogICAgICAgICBjYXNlIFhFTl9ET01DVExfTUVNX1NIQVJJTkdfQ09OVFJPTDoKICAgICAg ICAgewogICAgICAgICAgICAgcmMgPSAwOwotICAgICAgICAgICAgaWYgKCB1bmxpa2VseShoYXNf aW9tbXVfcHQoZCkgJiYgbWVjLT51LmVuYWJsZSkgKQorICAgICAgICAgICAgaWYgKCB1bmxpa2Vs eShpc19pb21tdV9lbmFibGVkKGQpICYmIG1lYy0+dS5lbmFibGUpICkKICAgICAgICAgICAgICAg ICByYyA9IC1FWERFVjsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBkLT5hcmNo Lmh2bS5tZW1fc2hhcmluZ19lbmFibGVkID0gbWVjLT51LmVuYWJsZTsKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9tbS9wYWdpbmcuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wYWdpbmcuYwppbmRleCA2 OWFhMjI4ZTQ2Li5kOWE1MmM0ZGI0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcGFnaW5n LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3BhZ2luZy5jCkBAIC0yMTMsNyArMjEzLDcgQEAgaW50 IHBhZ2luZ19sb2dfZGlydHlfZW5hYmxlKHN0cnVjdCBkb21haW4gKmQsIGJvb2xfdCBsb2dfZ2xv YmFsKQogewogICAgIGludCByZXQ7CiAKLSAgICBpZiAoIGhhc19pb21tdV9wdChkKSAmJiBsb2df Z2xvYmFsICkKKyAgICBpZiAoIGlzX2lvbW11X2VuYWJsZWQoZCkgJiYgbG9nX2dsb2JhbCApCiAg ICAgewogICAgICAgICAvKgogICAgICAgICAgKiBSZWZ1c2UgdG8gdHVybiBvbiBnbG9iYWwgbG9n LWRpcnR5IG1vZGUKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYyBiL3hlbi9h cmNoL3g4Ni94ODZfNjQvbW0uYwppbmRleCAxOTE5Y2FlMThiLi44MjdiM2Y1ZTI3IDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9t bS5jCkBAIC0xNDMzLDcgKzE0MzMsNyBAQCBpbnQgbWVtb3J5X2FkZCh1bnNpZ25lZCBsb25nIHNw Zm4sIHVuc2lnbmVkIGxvbmcgZXBmbiwgdW5zaWduZWQgaW50IHB4bSkKICAgICAgKiBzaGFyZWQg b3IgYmVpbmcga2VwdCBpbiBzeW5jIHRoZW4gbmV3bHkgYWRkZWQgbWVtb3J5IG5lZWRzIHRvIGJl CiAgICAgICogbWFwcGVkIGhlcmUuCiAgICAgICovCi0gICAgaWYgKCBoYXNfaW9tbXVfcHQoaGFy ZHdhcmVfZG9tYWluKSAmJgorICAgIGlmICggaXNfaW9tbXVfZW5hYmxlZChoYXJkd2FyZV9kb21h aW4pICYmCiAgICAgICAgICAhaW9tbXVfdXNlX2hhcF9wdChoYXJkd2FyZV9kb21haW4pICYmCiAg ICAgICAgICAhbmVlZF9pb21tdV9wdF9zeW5jKGhhcmR3YXJlX2RvbWFpbikgKQogICAgIHsKZGlm ZiAtLWdpdCBhL3hlbi9jb21tb24vbWVtb3J5LmMgYi94ZW4vY29tbW9uL21lbW9yeS5jCmluZGV4 IGQ5YjM1YTYwOGMuLjcxNDQ1YzJmNTMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vbWVtb3J5LmMK KysrIGIveGVuL2NvbW1vbi9tZW1vcnkuYwpAQCAtODIzLDcgKzgyMyw3IEBAIGludCB4ZW5tZW1f YWRkX3RvX3BoeXNtYXAoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9hZGRfdG9fcGh5c21h cCAqeGF0cCwKICAgICB4YXRwLT5ncGZuICs9IHN0YXJ0OwogICAgIHhhdHAtPnNpemUgLT0gc3Rh cnQ7CiAKLSAgICBpZiAoIGhhc19pb21tdV9wdChkKSApCisgICAgaWYgKCBpc19pb21tdV9lbmFi bGVkKGQpICkKICAgICAgICB0aGlzX2NwdShpb21tdV9kb250X2ZsdXNoX2lvdGxiKSA9IDE7CiAK ICAgICB3aGlsZSAoIHhhdHAtPnNpemUgPiBkb25lICkKQEAgLTg0NCw3ICs4NDQsNyBAQCBpbnQg eGVubWVtX2FkZF90b19waHlzbWFwKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB4ZW5fYWRkX3Rv X3BoeXNtYXAgKnhhdHAsCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIGhhc19pb21tdV9w dChkKSApCisgICAgaWYgKCBpc19pb21tdV9lbmFibGVkKGQpICkKICAgICB7CiAgICAgICAgIGlu dCByZXQ7CiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdm1fZXZlbnQuYyBiL3hlbi9jb21tb24v dm1fZXZlbnQuYwppbmRleCAyYTFjODdlNDRiLi4zYjE4MTk1ZWJmIDEwMDY0NAotLS0gYS94ZW4v Y29tbW9uL3ZtX2V2ZW50LmMKKysrIGIveGVuL2NvbW1vbi92bV9ldmVudC5jCkBAIC02MzAsNyAr NjMwLDcgQEAgaW50IHZtX2V2ZW50X2RvbWN0bChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVu X2RvbWN0bF92bV9ldmVudF9vcCAqdmVjKQogCiAgICAgICAgICAgICAvKiBObyBwYWdpbmcgaWYg aW9tbXUgaXMgdXNlZCAqLwogICAgICAgICAgICAgcmMgPSAtRU1MSU5LOwotICAgICAgICAgICAg aWYgKCB1bmxpa2VseShoYXNfaW9tbXVfcHQoZCkpICkKKyAgICAgICAgICAgIGlmICggdW5saWtl bHkoaXNfaW9tbXVfZW5hYmxlZChkKSkgKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAg ICAgICAgICByYyA9IC1FWERFVjsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2RldmljZV90cmVlLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9kZXZpY2VfdHJlZS5jCmlu ZGV4IDEyZjJjNGMzZjIuLmVhOWZkNTRlM2IgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2RldmljZV90cmVlLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvZGV2aWNl X3RyZWUuYwpAQCAtNDAsMTcgKzQwLDYgQEAgaW50IGlvbW11X2Fzc2lnbl9kdF9kZXZpY2Uoc3Ry dWN0IGRvbWFpbiAqZCwgc3RydWN0IGR0X2RldmljZV9ub2RlICpkZXYpCiAgICAgaWYgKCAhbGlz dF9lbXB0eSgmZGV2LT5kb21haW5fbGlzdCkgKQogICAgICAgICBnb3RvIGZhaWw7CiAKLSAgICAv KgotICAgICAqIFRoZSBod2RvbSBpcyBmb3JjZWQgdG8gdXNlIElPTU1VIGZvciBwcm90ZWN0aW5n IGFzc2lnbmVkCi0gICAgICogZGV2aWNlLiBUaGVyZWZvcmUgdGhlIElPTU1VIGRhdGEgaXMgYWxy ZWFkeSBzZXQgdXAuCi0gICAgICovCi0gICAgQVNTRVJUKCFpc19oYXJkd2FyZV9kb21haW4oZCkg fHwKLSAgICAgICAgICAgaGQtPnN0YXR1cyA9PSBJT01NVV9TVEFUVVNfaW5pdGlhbGl6ZWQpOwot Ci0gICAgcmMgPSBpb21tdV9jb25zdHJ1Y3QoZCk7Ci0gICAgaWYgKCByYyApCi0gICAgICAgIGdv dG8gZmFpbDsKLQogICAgIC8qIFRoZSBmbGFnIGZpZWxkIGRvZXNuJ3QgbWF0dGVyIHRvIERUIGRl dmljZS4gKi8KICAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPmFzc2lnbl9kZXZpY2UoZCwgMCwg ZHRfdG9fZGV2KGRldiksIDApOwogCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwppbmRleCAyN2M3NWUw Nzg2Li5kYzdiNzVmYWI2IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21t dS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTE0Niw2ICsxNDYs MTcgQEAgc3RhdGljIGludCBfX2luaXQgcGFyc2VfZG9tMF9pb21tdV9wYXJhbShjb25zdCBjaGFy ICpzKQogfQogY3VzdG9tX3BhcmFtKCJkb20wLWlvbW11IiwgcGFyc2VfZG9tMF9pb21tdV9wYXJh bSk7CiAKK3N0YXRpYyB2b2lkIF9faHdkb21faW5pdCBjaGVja19od2RvbV9yZXFzKHN0cnVjdCBk b21haW4gKmQpCit7CisgICAgaWYgKCBpb21tdV9od2RvbV9ub25lIHx8ICFwYWdpbmdfbW9kZV90 cmFuc2xhdGUoZCkgKQorICAgICAgICByZXR1cm47CisKKyAgICBhcmNoX2lvbW11X2NoZWNrX2F1 dG90cmFuc2xhdGVkX2h3ZG9tKGQpOworCisgICAgaW9tbXVfaHdkb21fcGFzc3Rocm91Z2ggPSBm YWxzZTsKKyAgICBpb21tdV9od2RvbV9zdHJpY3QgPSB0cnVlOworfQorCiBpbnQgaW9tbXVfZG9t YWluX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpo ZCA9IGRvbV9pb21tdShkKTsKQEAgLTE1OSwxMjkgKzE3MCw0NCBAQCBpbnQgaW9tbXVfZG9tYWlu X2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgcmV0dXJuIHJldDsKIAogICAgIGhkLT5w bGF0Zm9ybV9vcHMgPSBpb21tdV9nZXRfb3BzKCk7Ci0gICAgcmV0dXJuIGhkLT5wbGF0Zm9ybV9v cHMtPmluaXQoZCk7Ci19CisgICAgcmV0ID0gaGQtPnBsYXRmb3JtX29wcy0+aW5pdChkKTsKKyAg ICBpZiAoIHJldCApCisgICAgICAgIHJldHVybiByZXQ7CiAKLXN0YXRpYyB2b2lkIF9faHdkb21f aW5pdCBjaGVja19od2RvbV9yZXFzKHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAgaWYgKCBpb21t dV9od2RvbV9ub25lIHx8ICFwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQotICAgICAgICByZXR1 cm47CisgICAgLyoKKyAgICAgKiBOQjogJ3JlbGF4ZWQnIGgvdyBkb21haW5zIGRvbid0IG5lZWQg dGhlIElPTU1VIG1hcHBpbmdzIHRvIGJlIGtlcHQKKyAgICAgKiAgICAgaW4tc3luYyB3aXRoIHRo ZWlyIGFzc2lnbmVkIHBhZ2VzIGJlY2F1c2UgYWxsIGhvc3QgUkFNIHdpbGwgYmUKKyAgICAgKiAg ICAgbWFwcGVkIGR1cmluZyBod2RvbV9pbml0KCkuCisgICAgICovCisgICAgaWYgKCBpc19oYXJk d2FyZV9kb21haW4oZCkgKQorICAgICAgICBjaGVja19od2RvbV9yZXFzKGQpOyAvKiBtYXkgbW9k aWZ5IGlvbW11X2h3ZG9tX3N0cmljdCAqLwogCi0gICAgYXJjaF9pb21tdV9jaGVja19hdXRvdHJh bnNsYXRlZF9od2RvbShkKTsKKyAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgfHwgaW9t bXVfaHdkb21fc3RyaWN0ICkKKyAgICAgICAgaGQtPm5lZWRfc3luYyA9ICFpb21tdV91c2VfaGFw X3B0KGQpOwogCi0gICAgaW9tbXVfaHdkb21fcGFzc3Rocm91Z2ggPSBmYWxzZTsKLSAgICBpb21t dV9od2RvbV9zdHJpY3QgPSB0cnVlOworICAgIHJldHVybiAwOwogfQogCiB2b2lkIF9faHdkb21f aW5pdCBpb21tdV9od2RvbV9pbml0KHN0cnVjdCBkb21haW4gKmQpCiB7CiAgICAgc3RydWN0IGRv bWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CiAKLSAgICBjaGVja19od2RvbV9yZXFzKGQp OwotCiAgICAgaWYgKCAhaXNfaW9tbXVfZW5hYmxlZChkKSApCiAgICAgICAgIHJldHVybjsKIAog ICAgIHJlZ2lzdGVyX2tleWhhbmRsZXIoJ28nLCAmaW9tbXVfZHVtcF9wMm1fdGFibGUsICJkdW1w IGlvbW11IHAybSB0YWJsZSIsIDApOwogCi0gICAgaGQtPnN0YXR1cyA9IElPTU1VX1NUQVRVU19p bml0aWFsaXppbmc7Ci0gICAgLyoKLSAgICAgKiBOQjogcmVsYXhlZCBodyBkb21haW5zIGRvbid0 IG5lZWQgc3luYyBiZWNhdXNlIGFsbCByYW0gaXMgYWxyZWFkeQotICAgICAqIG1hcHBlZCBpbiB0 aGUgaW9tbXUgcGFnZSB0YWJsZXMuCi0gICAgICovCi0gICAgaGQtPm5lZWRfc3luYyA9IGlvbW11 X2h3ZG9tX3N0cmljdCAmJiAhaW9tbXVfdXNlX2hhcF9wdChkKTsKLSAgICBpZiAoIG5lZWRfaW9t bXVfcHRfc3luYyhkKSApCi0gICAgewotICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwot ICAgICAgICB1bnNpZ25lZCBpbnQgaSA9IDAsIGZsdXNoX2ZsYWdzID0gMDsKLSAgICAgICAgaW50 IHJjID0gMDsKLQotICAgICAgICBwYWdlX2xpc3RfZm9yX2VhY2ggKCBwYWdlLCAmZC0+cGFnZV9s aXN0ICkKLSAgICAgICAgewotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBtZm5feChw YWdlX3RvX21mbihwYWdlKSk7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIGRmbiA9IG1mbl90 b19nbWZuKGQsIG1mbik7Ci0gICAgICAgICAgICB1bnNpZ25lZCBpbnQgbWFwcGluZyA9IElPTU1V Rl9yZWFkYWJsZTsKLSAgICAgICAgICAgIGludCByZXQ7Ci0KLSAgICAgICAgICAgIGlmICggKChw YWdlLT51LmludXNlLnR5cGVfaW5mbyAmIFBHVF9jb3VudF9tYXNrKSA9PSAwKSB8fAotICAgICAg ICAgICAgICAgICAoKHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvICYgUEdUX3R5cGVfbWFzaykKLSAg ICAgICAgICAgICAgICAgID09IFBHVF93cml0YWJsZV9wYWdlKSApCi0gICAgICAgICAgICAgICAg bWFwcGluZyB8PSBJT01NVUZfd3JpdGFibGU7Ci0KLSAgICAgICAgICAgIHJldCA9IGlvbW11X21h cChkLCBfZGZuKGRmbiksIF9tZm4obWZuKSwgMCwgbWFwcGluZywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmZmx1c2hfZmxhZ3MpOwotCi0gICAgICAgICAgICBpZiAoICFyYyApCi0gICAg ICAgICAgICAgICAgcmMgPSByZXQ7Ci0KLSAgICAgICAgICAgIGlmICggIShpKysgJiAweGZmZmZm KSApCi0gICAgICAgICAgICAgICAgcHJvY2Vzc19wZW5kaW5nX3NvZnRpcnFzKCk7Ci0gICAgICAg IH0KLQotICAgICAgICAvKiBVc2Ugd2hpbGUtYnJlYWsgdG8gYXZvaWQgY29tcGlsZXIgd2Fybmlu ZyAqLwotICAgICAgICB3aGlsZSAoIGlvbW11X2lvdGxiX2ZsdXNoX2FsbChkLCBmbHVzaF9mbGFn cykgKQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgaWYgKCByYyApCi0gICAgICAgICAg ICBwcmludGsoWEVOTE9HX1dBUk5JTkcgImQlZDogSU9NTVUgbWFwcGluZyBmYWlsZWQ6ICVkXG4i LAotICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcmMpOwotICAgIH0KLQogICAgIGhk LT5wbGF0Zm9ybV9vcHMtPmh3ZG9tX2luaXQoZCk7Ci0KLSAgICBoZC0+c3RhdHVzID0gSU9NTVVf U1RBVFVTX2luaXRpYWxpemVkOwogfQogCi12b2lkIGlvbW11X3RlYXJkb3duKHN0cnVjdCBkb21h aW4gKmQpCitzdGF0aWMgdm9pZCBpb21tdV90ZWFyZG93bihzdHJ1Y3QgZG9tYWluICpkKQogewog ICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwogCi0gICAgaGQtPnN0 YXR1cyA9IElPTU1VX1NUQVRVU19kaXNhYmxlZDsKICAgICBoZC0+cGxhdGZvcm1fb3BzLT50ZWFy ZG93bihkKTsKICAgICB0YXNrbGV0X3NjaGVkdWxlKCZpb21tdV9wdF9jbGVhbnVwX3Rhc2tsZXQp OwogfQogCi1pbnQgaW9tbXVfY29uc3RydWN0KHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAgc3Ry dWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7Ci0KLSAgICBpZiAoIGhkLT5zdGF0 dXMgPT0gSU9NTVVfU1RBVFVTX2luaXRpYWxpemVkICkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAg ICBoZC0+c3RhdHVzID0gSU9NTVVfU1RBVFVTX2luaXRpYWxpemluZzsKLQotICAgIGlmICggIWlv bW11X3VzZV9oYXBfcHQoZCkgKQotICAgIHsKLSAgICAgICAgaW50IHJjOwotCi0gICAgICAgIGhk LT5uZWVkX3N5bmMgPSB0cnVlOwotCi0gICAgICAgIHJjID0gYXJjaF9pb21tdV9wb3B1bGF0ZV9w YWdlX3RhYmxlKGQpOwotICAgICAgICBpZiAoIHJjICkKLSAgICAgICAgewotICAgICAgICAgICAg aWYgKCByYyAhPSAtRVJFU1RBUlQgKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGhk LT5uZWVkX3N5bmMgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBoZC0+c3RhdHVzID0gSU9NTVVf U1RBVFVTX2Rpc2FibGVkOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gcmM7 Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBoZC0+c3RhdHVzID0gSU9NTVVfU1RBVFVTX2luaXRp YWxpemVkOwotCi0gICAgLyoKLSAgICAgKiBUaGVyZSBtYXkgYmUgZGlydHkgY2FjaGUgbGluZXMg d2hlbiBhIGRldmljZSBpcyBhc3NpZ25lZAotICAgICAqIGFuZCBiZWZvcmUgaGFzX2lvbW11X3B0 KGQpIGJlY29taW5nIHRydWUsIHRoaXMgd2lsbCBjYXVzZQotICAgICAqIG1lbW9yeV90eXBlX2No YW5nZWQgbG9zZSBlZmZlY3QgaWYgbWVtb3J5IHR5cGUgY2hhbmdlcy4KLSAgICAgKiBDYWxsIG1l bW9yeV90eXBlX2NoYW5nZWQgaGVyZSB0byBhbWVuZCB0aGlzLgotICAgICAqLwotICAgIG1lbW9y eV90eXBlX2NoYW5nZWQoZCk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQogdm9pZCBpb21tdV9kb21h aW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKQogewogICAgIGlmICggIWlzX2lvbW11X2VuYWJs ZWQoZCkgKQpAQCAtNTc4LDExICs1MDQsOCBAQCBpbnQgaW9tbXVfZG9fZG9tY3RsKAogdm9pZCBp b21tdV9zaGFyZV9wMm1fdGFibGUoc3RydWN0IGRvbWFpbiogZCkKIHsKICAgICBBU1NFUlQoaGFw X2VuYWJsZWQoZCkpOwotICAgIC8qCi0gICAgICogaW9tbXVfdXNlX2hhcF9wdChkKSBjYW5ub3Qg YmUgdXNlZCBoZXJlIGJlY2F1c2UgZHVyaW5nIGRvbWFpbgotICAgICAqIGNvbnN0cnVjdGlvbiBo YXNfaW9tbXVfcHQoZCkgd2lsbCBhbHdheXMgcmV0dXJuIGZhbHNlIGhlcmUuCi0gICAgICovCi0g ICAgaWYgKCBpc19pb21tdV9lbmFibGVkKGQpICYmIGlvbW11X2hhcF9wdF9zaGFyZSApCisKKyAg ICBpZiAoIGlvbW11X3VzZV9oYXBfcHQoZCkgKQogICAgICAgICBpb21tdV9nZXRfb3BzKCktPnNo YXJlX3AybShkKTsKIH0KIApAQCAtNjI5LDggKzU1Miw3IEBAIHN0YXRpYyB2b2lkIGlvbW11X2R1 bXBfcDJtX3RhYmxlKHVuc2lnbmVkIGNoYXIga2V5KQogICAgIG9wcyA9IGlvbW11X2dldF9vcHMo KTsKICAgICBmb3JfZWFjaF9kb21haW4oZCkKICAgICB7Ci0gICAgICAgIGlmICggaXNfaGFyZHdh cmVfZG9tYWluKGQpIHx8Ci0gICAgICAgICAgICAgZG9tX2lvbW11KGQpLT5zdGF0dXMgPCBJT01N VV9TVEFUVVNfaW5pdGlhbGl6ZWQgKQorICAgICAgICBpZiAoICFpc19pb21tdV9lbmFibGVkKGQp ICkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlmICggaW9tbXVfdXNlX2hhcF9w dChkKSApCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCmluZGV4IGRlZTQ3ZmUwOGIuLjI4Yjc3YjNlMzAgMTAw NjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCisrKyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3BjaS5jCkBAIC05MzMsOSArOTMzLDYgQEAgc3RhdGljIGludCBkZWFzc2ln bl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgdWludDE2X3Qgc2VnLCB1aW50OF90IGJ1cywKIAog ICAgIHBkZXYtPmZhdWx0LmNvdW50ID0gMDsKIAotICAgIGlmICggIWhhc19hcmNoX3BkZXZzKGQp ICYmIGhhc19pb21tdV9wdChkKSApCi0gICAgICAgIGlvbW11X3RlYXJkb3duKGQpOwotCiAgICAg cmV0dXJuIHJldDsKIH0KIApAQCAtMTQ4NCwxMyArMTQ4MSw2IEBAIHN0YXRpYyBpbnQgYXNzaWdu X2RldmljZShzdHJ1Y3QgZG9tYWluICpkLCB1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuLCB1MzIg ZmxhZykKICAgICBpZiAoICFwY2lkZXZzX3RyeWxvY2soKSApCiAgICAgICAgIHJldHVybiAtRVJF U1RBUlQ7CiAKLSAgICByYyA9IGlvbW11X2NvbnN0cnVjdChkKTsKLSAgICBpZiAoIHJjICkKLSAg ICB7Ci0gICAgICAgIHBjaWRldnNfdW5sb2NrKCk7Ci0gICAgICAgIHJldHVybiByYzsKLSAgICB9 Ci0KICAgICBwZGV2ID0gcGNpX2dldF9wZGV2X2J5X2RvbWFpbihoYXJkd2FyZV9kb21haW4sIHNl ZywgYnVzLCBkZXZmbik7CiAgICAgaWYgKCAhcGRldiApCiAgICAgewpAQCAtMTUxOSw4ICsxNTA5 LDYgQEAgc3RhdGljIGludCBhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHUxNiBzZWcs IHU4IGJ1cywgdTggZGV2Zm4sIHUzMiBmbGFnKQogICAgIH0KIAogIGRvbmU6Ci0gICAgaWYgKCAh aGFzX2FyY2hfcGRldnMoZCkgJiYgaGFzX2lvbW11X3B0KGQpICkKLSAgICAgICAgaW9tbXVfdGVh cmRvd24oZCk7CiAgICAgcGNpZGV2c191bmxvY2soKTsKIAogICAgIHJldHVybiByYzsKZGlmZiAt LWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKaW5kZXggMDFmMGJjNDY4OS4uNGFjNWRhMTk3YSAxMDA2 NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTE3NTksMTUgKzE3NTksNyBAQCBzdGF0 aWMgdm9pZCBpb21tdV9kb21haW5fdGVhcmRvd24oc3RydWN0IGRvbWFpbiAqZCkKIAogICAgIEFT U0VSVChpc19pb21tdV9lbmFibGVkKGQpKTsKIAotICAgIC8qCi0gICAgICogV2UgY2FuJ3QgdXNl IGlvbW11X3VzZV9oYXBfcHQgaGVyZSBiZWNhdXNlIGVpdGhlciBJT01NVSBzdGF0ZQotICAgICAq IGlzIGFscmVhZHkgY2hhbmdlZCB0byBJT01NVV9TVEFUVVNfZGlzYWJsZWQgYXQgdGhpcyBwb2lu dCBvcgotICAgICAqIGhhcyBhbHdheXMgYmVlbiBJT01NVV9TVEFUVVNfZGlzYWJsZWQuCi0gICAg ICoKLSAgICAgKiBXZSBhbHNvIG5lZWQgdG8gdGVzdCBpZiBIQVAgaXMgZW5hYmxlZCBiZWNhdXNl IFBWIGd1ZXN0cyBjYW4KLSAgICAgKiBlbnRlciB0aGlzIHBhdGggdG9vLgotICAgICAqLwotICAg IGlmICggaGFwX2VuYWJsZWQoZCkgJiYgaW9tbXVfaGFwX3B0X3NoYXJlICkKKyAgICBpZiAoIGlv bW11X3VzZV9oYXBfcHQoZCkgKQogICAgICAgICByZXR1cm47CiAKICAgICBzcGluX2xvY2soJmhk LT5hcmNoLm1hcHBpbmdfbG9jayk7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC94ODYvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jCmluZGV4 IDk4Nzk1NThjMTcuLjQ3YTNlNTUyMTMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3g4Ni9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5j CkBAIC04MSwxMDEgKzgxLDYgQEAgaW50IF9faW5pdCBpb21tdV9zZXR1cF9ocGV0X21zaShzdHJ1 Y3QgbXNpX2Rlc2MgKm1zaSkKICAgICByZXR1cm4gb3BzLT5zZXR1cF9ocGV0X21zaSA/IG9wcy0+ c2V0dXBfaHBldF9tc2kobXNpKSA6IC1FTk9ERVY7CiB9CiAKLWludCBhcmNoX2lvbW11X3BvcHVs YXRlX3BhZ2VfdGFibGUoc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAgICBzdHJ1Y3QgcGFnZV9pbmZv ICpwYWdlOwotICAgIGludCByYyA9IDAsIG4gPSAwOwotCi0gICAgc3Bpbl9sb2NrKCZkLT5wYWdl X2FsbG9jX2xvY2spOwotCi0gICAgaWYgKCB1bmxpa2VseShkLT5pc19keWluZykgKQotICAgICAg ICByYyA9IC1FU1JDSDsKLQotICAgIHdoaWxlICggIXJjICYmIChwYWdlID0gcGFnZV9saXN0X3Jl bW92ZV9oZWFkKCZkLT5wYWdlX2xpc3QpKSApCi0gICAgewotICAgICAgICBpZiAoIGlzX2h2bV9k b21haW4oZCkgfHwKLSAgICAgICAgICAgIChwYWdlLT51LmludXNlLnR5cGVfaW5mbyAmIFBHVF90 eXBlX21hc2spID09IFBHVF93cml0YWJsZV9wYWdlICkKLSAgICAgICAgewotICAgICAgICAgICAg dW5zaWduZWQgbG9uZyBtZm4gPSBtZm5feChwYWdlX3RvX21mbihwYWdlKSk7Ci0gICAgICAgICAg ICB1bnNpZ25lZCBsb25nIGdmbiA9IG1mbl90b19nbWZuKGQsIG1mbik7Ci0gICAgICAgICAgICB1 bnNpZ25lZCBpbnQgZmx1c2hfZmxhZ3MgPSAwOwotCi0gICAgICAgICAgICBpZiAoIGdmbiAhPSBn Zm5feChJTlZBTElEX0dGTikgKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEFTU0VS VCghKGdmbiA+PiBERUZBVUxUX0RPTUFJTl9BRERSRVNTX1dJRFRIKSk7Ci0gICAgICAgICAgICAg ICAgQlVHX09OKFNIQVJFRF9NMlAoZ2ZuKSk7Ci0gICAgICAgICAgICAgICAgcmMgPSBpb21tdV9t YXAoZCwgX2RmbihnZm4pLCBfbWZuKG1mbiksIFBBR0VfT1JERVJfNEssCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlIHwgSU9NTVVGX3dyaXRhYmxlLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmbHVzaF9mbGFncyk7Ci0KLSAgICAgICAgICAg ICAgICAvKgotICAgICAgICAgICAgICAgICAqIFdlIG1heSBiZSB3b3JraW5nIGJlaGluZCB0aGUg YmFjayBvZiBhIHJ1bm5pbmcgZ3Vlc3QsIHdoaWNoCi0gICAgICAgICAgICAgICAgICogbWF5IGNo YW5nZSB0aGUgdHlwZSBvZiBhIHBhZ2UgYXQgYW55IHRpbWUuICBXZSBjYW4ndCBwcmV2ZW50Ci0g ICAgICAgICAgICAgICAgICogdGhpcyAoZm9yIGluc3RhbmNlLCBieSBidW1waW5nIHRoZSB0eXBl IGNvdW50IHdoaWxlIG1hcHBpbmcKLSAgICAgICAgICAgICAgICAgKiB0aGUgcGFnZSkgd2l0aG91 dCBjYXVzaW5nIGxlZ2l0aW1hdGUgZ3Vlc3QgdHlwZS1jaGFuZ2UKLSAgICAgICAgICAgICAgICAg KiBvcGVyYXRpb25zIHRvIGZhaWwuICBTbyBhZnRlciBhZGRpbmcgdGhlIHBhZ2UgdG8gdGhlIElP TU1VLAotICAgICAgICAgICAgICAgICAqIGNoZWNrIGFnYWluIHRvIG1ha2Ugc3VyZSB0aGlzIGlz IHN0aWxsIHZhbGlkLiAgTkIgdGhhdCB0aGUKLSAgICAgICAgICAgICAgICAgKiB3cml0YWJsZSBl bnRyeSBpbiB0aGUgaW9tbXUgaXMgaGFybWxlc3MgdW50aWwgbGF0ZXIsIHdoZW4KLSAgICAgICAg ICAgICAgICAgKiB0aGUgYWN0dWFsIGRldmljZSBnZXRzIGFzc2lnbmVkLgotICAgICAgICAgICAg ICAgICAqLwotICAgICAgICAgICAgICAgIGlmICggIXJjICYmICFpc19odm1fZG9tYWluKGQpICYm Ci0gICAgICAgICAgICAgICAgICAgICAoKHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvICYgUEdUX3R5 cGVfbWFzaykgIT0KLSAgICAgICAgICAgICAgICAgICAgICBQR1Rfd3JpdGFibGVfcGFnZSkgKQot ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcmMgPSBpb21tdV91bm1hcChk LCBfZGZuKGdmbiksIFBBR0VfT1JERVJfNEssICZmbHVzaF9mbGFncyk7Ci0gICAgICAgICAgICAg ICAgICAgIC8qIElmIHRoZSB0eXBlIGNoYW5nZWQgeWV0IGFnYWluLCBzaW1wbHkgZm9yY2UgYSBy ZXRyeS4gKi8KLSAgICAgICAgICAgICAgICAgICAgaWYgKCAhcmMgJiYgKChwYWdlLT51LmludXNl LnR5cGVfaW5mbyAmIFBHVF90eXBlX21hc2spID09Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQR1Rfd3JpdGFibGVfcGFnZSkgKQotICAgICAgICAgICAgICAgICAgICAgICAgcmMg PSAtRVJFU1RBUlQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAg ICAgaWYgKCByYyApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcGFnZV9saXN0X2Fk ZChwYWdlLCAmZC0+cGFnZV9saXN0KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg ICAgIH0KLSAgICAgICAgfQotICAgICAgICBwYWdlX2xpc3RfYWRkX3RhaWwocGFnZSwgJmQtPmFy Y2gucmVsbWVtX2xpc3QpOwotICAgICAgICBpZiAoICEoKytuICYgMHhmZikgJiYgIXBhZ2VfbGlz dF9lbXB0eSgmZC0+cGFnZV9saXN0KSAmJgotICAgICAgICAgICAgIGh5cGVyY2FsbF9wcmVlbXB0 X2NoZWNrKCkgKQotICAgICAgICAgICAgcmMgPSAtRVJFU1RBUlQ7Ci0gICAgfQotCi0gICAgaWYg KCAhcmMgKQotICAgIHsKLSAgICAgICAgLyoKLSAgICAgICAgICogVGhlIGV4cGVjdGF0aW9uIGhl cmUgaXMgdGhhdCBnZW5lcmFsbHkgdGhlcmUgYXJlIG1hbnkgbm9ybWFsIHBhZ2VzCi0gICAgICAg ICAqIG9uIHJlbG1lbV9saXN0ICh0aGUgb25lcyB3ZSBwdXQgdGhlcmUpIGFuZCBvbmx5IGZldyBi ZWluZyBpbiBhbgotICAgICAgICAgKiBvZmZsaW5lL2Jyb2tlbiBzdGF0ZS4gVGhlIGxhdHRlciBv bmVzIGFyZSBhbHdheXMgYXQgdGhlIGhlYWQgb2YgdGhlCi0gICAgICAgICAqIGxpc3QuIEhlbmNl IHdlIGZpcnN0IG1vdmUgdGhlIHdob2xlIGxpc3QsIGFuZCB0aGVuIG1vdmUgYmFjayB0aGUKLSAg ICAgICAgICogZmlyc3QgZmV3IGVudHJpZXMuCi0gICAgICAgICAqLwotICAgICAgICBwYWdlX2xp c3RfbW92ZSgmZC0+cGFnZV9saXN0LCAmZC0+YXJjaC5yZWxtZW1fbGlzdCk7Ci0gICAgICAgIHdo aWxlICggIXBhZ2VfbGlzdF9lbXB0eSgmZC0+cGFnZV9saXN0KSAmJgotICAgICAgICAgICAgICAg IChwYWdlID0gcGFnZV9saXN0X2ZpcnN0KCZkLT5wYWdlX2xpc3QpLAotICAgICAgICAgICAgICAg ICAocGFnZS0+Y291bnRfaW5mbyAmIChQR0Nfc3RhdGV8UEdDX2Jyb2tlbikpKSApCi0gICAgICAg IHsKLSAgICAgICAgICAgIHBhZ2VfbGlzdF9kZWwocGFnZSwgJmQtPnBhZ2VfbGlzdCk7Ci0gICAg ICAgICAgICBwYWdlX2xpc3RfYWRkX3RhaWwocGFnZSwgJmQtPmFyY2gucmVsbWVtX2xpc3QpOwot ICAgICAgICB9Ci0gICAgfQotCi0gICAgc3Bpbl91bmxvY2soJmQtPnBhZ2VfYWxsb2NfbG9jayk7 Ci0KLSAgICBpZiAoICFyYyApCi0gICAgICAgIC8qCi0gICAgICAgICAqIGZsdXNoX2ZsYWdzIGFy ZSBub3QgdHJhY2tlZCBhY3Jvc3MgaHlwZXJjYWxsIHByZS1lbXB0aW9uIHNvCi0gICAgICAgICAq IGFzc3VtZSBhIGZ1bGwgZmx1c2ggaXMgbmVjZXNzYXJ5LgotICAgICAgICAgKi8KLSAgICAgICAg cmMgPSBpb21tdV9pb3RsYl9mbHVzaF9hbGwoCi0gICAgICAgICAgICBkLCBJT01NVV9GTFVTSEZf YWRkZWQgfCBJT01NVV9GTFVTSEZfbW9kaWZpZWQpOwotCi0gICAgaWYgKCByYyAmJiByYyAhPSAt RVJFU1RBUlQgKQotICAgICAgICBpb21tdV90ZWFyZG93bihkKTsKLQotICAgIHJldHVybiByYzsK LX0KLQogdm9pZCBfX2h3ZG9tX2luaXQgYXJjaF9pb21tdV9jaGVja19hdXRvdHJhbnNsYXRlZF9o d2RvbShzdHJ1Y3QgZG9tYWluICpkKQogewogICAgIGlmICggIWlzX2lvbW11X2VuYWJsZWQoZCkg KQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9pb21tdS5oIGIveGVuL2luY2x1ZGUv YXNtLWFybS9pb21tdS5oCmluZGV4IDkwNGM5YWVjMTEuLjE1NzdlODNkMmIgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL2FzbS1hcm0vaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2lv bW11LmgKQEAgLTIxLDcgKzIxLDcgQEAgc3RydWN0IGFyY2hfaW9tbXUKIH07CiAKIC8qIEFsd2F5 cyBzaGFyZSBQMk0gVGFibGUgYmV0d2VlbiB0aGUgQ1BVIGFuZCB0aGUgSU9NTVUgKi8KLSNkZWZp bmUgaW9tbXVfdXNlX2hhcF9wdChkKSAoaGFzX2lvbW11X3B0KGQpKQorI2RlZmluZSBpb21tdV91 c2VfaGFwX3B0KGQpIGlzX2lvbW11X2VuYWJsZWQoZCkKIAogY29uc3Qgc3RydWN0IGlvbW11X29w cyAqaW9tbXVfZ2V0X29wcyh2b2lkKTsKIHZvaWQgaW9tbXVfc2V0X29wcyhjb25zdCBzdHJ1Y3Qg aW9tbXVfb3BzICpvcHMpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5o IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5oCmluZGV4IGZhY2Y4MzVhZGEuLjZkMDI0ZDVj MGUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaW9tbXUuaAorKysgYi94ZW4vaW5j bHVkZS9hc20teDg2L2lvbW11LmgKQEAgLTgxLDcgKzgxLDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVj dCBpb21tdV9pbml0X29wcyAqaW9tbXVfaW5pdF9vcHM7CiAKIC8qIEFyZSB3ZSB1c2luZyB0aGUg ZG9tYWluIFAyTSB0YWJsZSBhcyBpdHMgSU9NTVUgcGFnZXRhYmxlPyAqLwogI2RlZmluZSBpb21t dV91c2VfaGFwX3B0KGQpIFwKLSAgICAoaGFwX2VuYWJsZWQoZCkgJiYgaGFzX2lvbW11X3B0KGQp ICYmIGlvbW11X2hhcF9wdF9zaGFyZSkKKyAgICAoaGFwX2VuYWJsZWQoZCkgJiYgaXNfaW9tbXVf ZW5hYmxlZChkKSAmJiBpb21tdV9oYXBfcHRfc2hhcmUpCiAKIHZvaWQgaW9tbXVfdXBkYXRlX2ly ZV9mcm9tX2FwaWModW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVk IGludCB2YWx1ZSk7CiB1bnNpZ25lZCBpbnQgaW9tbXVfcmVhZF9hcGljX2Zyb21faXJlKHVuc2ln bmVkIGludCBhcGljLCB1bnNpZ25lZCBpbnQgcmVnKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L3hlbi9pb21tdS5oIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKaW5kZXggMzE0ZjI4ZjMyMy4u NGI2ODcxOTM2YyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKKysrIGIveGVu L2luY2x1ZGUveGVuL2lvbW11LmgKQEAgLTczLDE1ICs3Myw5IEBAIHZvaWQgaW9tbXVfZG9tYWlu X2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCk7CiAKIHZvaWQgYXJjaF9pb21tdV9kb21haW5fZGVz dHJveShzdHJ1Y3QgZG9tYWluICpkKTsKIGludCBhcmNoX2lvbW11X2RvbWFpbl9pbml0KHN0cnVj dCBkb21haW4gKmQpOwotaW50IGFyY2hfaW9tbXVfcG9wdWxhdGVfcGFnZV90YWJsZShzdHJ1Y3Qg ZG9tYWluICpkKTsKIHZvaWQgYXJjaF9pb21tdV9jaGVja19hdXRvdHJhbnNsYXRlZF9od2RvbShz dHJ1Y3QgZG9tYWluICpkKTsKIHZvaWQgYXJjaF9pb21tdV9od2RvbV9pbml0KHN0cnVjdCBkb21h aW4gKmQpOwogCi1pbnQgaW9tbXVfY29uc3RydWN0KHN0cnVjdCBkb21haW4gKmQpOwotCi0vKiBG dW5jdGlvbiB1c2VkIGludGVybmFsbHksIHVzZSBpb21tdV9kb21haW5fZGVzdHJveSAqLwotdm9p ZCBpb21tdV90ZWFyZG93bihzdHJ1Y3QgZG9tYWluICpkKTsKLQogLyoKICAqIFRoZSBmb2xsb3dp bmcgZmxhZ3MgYXJlIHBhc3NlZCB0byBtYXAgb3BlcmF0aW9ucyBhbmQgcGFzc2VkIGJ5IGxvb2t1 cAogICogb3BlcmF0aW9ucy4KQEAgLTI0OCwxMyArMjQyLDYgQEAgc3RydWN0IGlvbW11X29wcyB7 CiAjIGRlZmluZSBpb21tdV92Y2FsbCBpb21tdV9jYWxsCiAjZW5kaWYKIAotZW51bSBpb21tdV9z dGF0dXMKLXsKLSAgICBJT01NVV9TVEFUVVNfZGlzYWJsZWQsCi0gICAgSU9NTVVfU1RBVFVTX2lu aXRpYWxpemluZywKLSAgICBJT01NVV9TVEFUVVNfaW5pdGlhbGl6ZWQKLX07Ci0KIHN0cnVjdCBk b21haW5faW9tbXUgewogICAgIHN0cnVjdCBhcmNoX2lvbW11IGFyY2g7CiAKQEAgLTI2OSw5ICsy NTYsNiBAQCBzdHJ1Y3QgZG9tYWluX2lvbW11IHsKICAgICAvKiBGZWF0dXJlcyBzdXBwb3J0ZWQg YnkgdGhlIElPTU1VICovCiAgICAgREVDTEFSRV9CSVRNQVAoZmVhdHVyZXMsIElPTU1VX0ZFQVRf Y291bnQpOwogCi0gICAgLyogU3RhdHVzIG9mIGd1ZXN0IElPTU1VIG1hcHBpbmdzICovCi0gICAg ZW51bSBpb21tdV9zdGF0dXMgc3RhdHVzOwotCiAgICAgLyoKICAgICAgKiBEb2VzIHRoZSBndWVz dCByZXFpcmUgbWFwcGluZ3MgdG8gYmUgc3luY2hvbml6ZWQsIHRvIG1haW50YWluCiAgICAgICog dGhlIGRlZmF1bHQgZGZuID09IHBmbiBtYXAuIChTZWUgY29tbWVudCBvbiBkZm4gYXQgdGhlIHRv cCBvZgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94ZW4vaW5jbHVkZS94 ZW4vc2NoZWQuaAppbmRleCAyNTg5MjQyNDJmLi5iMzc2NzY4NDI0IDEwMDY0NAotLS0gYS94ZW4v aW5jbHVkZS94ZW4vc2NoZWQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaApAQCAtOTY1 LDEwICs5NjUsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNfaHdkb21fcGlubmVkX3ZjcHUoY29u c3Qgc3RydWN0IHZjcHUgKnYpCiB9CiAKICNpZmRlZiBDT05GSUdfSEFTX1BBU1NUSFJPVUdICi0j ZGVmaW5lIGhhc19pb21tdV9wdChkKSAoZG9tX2lvbW11KGQpLT5zdGF0dXMgIT0gSU9NTVVfU1RB VFVTX2Rpc2FibGVkKQogI2RlZmluZSBuZWVkX2lvbW11X3B0X3N5bmMoZCkgKGRvbV9pb21tdShk KS0+bmVlZF9zeW5jKQogI2Vsc2UKLSNkZWZpbmUgaGFzX2lvbW11X3B0KGQpIGZhbHNlCiAjZGVm aW5lIG5lZWRfaW9tbXVfcHRfc3luYyhkKSBmYWxzZQogI2VuZGlmCiAKLS0gCjIuMjAuMS4yLmdi MjFlYmI2NzEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpo dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs