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=-5.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 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 2EE97C3A59E for ; Mon, 2 Sep 2019 11:10:44 +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 E943C216C8 for ; Mon, 2 Sep 2019 11:10:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E943C216C8 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.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 1i4kE9-0001vK-5b; Mon, 02 Sep 2019 11:10:29 +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 1i4kE7-0001vE-PJ for xen-devel@lists.xenproject.org; Mon, 02 Sep 2019 11:10:27 +0000 X-Inumbo-ID: 43e95e30-cd72-11e9-aea1-12813bfff9fa Received: from mx1.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 43e95e30-cd72-11e9-aea1-12813bfff9fa; Mon, 02 Sep 2019 11:10:26 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id C2590AD17; Mon, 2 Sep 2019 11:10:25 +0000 (UTC) From: Jan Beulich To: Paul Durrant References: <2d69ac51-9c4a-96f9-fd37-578658076571@suse.com> <3f30c73d-94a7-f9ca-5914-0400f1f98cc3@suse.com> Message-ID: Date: Mon, 2 Sep 2019 13:10:29 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <3f30c73d-94a7-f9ca-5914-0400f1f98cc3@suse.com> Content-Language: en-US Subject: [Xen-devel] Ping: [PATCH 1/6] x86emul: generalize wbinvd() hook 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: "xen-devel@lists.xenproject.org" , RogerPau Monne , Wei Liu , Andrew Cooper Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gMDEuMDcuMjAxOSAxMzo1NSwgSmFuIEJldWxpY2ggd3JvdGU6Cj4gVGhlIGhvb2sgaXMgYWxy ZWFkeSBpbiB1c2UgZm9yIG90aGVyIHB1cnBvc2VzLCBhbmQgZW11bGF0aW5nIGUuZy4KPiBDTEZM VVNIIGJ5IGlzc3VpbmcgV0JJTlZEIGlzLCB3ZWxsLCBub3QgdmVyeSBuaWNlLiBSZW5hbWUgdGhl IGhvb2sgYW5kCj4gYWRkIHBhcmFtZXRlcnMuIFVzZSBsaWdodGVyIHdlaWdodCBmbHVzaGluZyBp bnNucyB3aGVuIHBvc3NpYmxlIGluCj4gaHZtZW11bF9jYWNoZV9vcCgpLgo+IAo+IGh2bWVtdWxf Y2FjaGVfb3AoKSB0cmVhdGluZyB4ODZlbXVsX2ludmQgdGhlIHNhbWUgYXMgeDg2ZW11bF93Ymlu dmQgaXMKPiB0byByZXRhaW4gb3JpZ2luYWwgYmVoYXZpb3IsIGJ1dCBJJ20gbm90IHN1cmUgdGhp cyBpcyB3aGF0IHdlIHdhbnQgaW4KPiB0aGUgbG9uZyBydW4uCj4gCj4gU2lnbmVkLW9mZi1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgoKUGF1bCwKCmFueSBjaGFuY2UgSSBjb3Vs ZCBnZXQgeW91ciBhY2sgKG9yIG90aGVyd2lzZSkgaGVyZT8gSSB0aG91Z2h0IEkgZGlkCmFuc3dl ciB0aGUgb25lIHF1ZXN0aW9uIHlvdSBoYWQgcmFpc2VkIHRvIHlvdXIgc2F0aXNmYWN0aW9uLgoK VGhhbmtzLCBKYW4KCj4gLS0tCj4gdjI6IFVzZSBjYWNoZV9vcCgpIGFzIGhvb2sgbmFtZS4gQ29u dmVydCBtYWNyb3MgdG8gaW5saW5lIGZ1bmN0aW9ucyBpbgo+ICAgICAgc3lzdGVtLmguIFJlLWJh c2UuCj4gLS0tCj4gSSB3YXMgdW5zdXJlIGFib3V0IFBSRUZFVENIKiBhbmQgQ0xERU1PVEUgLSBi b3RoIGFyZSBjYWNoZSBtYW5hZ2VtZW50Cj4gaW5zbnMgdG9vLCBidXQgdGhlIGVtdWxhdG9yIGN1 cnJlbnRseSB0cmVhdHMgdGhlbSBhcyBhIE5PUCB3aXRob3V0Cj4gaW52b2tpbmcgYW55IGhvb2tz Lgo+IEkgd2FzIGFsc28gdW5jZXJ0YWluIGFib3V0IHRoZSBuZXcgY2FjaGVfZmx1c2hfcGVybWl0 dGVkKCkgaW5zdGFuY2UgLQo+IGdlbmVyYWxseSBJIHRoaW5rIGl0IHdvdWxkbid0IGJlIHRvbyBi YWQgaWYgd2UgYWxsb3dlZCBsaW5lIGZsdXNoZXMgaW4KPiBhbGwgY2FzZXMsIGluIHdoaWNoIGNh c2UgdGhlIGNoZWNrcyBpbiB0aGUgLT53YmludmRfaW50ZXJjZXB0KCkgaGFuZGxlcnMKPiB3b3Vs ZCBzdWZmaWNlIChhcyB0aGV5IGRpZCB1bnRpbCBub3cpLgo+IAo+IC0tLSBhL3Rvb2xzL2Z1enov eDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCj4gKysrIGIvdG9vbHMvZnV6ei94 ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMKPiBAQCAtMzgyLDEwICszODIsMTMg QEAgc3RhdGljIGludCBmdXp6X2ludmxwZygKPiAgICAgICByZXR1cm4gbWF5YmVfZmFpbChjdHh0 LCAiaW52bHBnIiwgZmFsc2UpOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyBpbnQgZnV6el93YmludmQo Cj4gK3N0YXRpYyBpbnQgZnV6el9jYWNoZV9vcCgKPiArICAgIGVudW0geDg2ZW11bF9jYWNoZV9v cCBvcCwKPiArICAgIGVudW0geDg2X3NlZ21lbnQgc2VnLAo+ICsgICAgdW5zaWduZWQgbG9uZyBv ZmZzZXQsCj4gICAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCj4gICB7Cj4gLSAg ICByZXR1cm4gbWF5YmVfZmFpbChjdHh0LCAid2JpbnZkIiwgdHJ1ZSk7Cj4gKyAgICByZXR1cm4g bWF5YmVfZmFpbChjdHh0LCAiY2FjaGUtbWFuYWdlbWVudCIsIHRydWUpOwo+ICAgfQo+ICAgCj4g ICBzdGF0aWMgaW50IGZ1enpfd3JpdGVfaW8oCj4gQEAgLTYyMCw3ICs2MjMsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHg4Nl9lbXVsYXRlX29wcyBhbGxfCj4gICAgICAgU0VUKHJlYWRfeGNyKSwK PiAgICAgICBTRVQocmVhZF9tc3IpLAo+ICAgICAgIFNFVCh3cml0ZV9tc3IpLAo+IC0gICAgU0VU KHdiaW52ZCksCj4gKyAgICBTRVQoY2FjaGVfb3ApLAo+ICAgICAgIFNFVChpbnZscGcpLAo+ICAg ICAgIC5nZXRfZnB1ICAgID0gZW11bF90ZXN0X2dldF9mcHUsCj4gICAgICAgLnB1dF9mcHUgICAg PSBlbXVsX3Rlc3RfcHV0X2ZwdSwKPiBAQCAtNzI5LDcgKzczMiw3IEBAIGVudW0gewo+ICAgICAg IEhPT0tfcmVhZF94Y3IsCj4gICAgICAgSE9PS19yZWFkX21zciwKPiAgICAgICBIT09LX3dyaXRl X21zciwKPiAtICAgIEhPT0tfd2JpbnZkLAo+ICsgICAgSE9PS19jYWNoZV9vcCwKPiAgICAgICBI T09LX2NwdWlkLAo+ICAgICAgIEhPT0tfaW5qZWN0X2h3X2V4Y2VwdGlvbiwKPiAgICAgICBIT09L X2luamVjdF9zd19pbnRlcnJ1cHQsCj4gQEAgLTc3Myw3ICs3NzYsNyBAQCBzdGF0aWMgdm9pZCBk aXNhYmxlX2hvb2tzKHN0cnVjdCB4ODZfZW11Cj4gICAgICAgTUFZQkVfRElTQUJMRV9IT09LKHJl YWRfeGNyKTsKPiAgICAgICBNQVlCRV9ESVNBQkxFX0hPT0socmVhZF9tc3IpOwo+ICAgICAgIE1B WUJFX0RJU0FCTEVfSE9PSyh3cml0ZV9tc3IpOwo+IC0gICAgTUFZQkVfRElTQUJMRV9IT09LKHdi aW52ZCk7Cj4gKyAgICBNQVlCRV9ESVNBQkxFX0hPT0soY2FjaGVfb3ApOwo+ICAgICAgIE1BWUJF X0RJU0FCTEVfSE9PSyhjcHVpZCk7Cj4gICAgICAgTUFZQkVfRElTQUJMRV9IT09LKGdldF9mcHUp Owo+ICAgICAgIE1BWUJFX0RJU0FCTEVfSE9PSyhpbnZscGcpOwo+IC0tLSBhL3hlbi9hcmNoL3g4 Ni9SdWxlcy5tawo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9SdWxlcy5tawo+IEBAIC0xOSw3ICsxOSw5 IEBAICQoY2FsbCBhcy1vcHRpb24tYWRkLENGTEFHUyxDQywiY3JjMzIgJWUKPiAgICQoY2FsbCBh cy1vcHRpb24tYWRkLENGTEFHUyxDQywiaW52ZXB0ICglcmF4KSQkKGNvbW1hKSVyYXgiLC1ESEFW RV9BU19FUFQpCj4gICAkKGNhbGwgYXMtb3B0aW9uLWFkZCxDRkxBR1MsQ0MsInJkcmFuZCAlZWF4 IiwtREhBVkVfQVNfUkRSQU5EKQo+ICAgJChjYWxsIGFzLW9wdGlvbi1hZGQsQ0ZMQUdTLENDLCJy ZGZzYmFzZSAlcmF4IiwtREhBVkVfQVNfRlNHU0JBU0UpCj4gKyQoY2FsbCBhcy1vcHRpb24tYWRk LENGTEFHUyxDQywieHNhdmVvcHQgKCVyYXgpIiwtREhBVkVfQVNfWFNBVkVPUFQpCj4gICAkKGNh bGwgYXMtb3B0aW9uLWFkZCxDRkxBR1MsQ0MsInJkc2VlZCAlZWF4IiwtREhBVkVfQVNfUkRTRUVE KQo+ICskKGNhbGwgYXMtb3B0aW9uLWFkZCxDRkxBR1MsQ0MsImNsd2IgKCVyYXgpIiwtREhBVkVf QVNfQ0xXQikKPiAgICQoY2FsbCBhcy1vcHRpb24tYWRkLENGTEFHUyxDQywiLmVxdSBcInhcIiQk KGNvbW1hKTEiLCBcCj4gICAgICAgICAgICAgICAgICAgICAgICAtVV9fT0JKRUNUX0xBQkVMX18g LURIQVZFX0FTX1FVT1RFRF9TWU0gXAo+ICAgICAgICAgICAgICAgICAgICAgICAgJy1EX19PQkpF Q1RfTEFCRUxfXz0kKHN1YnN0ICQoQkFTRURJUikvLCwkKENVUkRJUikpLyQkQCcpCj4gLS0tIGEv eGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxh dGUuYwo+IEBAIC0yNSw2ICsyNSw3IEBACj4gICAjaW5jbHVkZSA8YXNtL2h2bS90cmFjZS5oPgo+ ICAgI2luY2x1ZGUgPGFzbS9odm0vc3VwcG9ydC5oPgo+ICAgI2luY2x1ZGUgPGFzbS9odm0vc3Zt L3N2bS5oPgo+ICsjaW5jbHVkZSA8YXNtL2lvY2FwLmg+Cj4gICAjaW5jbHVkZSA8YXNtL3ZtX2V2 ZW50Lmg+Cj4gICAKPiAgIHN0YXRpYyB2b2lkIGh2bXRyYWNlX2lvX2Fzc2lzdChjb25zdCBpb3Jl cV90ICpwKQo+IEBAIC01NTUsMTYgKzU1NiwxMiBAQCBzdGF0aWMgdm9pZCAqaHZtZW11bF9tYXBf bGluZWFyX2FkZHIoCj4gICAgICAgbWZuX3QgKm1mbiA9ICZodm1lbXVsX2N0eHQtPm1mblswXTsK PiAgIAo+ICAgICAgIC8qCj4gLSAgICAgKiBUaGUgY2FsbGVyIGhhcyBubyBsZWdpdGltYXRlIHJl YXNvbiBmb3IgdHJ5aW5nIGEgemVyby1ieXRlIHdyaXRlLCBidXQKPiAtICAgICAqIGFsbCBvdGhl ciBjb2RlIGhlcmUgaXMgd3JpdHRlbiB0byB3b3JrIGlmIHRoZSBjaGVjayBiZWxvdyB3YXMgZHJv cHBlZC4KPiAtICAgICAqCj4gLSAgICAgKiBUaGUgbWF4aW11bSB3cml0ZSBzaXplIGRlcGVuZHMg b24gdGhlIG51bWJlciBvZiBhZGphY2VudCBtZm5zW10gd2hpY2gKPiArICAgICAqIFRoZSBtYXhp bXVtIGFjY2VzcyBzaXplIGRlcGVuZHMgb24gdGhlIG51bWJlciBvZiBhZGphY2VudCBtZm5zW10g d2hpY2gKPiAgICAgICAgKiBjYW4gYmUgdm1hcCgpJ2QsIGFjY291dGluZyBmb3IgcG9zc2libGUg bWlzYWxpZ25tZW50IHdpdGhpbiB0aGUgcmVnaW9uLgo+ICAgICAgICAqIFRoZSBoaWdoZXIgbGV2 ZWwgZW11bGF0aW9uIGNhbGxlcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBlbnN1cmluZyB0aGF0Cj4g LSAgICAgKiBtZm5zW10gaXMgbGFyZ2UgZW5vdWdoIGZvciB0aGUgcmVxdWVzdGVkIHdyaXRlIHNp emUuCj4gKyAgICAgKiBtZm5zW10gaXMgbGFyZ2UgZW5vdWdoIGZvciB0aGUgcmVxdWVzdGVkIGFj Y2VzcyBzaXplLgo+ICAgICAgICAqLwo+IC0gICAgaWYgKCBieXRlcyA9PSAwIHx8Cj4gLSAgICAg ICAgIG5yX2ZyYW1lcyA+IEFSUkFZX1NJWkUoaHZtZW11bF9jdHh0LT5tZm4pICkKPiArICAgIGlm ICggbnJfZnJhbWVzID4gQVJSQVlfU0laRShodm1lbXVsX2N0eHQtPm1mbikgKQo+ICAgICAgIHsK PiAgICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7Cj4gICAgICAgICAgIGdvdG8gdW5oYW5k bGVhYmxlOwo+IEBAIC02NjksOCArNjY2LDYgQEAgc3RhdGljIHZvaWQgaHZtZW11bF91bm1hcF9s aW5lYXJfYWRkcigKPiAgICAgICB1bnNpZ25lZCBpbnQgaTsKPiAgICAgICBtZm5fdCAqbWZuID0g Jmh2bWVtdWxfY3R4dC0+bWZuWzBdOwo+ICAgCj4gLSAgICBBU1NFUlQoYnl0ZXMgPiAwKTsKPiAt Cj4gICAgICAgaWYgKCBucl9mcmFtZXMgPT0gMSApCj4gICAgICAgICAgIHVubWFwX2RvbWFpbl9w YWdlKG1hcHBpbmcpOwo+ICAgICAgIGVsc2UKPiBAQCAtMTQ3Myw3ICsxNDY4LDEwIEBAIHN0YXRp YyBpbnQgaHZtZW11bF93cml0ZV9tc3JfZGlzY2FyZCgKPiAgICAgICByZXR1cm4gWDg2RU1VTF9P S0FZOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyBpbnQgaHZtZW11bF93YmludmRfZGlzY2FyZCgKPiAr c3RhdGljIGludCBodm1lbXVsX2NhY2hlX29wX2Rpc2NhcmQoCj4gKyAgICBlbnVtIHg4NmVtdWxf Y2FjaGVfb3Agb3AsCj4gKyAgICBlbnVtIHg4Nl9zZWdtZW50IHNlZywKPiArICAgIHVuc2lnbmVk IGxvbmcgb2Zmc2V0LAo+ICAgICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQo+ICAg ewo+ICAgICAgIHJldHVybiBYODZFTVVMX09LQVk7Cj4gQEAgLTIxNDksMTAgKzIxNDcsNjUgQEAg c3RhdGljIGludCBodm1lbXVsX3dyaXRlX21zcigKPiAgICAgICByZXR1cm4gcmM7Cj4gICB9Cj4g ICAKPiAtc3RhdGljIGludCBodm1lbXVsX3diaW52ZCgKPiArc3RhdGljIGludCBodm1lbXVsX2Nh Y2hlX29wKAo+ICsgICAgZW51bSB4ODZlbXVsX2NhY2hlX29wIG9wLAo+ICsgICAgZW51bSB4ODZf c2VnbWVudCBzZWcsCj4gKyAgICB1bnNpZ25lZCBsb25nIG9mZnNldCwKPiAgICAgICBzdHJ1Y3Qg eDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKPiAgIHsKPiAtICAgIGFsdGVybmF0aXZlX3ZjYWxsKGh2 bV9mdW5jcy53YmludmRfaW50ZXJjZXB0KTsKPiArICAgIHN0cnVjdCBodm1fZW11bGF0ZV9jdHh0 ICpodm1lbXVsX2N0eHQgPQo+ICsgICAgICAgIGNvbnRhaW5lcl9vZihjdHh0LCBzdHJ1Y3QgaHZt X2VtdWxhdGVfY3R4dCwgY3R4dCk7Cj4gKyAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHJlcHMgPSAx Owo+ICsgICAgdWludDMyX3QgcGZlYyA9IFBGRUNfcGFnZV9wcmVzZW50Owo+ICsgICAgaW50IHJj Owo+ICsgICAgdm9pZCAqbWFwcGluZzsKPiArCj4gKyAgICBpZiAoICFjYWNoZV9mbHVzaF9wZXJt aXR0ZWQoY3VycmVudC0+ZG9tYWluKSApCj4gKyAgICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsK PiArCj4gKyAgICBzd2l0Y2ggKCBvcCApCj4gKyAgICB7Cj4gKyAgICBjYXNlIHg4NmVtdWxfY2xm bHVzaDoKPiArICAgIGNhc2UgeDg2ZW11bF9jbGZsdXNob3B0Ogo+ICsgICAgY2FzZSB4ODZlbXVs X2Nsd2I6Cj4gKyAgICAgICAgQVNTRVJUKCFpc194ODZfc3lzdGVtX3NlZ21lbnQoc2VnKSk7Cj4g Kwo+ICsgICAgICAgIHJjID0gaHZtZW11bF92aXJ0dWFsX3RvX2xpbmVhcihzZWcsIG9mZnNldCwg MCwgJnJlcHMsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh2bV9h Y2Nlc3NfcmVhZCwgaHZtZW11bF9jdHh0LCAmYWRkcik7Cj4gKyAgICAgICAgaWYgKCByYyAhPSBY ODZFTVVMX09LQVkgKQo+ICsgICAgICAgICAgICBicmVhazsKPiArCj4gKyAgICAgICAgaWYgKCBo dm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10uZHBsID09IDMgKQo+ICsgICAgICAgICAg ICBwZmVjIHw9IFBGRUNfdXNlcl9tb2RlOwo+ICsKPiArICAgICAgICBtYXBwaW5nID0gaHZtZW11 bF9tYXBfbGluZWFyX2FkZHIoYWRkciwgMCwgcGZlYywgaHZtZW11bF9jdHh0LAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LT5hcmNoLmh2bS5kYXRh X2NhY2hlKTsKPiArICAgICAgICBpZiAoIG1hcHBpbmcgPT0gRVJSX1BUUih+WDg2RU1VTF9FWENF UFRJT04pICkKPiArICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwo+ICsgICAg ICAgIGlmICggSVNfRVJSX09SX05VTEwobWFwcGluZykgKQo+ICsgICAgICAgICAgICBicmVhazsK PiArCj4gKyAgICAgICAgaWYgKCBjcHVfaGFzX2NsZmx1c2ggKQo+ICsgICAgICAgIHsKPiArICAg ICAgICAgICAgaWYgKCBvcCA9PSB4ODZlbXVsX2Nsd2IgJiYgY3B1X2hhc19jbHdiICkKPiArICAg ICAgICAgICAgICAgIGNsd2IobWFwcGluZyk7Cj4gKyAgICAgICAgICAgIGVsc2UgaWYgKCBvcCA9 PSB4ODZlbXVsX2NsZmx1c2hvcHQgJiYgY3B1X2hhc19jbGZsdXNob3B0ICkKPiArICAgICAgICAg ICAgICAgIGNsZmx1c2hvcHQobWFwcGluZyk7Cj4gKyAgICAgICAgICAgIGVsc2UKPiArICAgICAg ICAgICAgICAgIGNsZmx1c2gobWFwcGluZyk7Cj4gKwo+ICsgICAgICAgICAgICBodm1lbXVsX3Vu bWFwX2xpbmVhcl9hZGRyKG1hcHBpbmcsIGFkZHIsIDAsIGh2bWVtdWxfY3R4dCk7Cj4gKyAgICAg ICAgICAgIGJyZWFrOwo+ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAgaHZtZW11bF91bm1hcF9s aW5lYXJfYWRkcihtYXBwaW5nLCBhZGRyLCAwLCBodm1lbXVsX2N0eHQpOwo+ICsgICAgICAgIC8q IGZhbGwgdGhyb3VnaCAqLwo+ICsgICAgY2FzZSB4ODZlbXVsX2ludmQ6Cj4gKyAgICBjYXNlIHg4 NmVtdWxfd2JpbnZkOgo+ICsgICAgICAgIGFsdGVybmF0aXZlX3ZjYWxsKGh2bV9mdW5jcy53Ymlu dmRfaW50ZXJjZXB0KTsKPiArICAgICAgICBicmVhazsKPiArICAgIH0KPiArCj4gICAgICAgcmV0 dXJuIFg4NkVNVUxfT0tBWTsKPiAgIH0KPiAgIAo+IEBAIC0yMzUzLDcgKzI0MDYsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHg4Nl9lbXVsYXRlX29wcyBodm1fCj4gICAgICAgLndyaXRlX3hjciAg ICAgPSBodm1lbXVsX3dyaXRlX3hjciwKPiAgICAgICAucmVhZF9tc3IgICAgICA9IGh2bWVtdWxf cmVhZF9tc3IsCj4gICAgICAgLndyaXRlX21zciAgICAgPSBodm1lbXVsX3dyaXRlX21zciwKPiAt ICAgIC53YmludmQgICAgICAgID0gaHZtZW11bF93YmludmQsCj4gKyAgICAuY2FjaGVfb3AgICAg ICA9IGh2bWVtdWxfY2FjaGVfb3AsCj4gICAgICAgLmNwdWlkICAgICAgICAgPSB4ODZlbXVsX2Nw dWlkLAo+ICAgICAgIC5nZXRfZnB1ICAgICAgID0gaHZtZW11bF9nZXRfZnB1LAo+ICAgICAgIC5w dXRfZnB1ICAgICAgID0gaHZtZW11bF9wdXRfZnB1LAo+IEBAIC0yMzgwLDcgKzI0MzMsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHg4Nl9lbXVsYXRlX29wcyBodm1fCj4gICAgICAgLndyaXRlX3hj ciAgICAgPSBodm1lbXVsX3dyaXRlX3hjciwKPiAgICAgICAucmVhZF9tc3IgICAgICA9IGh2bWVt dWxfcmVhZF9tc3IsCj4gICAgICAgLndyaXRlX21zciAgICAgPSBodm1lbXVsX3dyaXRlX21zcl9k aXNjYXJkLAo+IC0gICAgLndiaW52ZCAgICAgICAgPSBodm1lbXVsX3diaW52ZF9kaXNjYXJkLAo+ ICsgICAgLmNhY2hlX29wICAgICAgPSBodm1lbXVsX2NhY2hlX29wX2Rpc2NhcmQsCj4gICAgICAg LmNwdWlkICAgICAgICAgPSB4ODZlbXVsX2NwdWlkLAo+ICAgICAgIC5nZXRfZnB1ICAgICAgID0g aHZtZW11bF9nZXRfZnB1LAo+ICAgICAgIC5wdXRfZnB1ICAgICAgID0gaHZtZW11bF9wdXRfZnB1 LAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYwo+ICsrKyBiL3hlbi9hcmNo L3g4Ni9wdi9lbXVsLXByaXYtb3AuYwo+IEBAIC0xMTE4LDkgKzExMTgsMTEgQEAgc3RhdGljIGlu dCB3cml0ZV9tc3IodW5zaWduZWQgaW50IHJlZywgdQo+ICAgICAgIHJldHVybiBYODZFTVVMX1VO SEFORExFQUJMRTsKPiAgIH0KPiAgIAo+IC0vKiBOYW1lIGl0IGRpZmZlcmVudGx5IHRvIGF2b2lk IGNsYXNoaW5nIHdpdGggd2JpbnZkKCkgKi8KPiAtc3RhdGljIGludCBfd2JpbnZkKHN0cnVjdCB4 ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQo+ICtzdGF0aWMgaW50IGNhY2hlX29wKGVudW0geDg2ZW11 bF9jYWNoZV9vcCBvcCwgZW51bSB4ODZfc2VnbWVudCBzZWcsCj4gKyAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQo+ ICAgewo+ICsgICAgQVNTRVJUKG9wID09IHg4NmVtdWxfd2JpbnZkKTsKPiArCj4gICAgICAgLyog SWdub3JlIHRoZSBpbnN0cnVjdGlvbiBpZiB1bnByaXZpbGVnZWQuICovCj4gICAgICAgaWYgKCAh Y2FjaGVfZmx1c2hfcGVybWl0dGVkKGN1cnJlbnQtPmRvbWFpbikgKQo+ICAgICAgICAgICAvKgo+ IEBAIC0xMjM4LDcgKzEyNDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHg4Nl9lbXVsYXRlX29w cyBwcml2Cj4gICAgICAgLnJlYWRfbXNyICAgICAgICAgICAgPSByZWFkX21zciwKPiAgICAgICAu d3JpdGVfbXNyICAgICAgICAgICA9IHdyaXRlX21zciwKPiAgICAgICAuY3B1aWQgICAgICAgICAg ICAgICA9IHg4NmVtdWxfY3B1aWQsCj4gLSAgICAud2JpbnZkICAgICAgICAgICAgICA9IF93Ymlu dmQsCj4gKyAgICAuY2FjaGVfb3AgICAgICAgICAgICA9IGNhY2hlX29wLAo+ICAgfTsKPiAgIAo+ ICAgaW50IHB2X2VtdWxhdGVfcHJpdmlsZWdlZF9vcChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn cykKPiAtLS0gYS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYwo+ICsrKyBi L3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCj4gQEAgLTU5MzMsOCArNTkz MywxMSBAQCB4ODZfZW11bGF0ZSgKPiAgICAgICBjYXNlIFg4NkVNVUxfT1BDKDB4MGYsIDB4MDgp OiAvKiBpbnZkICovCj4gICAgICAgY2FzZSBYODZFTVVMX09QQygweDBmLCAweDA5KTogLyogd2Jp bnZkICovCj4gICAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZighbW9kZV9yaW5nMCgpLCBF WENfR1AsIDApOwo+IC0gICAgICAgIGZhaWxfaWYob3BzLT53YmludmQgPT0gTlVMTCk7Cj4gLSAg ICAgICAgaWYgKCAocmMgPSBvcHMtPndiaW52ZChjdHh0KSkgIT0gMCApCj4gKyAgICAgICAgZmFp bF9pZighb3BzLT5jYWNoZV9vcCk7Cj4gKyAgICAgICAgaWYgKCAocmMgPSBvcHMtPmNhY2hlX29w KGIgPT0gMHgwOSA/IHg4NmVtdWxfd2JpbnZkCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6IHg4NmVtdWxfaW52ZCwKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgeDg2X3NlZ19ub25lLCAwLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjdHh0KSkgIT0gWDg2RU1VTF9PS0FZICkKPiAgICAgICAgICAgICAgIGdvdG8gZG9u ZTsKPiAgICAgICAgICAgYnJlYWs7Cj4gICAKPiBAQCAtNzgwMSw4ICs3ODA0LDkgQEAgeDg2X2Vt dWxhdGUoCj4gICAgICAgICAgICAgICAvKiBlbHNlIGNsd2IgKi8KPiAgICAgICAgICAgICAgIGZh aWxfaWYoIXZleC5wZngpOwo+ICAgICAgICAgICAgICAgdmNwdV9tdXN0X2hhdmUoY2x3Yik7Cj4g LSAgICAgICAgICAgIGZhaWxfaWYoIW9wcy0+d2JpbnZkKTsKPiAtICAgICAgICAgICAgaWYgKCAo cmMgPSBvcHMtPndiaW52ZChjdHh0KSkgIT0gWDg2RU1VTF9PS0FZICkKPiArICAgICAgICAgICAg ZmFpbF9pZighb3BzLT5jYWNoZV9vcCk7Cj4gKyAgICAgICAgICAgIGlmICggKHJjID0gb3BzLT5j YWNoZV9vcCh4ODZlbXVsX2Nsd2IsIGVhLm1lbS5zZWcsIGVhLm1lbS5vZmYsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0KSkgIT0gWDg2RU1VTF9PS0FZICkKPiAg ICAgICAgICAgICAgICAgICBnb3RvIGRvbmU7Cj4gICAgICAgICAgICAgICBicmVhazsKPiAgICAg ICAgICAgY2FzZSA3Ogo+IEBAIC03ODE4LDggKzc4MjIsMTEgQEAgeDg2X2VtdWxhdGUoCj4gICAg ICAgICAgICAgICAgICAgdmNwdV9tdXN0X2hhdmUoY2xmbHVzaCk7Cj4gICAgICAgICAgICAgICBl bHNlCj4gICAgICAgICAgICAgICAgICAgdmNwdV9tdXN0X2hhdmUoY2xmbHVzaG9wdCk7Cj4gLSAg ICAgICAgICAgIGZhaWxfaWYob3BzLT53YmludmQgPT0gTlVMTCk7Cj4gLSAgICAgICAgICAgIGlm ICggKHJjID0gb3BzLT53YmludmQoY3R4dCkpICE9IDAgKQo+ICsgICAgICAgICAgICBmYWlsX2lm KCFvcHMtPmNhY2hlX29wKTsKPiArICAgICAgICAgICAgaWYgKCAocmMgPSBvcHMtPmNhY2hlX29w KHZleC5wZnggPyB4ODZlbXVsX2NsZmx1c2hvcHQKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOiB4ODZlbXVsX2NsZmx1c2gsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlYS5tZW0uc2VnLCBlYS5tZW0ub2ZmLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4dCkpICE9IFg4NkVNVUxfT0tBWSApCj4g ICAgICAgICAgICAgICAgICAgZ290byBkb25lOwo+ICAgICAgICAgICAgICAgYnJlYWs7Cj4gICAg ICAgICAgIGRlZmF1bHQ6Cj4gLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVs YXRlLmgKPiArKysgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuaAo+IEBA IC0xNzYsNiArMTc2LDE0IEBAIGVudW0geDg2X2VtdWxhdGVfZnB1X3R5cGUgewo+ICAgICAgIFg4 NkVNVUxfRlBVX25vbmUKPiAgIH07Cj4gICAKPiArZW51bSB4ODZlbXVsX2NhY2hlX29wIHsKPiAr ICAgIHg4NmVtdWxfY2xmbHVzaCwKPiArICAgIHg4NmVtdWxfY2xmbHVzaG9wdCwKPiArICAgIHg4 NmVtdWxfY2x3YiwKPiArICAgIHg4NmVtdWxfaW52ZCwKPiArICAgIHg4NmVtdWxfd2JpbnZkLAo+ ICt9Owo+ICsKPiAgIHN0cnVjdCB4ODZfZW11bGF0ZV9zdGF0ZTsKPiAgIAo+ICAgLyoKPiBAQCAt NDUyLDggKzQ2MCwxNSBAQCBzdHJ1Y3QgeDg2X2VtdWxhdGVfb3BzCj4gICAgICAgICAgIHVpbnQ2 NF90IHZhbCwKPiAgICAgICAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpOwo+ICAg Cj4gLSAgICAvKiB3YmludmQ6IFdyaXRlLWJhY2sgYW5kIGludmFsaWRhdGUgY2FjaGUgY29udGVu dHMuICovCj4gLSAgICBpbnQgKCp3YmludmQpKAo+ICsgICAgLyoKPiArICAgICAqIGNhY2hlX29w OiBXcml0ZS1iYWNrIGFuZC9vciBpbnZhbGlkYXRlIGNhY2hlIGNvbnRlbnRzLgo+ICsgICAgICoK PiArICAgICAqIEBzZWc6QG9mZnNldCBhcHBsaWNhYmxlIG9ubHkgdG8gc29tZSBvZiBlbnVtIHg4 NmVtdWxfY2FjaGVfb3AuCj4gKyAgICAgKi8KPiArICAgIGludCAoKmNhY2hlX29wKSgKPiArICAg ICAgICBlbnVtIHg4NmVtdWxfY2FjaGVfb3Agb3AsCj4gKyAgICAgICAgZW51bSB4ODZfc2VnbWVu dCBzZWcsCj4gKyAgICAgICAgdW5zaWduZWQgbG9uZyBvZmZzZXQsCj4gICAgICAgICAgIHN0cnVj dCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KTsKPiAgIAo+ICAgICAgIC8qIGNwdWlkOiBFbXVsYXRl IENQVUlEIHZpYSBnaXZlbiBzZXQgb2YgRUFYLUVEWCBpbnB1dHMvb3V0cHV0cy4gKi8KPiAtLS0g YS94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvY3B1ZmVhdHVyZS5oCj4gQEAgLTEwMiw2ICsxMDIsOCBAQAo+ICAgI2RlZmluZSBjcHVf aGFzX3Jkc2VlZCAgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfUkRTRUVEKQo+ICAg I2RlZmluZSBjcHVfaGFzX3NtYXAgICAgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVf U01BUCkKPiAgICNkZWZpbmUgY3B1X2hhc19hdng1MTJfaWZtYSAgICAgYm9vdF9jcHVfaGFzKFg4 Nl9GRUFUVVJFX0FWWDUxMl9JRk1BKQo+ICsjZGVmaW5lIGNwdV9oYXNfY2xmbHVzaG9wdCAgICAg IGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DTEZMVVNIT1BUKQo+ICsjZGVmaW5lIGNwdV9oYXNf Y2x3YiAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DTFdCKQo+ICAgI2RlZmlu ZSBjcHVfaGFzX2F2eDUxMmVyICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVZYNTEy RVIpCj4gICAjZGVmaW5lIGNwdV9oYXNfYXZ4NTEyY2QgICAgICAgIGJvb3RfY3B1X2hhcyhYODZf RkVBVFVSRV9BVlg1MTJDRCkKPiAgICNkZWZpbmUgY3B1X2hhc19zaGEgICAgICAgICAgICAgYm9v dF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1NIQSkKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3N5 c3RlbS5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9zeXN0ZW0uaAo+IEBAIC0yMSw2ICsy MSwyMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY2xmbHVzaChjb25zdCB2b2lkICpwCj4gICAgICAg YXNtIHZvbGF0aWxlICggImNsZmx1c2ggJTAiIDo6ICJtIiAoKihjb25zdCBjaGFyICopcCkgKTsK PiAgIH0KPiAgIAo+ICtzdGF0aWMgaW5saW5lIHZvaWQgY2xmbHVzaG9wdChjb25zdCB2b2lkICpw KQo+ICt7Cj4gKyAgICBhc20gdm9sYXRpbGUgKCAiZGF0YTE2IGNsZmx1c2ggJTAiIDo6ICJtIiAo Kihjb25zdCBjaGFyICopcCkgKTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSB2b2lkIGNsd2Io Y29uc3Qgdm9pZCAqcCkKPiArewo+ICsjaWYgZGVmaW5lZChIQVZFX0FTX0NMV0IpCj4gKyAgICBh c20gdm9sYXRpbGUgKCAiY2x3YiAlMCIgOjogIm0iICgqKGNvbnN0IGNoYXIgKilwKSApOwo+ICsj ZWxpZiBkZWZpbmVkKEhBVkVfQVNfWFNBVkVPUFQpCj4gKyAgICBhc20gdm9sYXRpbGUgKCAiZGF0 YTE2IHhzYXZlb3B0ICUwIiA6OiAibSIgKCooY29uc3QgY2hhciAqKXApICk7Cj4gKyNlbHNlCj4g KyAgICBhc20gdm9sYXRpbGUgKCAiLmJ5dGUgMHg2NiwgMHgwZiwgMHhhZSwgMHgzMiIKPiArICAg ICAgICAgICAgICAgICAgIDo6ICJkIiAocCksICJtIiAoKihjb25zdCBjaGFyICopcCkgKTsKPiAr I2VuZGlmCj4gK30KPiArCj4gICAjZGVmaW5lIHhjaGcocHRyLHYpIFwKPiAgICAgICAoKF9fdHlw ZW9mX18oKihwdHIpKSlfX3hjaGcoKHVuc2lnbmVkIGxvbmcpKHYpLChwdHIpLHNpemVvZigqKHB0 cikpKSkKPiAgIAo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2 ZWw=