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=-6.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 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 A8525C31E5B for ; Wed, 19 Jun 2019 16:17:32 +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 6F506217D7 for ; Wed, 19 Jun 2019 16:17:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="bUcuG0K0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6F506217D7 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amd.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 1hddGp-0007lb-Td; Wed, 19 Jun 2019 16:17:11 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hddGp-0007lW-8J for xen-devel@lists.xenproject.org; Wed, 19 Jun 2019 16:17:11 +0000 X-Inumbo-ID: afaaddbd-92ad-11e9-8980-bc764e045a96 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (unknown [40.107.79.59]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id afaaddbd-92ad-11e9-8980-bc764e045a96; Wed, 19 Jun 2019 16:17:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kxfr8cxiQ+wBdNXDfappu8BrcSUqJzp/DwLCYh4j0VE=; b=bUcuG0K0qrx9hH7Wqbcb09htwYsgZi/pWcg++j/z/MqAeRrDatUS8ZY2/PX06Is2f0l6cvGT4UDnOkDAjF22T43+mMZM9FrA7rpk/cOMPZjvv0hlr2fxYHchzsGiCExCsTXPxGFneOAQ3AP7BmdBahRmXIKu/NgB7b/4ByGCiR0= Received: from DM6PR12MB3515.namprd12.prod.outlook.com (20.179.106.151) by DM6PR12MB2668.namprd12.prod.outlook.com (20.176.116.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.11; Wed, 19 Jun 2019 16:17:07 +0000 Received: from DM6PR12MB3515.namprd12.prod.outlook.com ([fe80::9dea:57a2:93ff:57b0]) by DM6PR12MB3515.namprd12.prod.outlook.com ([fe80::9dea:57a2:93ff:57b0%3]) with mapi id 15.20.1987.014; Wed, 19 Jun 2019 16:17:07 +0000 From: "Woods, Brian" To: Andrew Cooper Thread-Topic: [PATCH 1/2] x86: init_hypercall_page() cleanup Thread-Index: AQHVEVEjv4lF8DZhAU6qRkMoaI4ggaajUjsA Date: Wed, 19 Jun 2019 16:17:07 +0000 Message-ID: <20190619161704.GG20907@amd.com> References: <1558606816-17842-1-git-send-email-andrew.cooper3@citrix.com> <1558606816-17842-2-git-send-email-andrew.cooper3@citrix.com> In-Reply-To: <1558606816-17842-2-git-send-email-andrew.cooper3@citrix.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: DM5PR11CA0021.namprd11.prod.outlook.com (2603:10b6:3:115::31) To DM6PR12MB3515.namprd12.prod.outlook.com (2603:10b6:5:18a::23) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Brian.Woods@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [165.204.77.1] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 07f79b49-a586-4efe-91d3-08d6f4d192d3 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:DM6PR12MB2668; x-ms-traffictypediagnostic: DM6PR12MB2668: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6108; x-forefront-prvs: 0073BFEF03 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(376002)(396003)(39860400002)(136003)(366004)(199004)(189003)(486006)(229853002)(102836004)(316002)(8936002)(86362001)(6246003)(99286004)(68736007)(52116002)(6916009)(6436002)(2616005)(53946003)(476003)(6486002)(6512007)(81156014)(8676002)(386003)(6506007)(186003)(3846002)(76176011)(14444005)(6116002)(66066001)(4326008)(5660300002)(256004)(81166006)(66946007)(26005)(305945005)(25786009)(30864003)(33656002)(66476007)(446003)(1076003)(36756003)(11346002)(53936002)(71190400001)(73956011)(54906003)(72206003)(14454004)(2906002)(7736002)(478600001)(66556008)(66446008)(64756008)(71200400001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR12MB2668; H:DM6PR12MB3515.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: +jZXhFVxyFrpuuzSpY/U48Nz/yhin20rx4VYHHpf3HqPZmLvTbCXWOrN2SNEf3mZhZ2LaVDS4HKdImSVAnDPcgqBj0/d2rIzOWof1GUnYwvMHyk9NrPj71lrCD9ixe4uqmLI4lY6tdxtKx4qHHO3JCGIDlVuM2NmECAkATiZ5QuOTrlvHyxE4eiqDVGl9QxZ8Cxq9HxPJwfcSJuILu0S/HnxMKbUCbx6xbm/+8VpKKuD8tKyZsOITXQYYfaNHEZU23MCVQmiynNx7R/JSV2olvTdjNac+6ud7NuqbZkAAbpvpenuAxGIw1UUONdpg58PtA6l7+A2ZMnBTwff/VPbUa1dDPI+NTFwpd3O8Lqow7LuxtK9JtS6FqLEX6mp1Rw+m1ugl5yvcrnmFIJAkCC7l4M1ei1bIPtnJ5KNjvsfZ2o= Content-ID: MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 07f79b49-a586-4efe-91d3-08d6f4d192d3 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jun 2019 16:17:07.0613 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: brwoods@amd.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB2668 Subject: Re: [Xen-devel] [PATCH 1/2] x86: init_hypercall_page() cleanup 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: Kevin Tian , Wei Liu , Jan Beulich , Jun Nakajima , Xen-devel , Boris Ostrovsky , "Woods, Brian" , "Suthikulpanit, Suravee" , =?iso-8859-1?Q?Roger_Pau_Monn=E9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gVGh1LCBNYXkgMjMsIDIwMTkgYXQgMTE6MjA6MTVBTSArMDEwMCwgQW5keSBDb29wZXIgd3Jv dGU6Cj4gW0NBVVRJT046IEV4dGVybmFsIEVtYWlsXQo+IAo+IFRoZSB2YXJpb3VzIHBpZWNlcyBv ZiB0aGUgaHlwZXJjYWxsIHBhZ2UgaW5mcmFzdHJ1Y3R1cmUgaGF2ZSBncm93bgo+IG9yZ2FuaWNh bGx5IG92ZXIgdGltZSBhbmQgZW5kZWQgdXAgaW4gYSBiaXQgb2YgYSBtZXNzLgo+IAo+ICAqIFJl bmFtZSBhbGwgZnVuY3Rpb25zIHRvIGJlIG9mIHRoZSBmb3JtICpfaW5pdF9oeXBlcmNhbGxfcGFn ZSgpLiAgVGhpcwo+ICAgIG1ha2VzIHRoZW0gc29tZXdoYXQgc2hvcnRlciwgYW5kIG1lYW5zIHRo ZXkgY2FuIGFjdHVhbGx5IGJlIGdyZXBwZWQKPiAgICBmb3IgaW4gb25lIGdvLgo+ICAqIE1vdmUg aW5pdF9oeXBlcmNhbGxfcGFnZSgpIHRvIGRvbWFpbi5jLiAgVGhlIDY0LWJpdCB0cmFwcy5jIGlz bid0IGEKPiAgICB0ZXJyaWJseSBhcHByb3ByaWF0ZSBwbGFjZSBmb3IgaXQgdG8gbGl2ZS4KPiAg KiBEcm9wIGFuIG9ic29sZXRlIGNvbW1lbnQgZnJvbSBodm1faW5pdF9oeXBlcmNhbGxfcGFnZSgp IGFuZCBkcm9wIHRoZQo+ICAgIGRvbWFpbiBwYXJhbWV0ZXIgZnJvbSBodm1fZnVuY3MuaW5pdF9o eXBlcmNhbGxfcGFnZSgpIGFzIGl0IGlzbid0Cj4gICAgbmVjZXNzYXJ5Lgo+ICAqIFJlYXJyYW5n ZSB0aGUgbG9naWMgaW4gdGhlIGVhY2ggZnVuY3Rpb24gdG8gYXZvaWQgbmVlZGluZyBleHRyYSBs b2NhbAo+ICAgIHZhcmlhYmxlcywgYW5kIHRvIHdyaXRlIHRoZSBwYWdlIGluIG9uZSBzaW5nbGUg cGFzcy4KPiAKPiBObyBmdW5jdGlvbmFsIGNoYW5nZS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBBbmRy ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoKQWNrZWQtYnk6IEJyaWFuIFdv b2RzIDxicmlhbi53b29kc0BhbWQuY29tPgoKPiAtLS0KPiBDQzogSmFuIEJldWxpY2ggPEpCZXVs aWNoQHN1c2UuY29tPgo+IENDOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgo+IENDOiBS b2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KPiBDQzogSnVuIE5ha2FqaW1h IDxqdW4ubmFrYWppbWFAaW50ZWwuY29tPgo+IENDOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGlu dGVsLmNvbT4KPiBDQzogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNv bT4KPiBDQzogU3VyYXZlZSBTdXRoaWt1bHBhbml0IDxzdXJhdmVlLnN1dGhpa3VscGFuaXRAYW1k LmNvbT4KPiBDQzogQnJpYW4gV29vZHMgPGJyaWFuLndvb2RzQGFtZC5jb20+Cj4gLS0tCj4gIHhl bi9hcmNoL3g4Ni9kb21haW4uYyAgICAgICAgICAgfCAxNCArKysrKysrKysKPiAgeGVuL2FyY2gv eDg2L2RvbWN0bC5jICAgICAgICAgICB8ICAyICstCj4gIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMg ICAgICAgICAgfCAgOCArKy0tLS0KPiAgeGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMgICAgICB8 IDE4ICsrKysrKy0tLS0tLQo+ICB4ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyAgICAgIHwgMTgg KysrKysrLS0tLS0tCj4gIHhlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxkLmMgICAgfCAgMyArLQo+ ICB4ZW4vYXJjaC94ODYvcHYvaHlwZXJjYWxsLmMgICAgIHwgNjMgKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgeGVuL2FyY2gveDg2L3RyYXBzLmMgICAgICAgICAg ICB8ICAyICstCj4gIHhlbi9hcmNoL3g4Ni94ODZfNjQvdHJhcHMuYyAgICAgfCAxMyAtLS0tLS0t LS0KPiAgeGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaCAgICB8ICAyICstCj4gIHhlbi9pbmNs dWRlL2FzbS14ODYvaHZtL2h2bS5oICAgfCAgNCArLS0KPiAgeGVuL2luY2x1ZGUvYXNtLXg4Ni9o eXBlcmNhbGwuaCB8ICA0ICstLQo+ICAxMiBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCsp LCA3OCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbi5j IGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCj4gaW5kZXggYWM5NjBkZC4uOTQ4NWExNyAxMDA2NDQK PiAtLS0gYS94ZW4vYXJjaC94ODYvZG9tYWluLmMKPiArKysgYi94ZW4vYXJjaC94ODYvZG9tYWlu LmMKPiBAQCAtMTc1LDYgKzE3NSwyMCBAQCBzdGF0aWMgdm9pZCBub3JldHVybiBjb250aW51ZV9p ZGxlX2RvbWFpbihzdHJ1Y3QgdmNwdSAqdikKPiAgICAgIHJlc2V0X3N0YWNrX2FuZF9qdW1wKGlk bGVfbG9vcCk7Cj4gIH0KPiAKPiArdm9pZCBpbml0X2h5cGVyY2FsbF9wYWdlKHN0cnVjdCBkb21h aW4gKmQsIHZvaWQgKnB0cikKPiArewo+ICsgICAgbWVtc2V0KHB0ciwgMHhjYywgUEFHRV9TSVpF KTsKPiArCj4gKyAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgKQo+ICsgICAgICAgIGh2bV9pbml0 X2h5cGVyY2FsbF9wYWdlKGQsIHB0cik7Cj4gKyAgICBlbHNlIGlmICggaXNfcHZfNjRiaXRfZG9t YWluKGQpICkKPiArICAgICAgICBwdl9yaW5nM19pbml0X2h5cGVyY2FsbF9wYWdlKHB0cik7Cj4g KyAgICBlbHNlIGlmICggaXNfcHZfMzJiaXRfZG9tYWluKGQpICkKPiArICAgICAgICBwdl9yaW5n MV9pbml0X2h5cGVyY2FsbF9wYWdlKHB0cik7Cj4gKyAgICBlbHNlCj4gKyAgICAgICAgQVNTRVJU X1VOUkVBQ0hBQkxFKCk7Cj4gK30KPiArCj4gIHZvaWQgZHVtcF9wYWdlZnJhbWVfaW5mbyhzdHJ1 Y3QgZG9tYWluICpkKQo+ICB7Cj4gICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwo+IGRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKPiBp bmRleCA5YmYyZDA4Li43YzZiODA5IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9kb21jdGwu Ywo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwo+IEBAIC01MTcsNyArNTE3LDcgQEAgbG9u ZyBhcmNoX2RvX2RvbWN0bCgKPiAgICAgICAgICB9Cj4gCj4gICAgICAgICAgaHlwZXJjYWxsX3Bh Z2UgPSBfX21hcF9kb21haW5fcGFnZShwYWdlKTsKPiAtICAgICAgICBoeXBlcmNhbGxfcGFnZV9p bml0aWFsaXNlKGQsIGh5cGVyY2FsbF9wYWdlKTsKPiArICAgICAgICBpbml0X2h5cGVyY2FsbF9w YWdlKGQsIGh5cGVyY2FsbF9wYWdlKTsKPiAgICAgICAgICB1bm1hcF9kb21haW5fcGFnZShoeXBl cmNhbGxfcGFnZSk7Cj4gCj4gICAgICAgICAgcHV0X3BhZ2VfYW5kX3R5cGUocGFnZSk7Cj4gZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5j Cj4gaW5kZXggODk5M2MyYS4uNTY2NjI4NiAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvaHZt L2h2bS5jCj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwo+IEBAIC0zODAxLDEzICszODAx LDExIEBAIHN0YXRpYyB2b2lkIGh2bV9sYXRjaF9zaGluZm9fc2l6ZShzdHJ1Y3QgZG9tYWluICpk KQo+ICAgICAgfQo+ICB9Cj4gCj4gLS8qIEluaXRpYWxpc2UgYSBoeXBlcmNhbGwgdHJhbnNmZXIg cGFnZSBmb3IgYSBWTVggZG9tYWluIHVzaW5nCj4gLSAgIHBhcmF2aXJ0dWFsaXNlZCBkcml2ZXJz LiAqLwo+IC12b2lkIGh2bV9oeXBlcmNhbGxfcGFnZV9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4g KmQsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqaHlwZXJjYWxs X3BhZ2UpCj4gK3ZvaWQgaHZtX2luaXRfaHlwZXJjYWxsX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwg dm9pZCAqcHRyKQo+ICB7Cj4gICAgICBodm1fbGF0Y2hfc2hpbmZvX3NpemUoZCk7Cj4gLSAgICBh bHRlcm5hdGl2ZV92Y2FsbChodm1fZnVuY3MuaW5pdF9oeXBlcmNhbGxfcGFnZSwgZCwgaHlwZXJj YWxsX3BhZ2UpOwo+ICsKPiArICAgIGFsdGVybmF0aXZlX3ZjYWxsKGh2bV9mdW5jcy5pbml0X2h5 cGVyY2FsbF9wYWdlLCBwdHIpOwo+ICB9Cj4gCj4gIHZvaWQgaHZtX3ZjcHVfcmVzZXRfc3RhdGUo c3RydWN0IHZjcHUgKnYsIHVpbnQxNl90IGNzLCB1aW50MTZfdCBpcCkKPiBkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwo+ IGluZGV4IDlmMjY0OTMuLmNkNmE2YjMgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS9z dm0vc3ZtLmMKPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwo+IEBAIC05MTYsMTcg KzkxNiwyMCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHN2bV9nZXRfaW5zbl9ieXRlcyhzdHJ1Y3Qg dmNwdSAqdiwgdWludDhfdCAqYnVmKQo+ICAgICAgcmV0dXJuIGxlbjsKPiAgfQo+IAo+IC1zdGF0 aWMgdm9pZCBzdm1faW5pdF9oeXBlcmNhbGxfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB2b2lkICpo eXBlcmNhbGxfcGFnZSkKPiArc3RhdGljIHZvaWQgc3ZtX2luaXRfaHlwZXJjYWxsX3BhZ2Uodm9p ZCAqcCkKPiAgewo+IC0gICAgY2hhciAqcDsKPiAtICAgIGludCBpOwo+ICsgICAgdW5zaWduZWQg aW50IGk7Cj4gCj4gLSAgICBmb3IgKCBpID0gMDsgaSA8IChQQUdFX1NJWkUgLyAzMik7IGkrKyAp Cj4gKyAgICBmb3IgKCBpID0gMDsgaSA8IChQQUdFX1NJWkUgLyAzMik7IGkrKywgcCArPSAzMiAp Cj4gICAgICB7Cj4gLSAgICAgICAgaWYgKCBpID09IF9fSFlQRVJWSVNPUl9pcmV0ICkKPiArICAg ICAgICBpZiAoIHVubGlrZWx5KGkgPT0gX19IWVBFUlZJU09SX2lyZXQpICkKPiArICAgICAgICB7 Cj4gKyAgICAgICAgICAgIC8qIEhZUEVSVklTT1JfaXJldCBpc24ndCBzdXBwb3J0ZWQgKi8KPiAr ICAgICAgICAgICAgKih1MTYgKilwID0gMHgwYjBmOyAvKiB1ZDIgKi8KPiArCj4gICAgICAgICAg ICAgIGNvbnRpbnVlOwo+ICsgICAgICAgIH0KPiAKPiAtICAgICAgICBwID0gKGNoYXIgKikoaHlw ZXJjYWxsX3BhZ2UgKyAoaSAqIDMyKSk7Cj4gICAgICAgICAgKih1OCAgKikocCArIDApID0gMHhi ODsgLyogbW92IGltbTMyLCAlZWF4ICovCj4gICAgICAgICAgKih1MzIgKikocCArIDEpID0gaTsK PiAgICAgICAgICAqKHU4ICAqKShwICsgNSkgPSAweDBmOyAvKiB2bW1jYWxsICovCj4gQEAgLTkz NCw5ICs5MzcsNiBAQCBzdGF0aWMgdm9pZCBzdm1faW5pdF9oeXBlcmNhbGxfcGFnZShzdHJ1Y3Qg ZG9tYWluICpkLCB2b2lkICpoeXBlcmNhbGxfcGFnZSkKPiAgICAgICAgICAqKHU4ICAqKShwICsg NykgPSAweGQ5Owo+ICAgICAgICAgICoodTggICopKHAgKyA4KSA9IDB4YzM7IC8qIHJldCAqLwo+ ICAgICAgfQo+IC0KPiAtICAgIC8qIERvbid0IHN1cHBvcnQgSFlQRVJWSVNPUl9pcmV0IGF0IHRo ZSBtb21lbnQgKi8KPiAtICAgICoodTE2ICopKGh5cGVyY2FsbF9wYWdlICsgKF9fSFlQRVJWSVNP Ul9pcmV0ICogMzIpKSA9IDB4MGIwZjsgLyogdWQyICovCj4gIH0KPiAKPiAgc3RhdGljIGlubGlu ZSB2b2lkIHN2bV90c2NfcmF0aW9fc2F2ZShzdHJ1Y3QgdmNwdSAqdikKPiBkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwo+ IGluZGV4IDdkOTY2NzguLjAwNjAzMTAgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS92 bXgvdm14LmMKPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwo+IEBAIC0xMjYyLDE3 ICsxMjYyLDIwIEBAIHN0YXRpYyB2b2lkIHZteF9zZXRfZGVzY3JpcHRvcl9hY2Nlc3NfZXhpdGlu ZyhzdHJ1Y3QgdmNwdSAqdiwgYm9vbCBlbmFibGUpCj4gICAgICB2bXhfdm1jc19leGl0KHYpOwo+ ICB9Cj4gCj4gLXN0YXRpYyB2b2lkIHZteF9pbml0X2h5cGVyY2FsbF9wYWdlKHN0cnVjdCBkb21h aW4gKmQsIHZvaWQgKmh5cGVyY2FsbF9wYWdlKQo+ICtzdGF0aWMgdm9pZCB2bXhfaW5pdF9oeXBl cmNhbGxfcGFnZSh2b2lkICpwKQo+ICB7Cj4gLSAgICBjaGFyICpwOwo+IC0gICAgaW50IGk7Cj4g KyAgICB1bnNpZ25lZCBpbnQgaTsKPiAKPiAtICAgIGZvciAoIGkgPSAwOyBpIDwgKFBBR0VfU0la RSAvIDMyKTsgaSsrICkKPiArICAgIGZvciAoIGkgPSAwOyBpIDwgKFBBR0VfU0laRSAvIDMyKTsg aSsrLCBwICs9IDMyICkKPiAgICAgIHsKPiAtICAgICAgICBpZiAoIGkgPT0gX19IWVBFUlZJU09S X2lyZXQgKQo+ICsgICAgICAgIGlmICggdW5saWtlbHkoaSA9PSBfX0hZUEVSVklTT1JfaXJldCkg KQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgLyogSFlQRVJWSVNPUl9pcmV0IGlzbid0IHN1 cHBvcnRlZCAqLwo+ICsgICAgICAgICAgICAqKHUxNiAqKXAgPSAweDBiMGY7IC8qIHVkMiAqLwo+ ICsKPiAgICAgICAgICAgICAgY29udGludWU7Cj4gKyAgICAgICAgfQo+IAo+IC0gICAgICAgIHAg PSAoY2hhciAqKShoeXBlcmNhbGxfcGFnZSArIChpICogMzIpKTsKPiAgICAgICAgICAqKHU4ICAq KShwICsgMCkgPSAweGI4OyAvKiBtb3YgaW1tMzIsICVlYXggKi8KPiAgICAgICAgICAqKHUzMiAq KShwICsgMSkgPSBpOwo+ICAgICAgICAgICoodTggICopKHAgKyA1KSA9IDB4MGY7IC8qIHZtY2Fs bCAqLwo+IEBAIC0xMjgwLDkgKzEyODMsNiBAQCBzdGF0aWMgdm9pZCB2bXhfaW5pdF9oeXBlcmNh bGxfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB2b2lkICpoeXBlcmNhbGxfcGFnZSkKPiAgICAgICAg ICAqKHU4ICAqKShwICsgNykgPSAweGMxOwo+ICAgICAgICAgICoodTggICopKHAgKyA4KSA9IDB4 YzM7IC8qIHJldCAqLwo+ICAgICAgfQo+IC0KPiAtICAgIC8qIERvbid0IHN1cHBvcnQgSFlQRVJW SVNPUl9pcmV0IGF0IHRoZSBtb21lbnQgKi8KPiAtICAgICoodTE2ICopKGh5cGVyY2FsbF9wYWdl ICsgKF9fSFlQRVJWSVNPUl9pcmV0ICogMzIpKSA9IDB4MGIwZjsgLyogdWQyICovCj4gIH0KPiAK PiAgc3RhdGljIHVuc2lnbmVkIGludCB2bXhfZ2V0X2ludGVycnVwdF9zaGFkb3coc3RydWN0IHZj cHUgKnYpCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxkLmMgYi94ZW4v YXJjaC94ODYvcHYvZG9tMF9idWlsZC5jCj4gaW5kZXggY2VmMmQ0Mi4uZDQ4ZDAxNCAxMDA2NDQK PiAtLS0gYS94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jCj4gKysrIGIveGVuL2FyY2gveDg2 L3B2L2RvbTBfYnVpbGQuYwo+IEBAIC03MzgsOCArNzM4LDcgQEAgaW50IF9faW5pdCBkb20wX2Nv bnN0cnVjdF9wdihzdHJ1Y3QgZG9tYWluICpkLAo+ICAgICAgICAgICAgICByYyA9IC0xOwo+ICAg ICAgICAgICAgICBnb3RvIG91dDsKPiAgICAgICAgICB9Cj4gLSAgICAgICAgaHlwZXJjYWxsX3Bh Z2VfaW5pdGlhbGlzZSgKPiAtICAgICAgICAgICAgZCwgKHZvaWQgKikodW5zaWduZWQgbG9uZylw YXJtcy52aXJ0X2h5cGVyY2FsbCk7Cj4gKyAgICAgICAgaW5pdF9oeXBlcmNhbGxfcGFnZShkLCBf cChwYXJtcy52aXJ0X2h5cGVyY2FsbCkpOwo+ICAgICAgfQo+IAo+ICAgICAgLyogRnJlZSB0ZW1w b3JhcnkgYnVmZmVycy4gKi8KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L2h5cGVyY2Fs bC5jIGIveGVuL2FyY2gveDg2L3B2L2h5cGVyY2FsbC5jCj4gaW5kZXggNWZkYjhmOS4uMGM4NGMw YiAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvcHYvaHlwZXJjYWxsLmMKPiArKysgYi94ZW4v YXJjaC94ODYvcHYvaHlwZXJjYWxsLmMKPiBAQCAtMjY3LDE2ICsyNjcsMjggQEAgZW51bSBtY19k aXNwb3NpdGlvbiBhcmNoX2RvX211bHRpY2FsbF9jYWxsKHN0cnVjdCBtY19zdGF0ZSAqc3RhdGUp Cj4gICAgICAgICAgICAgICA/IG1jX2NvbnRpbnVlIDogbWNfcHJlZW1wdDsKPiAgfQo+IAo+IC12 b2lkIGh5cGVyY2FsbF9wYWdlX2luaXRpYWxpc2VfcmluZzNfa2VybmVsKHZvaWQgKmh5cGVyY2Fs bF9wYWdlKQo+ICt2b2lkIHB2X3JpbmczX2luaXRfaHlwZXJjYWxsX3BhZ2Uodm9pZCAqcCkKPiAg ewo+IC0gICAgdm9pZCAqcCA9IGh5cGVyY2FsbF9wYWdlOwo+ICAgICAgdW5zaWduZWQgaW50IGk7 Cj4gCj4gLSAgICAvKiBGaWxsIGluIGFsbCB0aGUgdHJhbnNmZXIgcG9pbnRzIHdpdGggdGVtcGxh dGUgbWFjaGluZSBjb2RlLiAqLwo+ICAgICAgZm9yICggaSA9IDA7IGkgPCAoUEFHRV9TSVpFIC8g MzIpOyBpKyssIHAgKz0gMzIgKQo+ICAgICAgewo+IC0gICAgICAgIGlmICggaSA9PSBfX0hZUEVS VklTT1JfaXJldCApCj4gKyAgICAgICAgaWYgKCB1bmxpa2VseShpID09IF9fSFlQRVJWSVNPUl9p cmV0KSApCj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICAvKgo+ICsgICAgICAgICAgICAgKiBI WVBFUlZJU09SX2lyZXQgaXMgc3BlY2lhbCBiZWNhdXNlIGl0IGRvZXNuJ3QgcmV0dXJuIGFuZAo+ ICsgICAgICAgICAgICAgKiBleHBlY3RzIGEgc3BlY2lhbCBzdGFjayBmcmFtZS4gR3Vlc3RzIGp1 bXAgYXQgdGhpcyB0cmFuc2Zlcgo+ICsgICAgICAgICAgICAgKiBwb2ludCBpbnN0ZWFkIG9mIGNh bGxpbmcgaXQuCj4gKyAgICAgICAgICAgICAqLwo+ICsgICAgICAgICAgICAqKHU4ICAqKShwKyAw KSA9IDB4NTE7ICAgIC8qIHB1c2ggJXJjeCAqLwo+ICsgICAgICAgICAgICAqKHUxNiAqKShwKyAx KSA9IDB4NTM0MTsgIC8qIHB1c2ggJXIxMSAqLwo+ICsgICAgICAgICAgICAqKHU4ICAqKShwKyAz KSA9IDB4NTA7ICAgIC8qIHB1c2ggJXJheCAqLwo+ICsgICAgICAgICAgICAqKHU4ICAqKShwKyA0 KSA9IDB4Yjg7ICAgIC8qIG1vdiAgJF9fSFlQRVJWSVNPUl9pcmV0LCAlZWF4ICovCj4gKyAgICAg ICAgICAgICoodTMyICopKHArIDUpID0gX19IWVBFUlZJU09SX2lyZXQ7Cj4gKyAgICAgICAgICAg ICoodTE2ICopKHArIDkpID0gMHgwNTBmOyAgLyogc3lzY2FsbCAqLwo+ICsKPiAgICAgICAgICAg ICAgY29udGludWU7Cj4gKyAgICAgICAgfQo+IAo+ICAgICAgICAgICoodTggICopKHArIDApID0g MHg1MTsgICAgLyogcHVzaCAlcmN4ICovCj4gICAgICAgICAgKih1MTYgKikocCsgMSkgPSAweDUz NDE7ICAvKiBwdXNoICVyMTEgKi8KPiBAQCAtMjg3LDQ5ICsyOTksMzQgQEAgdm9pZCBoeXBlcmNh bGxfcGFnZV9pbml0aWFsaXNlX3JpbmczX2tlcm5lbCh2b2lkICpoeXBlcmNhbGxfcGFnZSkKPiAg ICAgICAgICAqKHU4ICAqKShwKzEyKSA9IDB4NTk7ICAgIC8qIHBvcCAgJXJjeCAqLwo+ICAgICAg ICAgICoodTggICopKHArMTMpID0gMHhjMzsgICAgLyogcmV0ICovCj4gICAgICB9Cj4gLQo+IC0g ICAgLyoKPiAtICAgICAqIEhZUEVSVklTT1JfaXJldCBpcyBzcGVjaWFsIGJlY2F1c2UgaXQgZG9l c24ndCByZXR1cm4gYW5kIGV4cGVjdHMgYQo+IC0gICAgICogc3BlY2lhbCBzdGFjayBmcmFtZS4g R3Vlc3RzIGp1bXAgYXQgdGhpcyB0cmFuc2ZlciBwb2ludCBpbnN0ZWFkIG9mCj4gLSAgICAgKiBj YWxsaW5nIGl0Lgo+IC0gICAgICovCj4gLSAgICBwID0gaHlwZXJjYWxsX3BhZ2UgKyAoX19IWVBF UlZJU09SX2lyZXQgKiAzMik7Cj4gLSAgICAqKHU4ICAqKShwKyAwKSA9IDB4NTE7ICAgIC8qIHB1 c2ggJXJjeCAqLwo+IC0gICAgKih1MTYgKikocCsgMSkgPSAweDUzNDE7ICAvKiBwdXNoICVyMTEg Ki8KPiAtICAgICoodTggICopKHArIDMpID0gMHg1MDsgICAgLyogcHVzaCAlcmF4ICovCj4gLSAg ICAqKHU4ICAqKShwKyA0KSA9IDB4Yjg7ICAgIC8qIG1vdiAgJF9fSFlQRVJWSVNPUl9pcmV0LCVl YXggKi8KPiAtICAgICoodTMyICopKHArIDUpID0gX19IWVBFUlZJU09SX2lyZXQ7Cj4gLSAgICAq KHUxNiAqKShwKyA5KSA9IDB4MDUwZjsgIC8qIHN5c2NhbGwgKi8KPiAgfQo+IAo+IC12b2lkIGh5 cGVyY2FsbF9wYWdlX2luaXRpYWxpc2VfcmluZzFfa2VybmVsKHZvaWQgKmh5cGVyY2FsbF9wYWdl KQo+ICt2b2lkIHB2X3JpbmcxX2luaXRfaHlwZXJjYWxsX3BhZ2Uodm9pZCAqcCkKPiAgewo+IC0g ICAgdm9pZCAqcCA9IGh5cGVyY2FsbF9wYWdlOwo+ICAgICAgdW5zaWduZWQgaW50IGk7Cj4gCj4g LSAgICAvKiBGaWxsIGluIGFsbCB0aGUgdHJhbnNmZXIgcG9pbnRzIHdpdGggdGVtcGxhdGUgbWFj aGluZSBjb2RlLiAqLwo+IC0KPiAgICAgIGZvciAoIGkgPSAwOyBpIDwgKFBBR0VfU0laRSAvIDMy KTsgaSsrLCBwICs9IDMyICkKPiAgICAgIHsKPiAtICAgICAgICBpZiAoIGkgPT0gX19IWVBFUlZJ U09SX2lyZXQgKQo+ICsgICAgICAgIGlmICggdW5saWtlbHkoaSA9PSBfX0hZUEVSVklTT1JfaXJl dCkgKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgLyoKPiArICAgICAgICAgICAgICogSFlQ RVJWSVNPUl9pcmV0IGlzIHNwZWNpYWwgYmVjYXVzZSBpdCBkb2Vzbid0IHJldHVybiBhbmQKPiAr ICAgICAgICAgICAgICogZXhwZWN0cyBhIHNwZWNpYWwgc3RhY2sgZnJhbWUuIEd1ZXN0cyBqdW1w IGF0IHRoaXMgdHJhbnNmZXIKPiArICAgICAgICAgICAgICogcG9pbnQgaW5zdGVhZCBvZiBjYWxs aW5nIGl0Lgo+ICsgICAgICAgICAgICAgKi8KPiArICAgICAgICAgICAgKih1OCAgKikocCsgMCkg PSAweDUwOyAgICAvKiBwdXNoICVlYXggKi8KPiArICAgICAgICAgICAgKih1OCAgKikocCsgMSkg PSAweGI4OyAgICAvKiBtb3YgICRfX0hZUEVSVklTT1JfaXJldCwgJWVheCAqLwo+ICsgICAgICAg ICAgICAqKHUzMiAqKShwKyAyKSA9IF9fSFlQRVJWSVNPUl9pcmV0Owo+ICsgICAgICAgICAgICAq KHUxNiAqKShwKyA2KSA9IChIWVBFUkNBTExfVkVDVE9SIDw8IDgpIHwgMHhjZDsgLyogaW50ICAk eHggKi8KPiArCj4gICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICsgICAgICAgIH0KPiAKPiAgICAg ICAgICAqKHU4ICAqKShwKyAwKSA9IDB4Yjg7ICAgIC8qIG1vdiAgJDxpPiwlZWF4ICovCj4gICAg ICAgICAgKih1MzIgKikocCsgMSkgPSBpOwo+ICAgICAgICAgICoodTE2ICopKHArIDUpID0gKEhZ UEVSQ0FMTF9WRUNUT1IgPDwgOCkgfCAweGNkOyAvKiBpbnQgICR4eCAqLwo+ICAgICAgICAgICoo dTggICopKHArIDcpID0gMHhjMzsgICAgLyogcmV0ICovCj4gICAgICB9Cj4gLQo+IC0gICAgLyoK PiAtICAgICAqIEhZUEVSVklTT1JfaXJldCBpcyBzcGVjaWFsIGJlY2F1c2UgaXQgZG9lc24ndCBy ZXR1cm4gYW5kIGV4cGVjdHMgYQo+IC0gICAgICogc3BlY2lhbCBzdGFjayBmcmFtZS4gR3Vlc3Rz IGp1bXAgYXQgdGhpcyB0cmFuc2ZlciBwb2ludCBpbnN0ZWFkIG9mCj4gLSAgICAgKiBjYWxsaW5n IGl0Lgo+IC0gICAgICovCj4gLSAgICBwID0gaHlwZXJjYWxsX3BhZ2UgKyAoX19IWVBFUlZJU09S X2lyZXQgKiAzMik7Cj4gLSAgICAqKHU4ICAqKShwKyAwKSA9IDB4NTA7ICAgIC8qIHB1c2ggJWVh eCAqLwo+IC0gICAgKih1OCAgKikocCsgMSkgPSAweGI4OyAgICAvKiBtb3YgICRfX0hZUEVSVklT T1JfaXJldCwlZWF4ICovCj4gLSAgICAqKHUzMiAqKShwKyAyKSA9IF9fSFlQRVJWSVNPUl9pcmV0 Owo+IC0gICAgKih1MTYgKikocCsgNikgPSAoSFlQRVJDQUxMX1ZFQ1RPUiA8PCA4KSB8IDB4Y2Q7 IC8qIGludCAgJHh4ICovCj4gIH0KPiAKPiAgLyoKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L3RyYXBzLmMgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwo+IGluZGV4IDA1ZGRjMzkuLmJhMTA1M2Yg MTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L3RyYXBzLmMKPiArKysgYi94ZW4vYXJjaC94ODYv dHJhcHMuYwo+IEBAIC04MjgsNyArODI4LDcgQEAgaW50IGd1ZXN0X3dybXNyX3hlbihzdHJ1Y3Qg dmNwdSAqdiwgdWludDMyX3QgaWR4LCB1aW50NjRfdCB2YWwpCj4gICAgICAgICAgfQo+IAo+ICAg ICAgICAgIGh5cGVyY2FsbF9wYWdlID0gX19tYXBfZG9tYWluX3BhZ2UocGFnZSk7Cj4gLSAgICAg ICAgaHlwZXJjYWxsX3BhZ2VfaW5pdGlhbGlzZShkLCBoeXBlcmNhbGxfcGFnZSk7Cj4gKyAgICAg ICAgaW5pdF9oeXBlcmNhbGxfcGFnZShkLCBoeXBlcmNhbGxfcGFnZSk7Cj4gICAgICAgICAgdW5t YXBfZG9tYWluX3BhZ2UoaHlwZXJjYWxsX3BhZ2UpOwo+IAo+ICAgICAgICAgIHB1dF9wYWdlX2Fu ZF90eXBlKHBhZ2UpOwo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMg Yi94ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMKPiBpbmRleCBjYjRiZjBhLi4yM2Q5MzU3IDEw MDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvdHJhcHMuYwo+ICsrKyBiL3hlbi9hcmNo L3g4Ni94ODZfNjQvdHJhcHMuYwo+IEBAIC0zNjAsMTkgKzM2MCw2IEBAIHZvaWQgc3ViYXJjaF9w ZXJjcHVfdHJhcHNfaW5pdCh2b2lkKQo+ICAgICAgd3Jtc3JsKE1TUl9TWVNDQUxMX01BU0ssIFhF Tl9TWVNDQUxMX01BU0spOwo+ICB9Cj4gCj4gLXZvaWQgaHlwZXJjYWxsX3BhZ2VfaW5pdGlhbGlz ZShzdHJ1Y3QgZG9tYWluICpkLCB2b2lkICpoeXBlcmNhbGxfcGFnZSkKPiAtewo+IC0gICAgbWVt c2V0KGh5cGVyY2FsbF9wYWdlLCAweENDLCBQQUdFX1NJWkUpOwo+IC0gICAgaWYgKCBpc19odm1f ZG9tYWluKGQpICkKPiAtICAgICAgICBodm1faHlwZXJjYWxsX3BhZ2VfaW5pdGlhbGlzZShkLCBo eXBlcmNhbGxfcGFnZSk7Cj4gLSAgICBlbHNlIGlmICggaXNfcHZfNjRiaXRfZG9tYWluKGQpICkK PiAtICAgICAgICBoeXBlcmNhbGxfcGFnZV9pbml0aWFsaXNlX3JpbmczX2tlcm5lbChoeXBlcmNh bGxfcGFnZSk7Cj4gLSAgICBlbHNlIGlmICggaXNfcHZfMzJiaXRfZG9tYWluKGQpICkKPiAtICAg ICAgICBoeXBlcmNhbGxfcGFnZV9pbml0aWFsaXNlX3JpbmcxX2tlcm5lbChoeXBlcmNhbGxfcGFn ZSk7Cj4gLSAgICBlbHNlCj4gLSAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7Cj4gLX0KPiAt Cj4gIC8qCj4gICAqIExvY2FsIHZhcmlhYmxlczoKPiAgICogbW9kZTogQwo+IGRpZmYgLS1naXQg YS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21h aW4uaAo+IGluZGV4IDIxNGU0NGMuLjcyZGVhODAgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9kb21haW4uaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgKPiBA QCAtODMsNyArODMsNyBAQCB2b2lkIGNwdWlkX3BvbGljeV91cGRhdGVkKHN0cnVjdCB2Y3B1ICp2 KTsKPiAgICogSW5pdGlhbGlzZSBhIGh5cGVyY2FsbC10cmFuc2ZlciBwYWdlLiBUaGUgZ2l2ZW4g cG9pbnRlciBtdXN0IGJlIG1hcHBlZAo+ICAgKiBpbiBYZW4gdmlydHVhbCBhZGRyZXNzIHNwYWNl IChhY2Nlc3NlcyBhcmUgbm90IHZhbGlkYXRlZCBvciBjaGVja2VkKS4KPiAgICovCj4gLXZvaWQg aHlwZXJjYWxsX3BhZ2VfaW5pdGlhbGlzZShzdHJ1Y3QgZG9tYWluICpkLCB2b2lkICopOwo+ICt2 b2lkIGluaXRfaHlwZXJjYWxsX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdm9pZCAqKTsKPiAKPiAg LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KPiAgLyog ICAgICAgICAgc2hhZG93IHBhZ2luZyBleHRlbnNpb24gICAgICAgICAgICAgKi8KPiBkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmggYi94ZW4vaW5jbHVkZS9hc20teDg2 L2h2bS9odm0uaAo+IGluZGV4IDE5MjE0MjIuLmIzMjdiZDIgMTAwNjQ0Cj4gLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmgKPiArKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9o dm0uaAo+IEBAIC0xNTIsNyArMTUyLDcgQEAgc3RydWN0IGh2bV9mdW5jdGlvbl90YWJsZSB7Cj4g Cj4gICAgICB2b2lkICgqaW5qZWN0X2V2ZW50KShjb25zdCBzdHJ1Y3QgeDg2X2V2ZW50ICpldmVu dCk7Cj4gCj4gLSAgICB2b2lkICgqaW5pdF9oeXBlcmNhbGxfcGFnZSkoc3RydWN0IGRvbWFpbiAq ZCwgdm9pZCAqaHlwZXJjYWxsX3BhZ2UpOwo+ICsgICAgdm9pZCAoKmluaXRfaHlwZXJjYWxsX3Bh Z2UpKHZvaWQgKnB0cik7Cj4gCj4gICAgICBib29sICgqZXZlbnRfcGVuZGluZykoY29uc3Qgc3Ry dWN0IHZjcHUgKnYpOwo+ICAgICAgYm9vbCAoKmdldF9wZW5kaW5nX2V2ZW50KShzdHJ1Y3QgdmNw dSAqdiwgc3RydWN0IHg4Nl9ldmVudCAqaW5mbyk7Cj4gQEAgLTI3Miw3ICsyNzIsNyBAQCBpbnQg aHZtX2dpcnFfZGVzdF8yX3ZjcHVfaWQoc3RydWN0IGRvbWFpbiAqZCwgdWludDhfdCBkZXN0LCB1 aW50OF90IGRlc3RfbW9kZSk7Cj4gIGVudW0gaHZtX2ludGJsawo+ICBodm1faW50ZXJydXB0X2Js b2NrZWQoc3RydWN0IHZjcHUgKnYsIHN0cnVjdCBodm1faW50YWNrIGludGFjayk7Cj4gCj4gLXZv aWQgaHZtX2h5cGVyY2FsbF9wYWdlX2luaXRpYWxpc2Uoc3RydWN0IGRvbWFpbiAqZCwgdm9pZCAq aHlwZXJjYWxsX3BhZ2UpOwo+ICt2b2lkIGh2bV9pbml0X2h5cGVyY2FsbF9wYWdlKHN0cnVjdCBk b21haW4gKmQsIHZvaWQgKnB0cik7Cj4gCj4gIHZvaWQgaHZtX2dldF9zZWdtZW50X3JlZ2lzdGVy KHN0cnVjdCB2Y3B1ICp2LCBlbnVtIHg4Nl9zZWdtZW50IHNlZywKPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIgKnJlZyk7Cj4gZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHlwZXJjYWxsLmggYi94ZW4vaW5jbHVkZS9hc20teDg2 L2h5cGVyY2FsbC5oCj4gaW5kZXggNDllYjVmMS4uMWNkODA0NiAxMDA2NDQKPiAtLS0gYS94ZW4v aW5jbHVkZS9hc20teDg2L2h5cGVyY2FsbC5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9o eXBlcmNhbGwuaAo+IEBAIC0zMCw4ICszMCw4IEBAIGV4dGVybiBjb25zdCBoeXBlcmNhbGxfdGFi bGVfdCBwdl9oeXBlcmNhbGxfdGFibGVbXTsKPiAgdm9pZCBwdl9oeXBlcmNhbGwoc3RydWN0IGNw dV91c2VyX3JlZ3MgKnJlZ3MpOwo+ICAjZW5kaWYKPiAKPiAtdm9pZCBoeXBlcmNhbGxfcGFnZV9p bml0aWFsaXNlX3JpbmczX2tlcm5lbCh2b2lkICpoeXBlcmNhbGxfcGFnZSk7Cj4gLXZvaWQgaHlw ZXJjYWxsX3BhZ2VfaW5pdGlhbGlzZV9yaW5nMV9rZXJuZWwodm9pZCAqaHlwZXJjYWxsX3BhZ2Up Owo+ICt2b2lkIHB2X3JpbmcxX2luaXRfaHlwZXJjYWxsX3BhZ2Uodm9pZCAqcHRyKTsKPiArdm9p ZCBwdl9yaW5nM19pbml0X2h5cGVyY2FsbF9wYWdlKHZvaWQgKnB0cik7Cj4gCj4gIC8qCj4gICAq IEJvdGggZG9fbW11ZXh0X29wKCkgYW5kIGRvX21tdV91cGRhdGUoKToKPiAtLQo+IDIuMS40Cj4g CgotLSAKQnJpYW4gV29vZHMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2pl Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4t ZGV2ZWw=