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=-8.0 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, FROM_EXCESS_BASE64,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, 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 0E5EEC3A59D for ; Thu, 22 Aug 2019 11:11: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 B898222CE3 for ; Thu, 22 Aug 2019 11:11:31 +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="e4wHB671" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B898222CE3 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 1i0kzr-0005IO-F6; Thu, 22 Aug 2019 11:11:15 +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 1i0kzp-0005IJ-Uv for xen-devel@lists.xenproject.org; Thu, 22 Aug 2019 11:11:14 +0000 X-Inumbo-ID: 8c953580-c4cd-11e9-add6-12813bfff9fa Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 8c953580-c4cd-11e9-add6-12813bfff9fa; Thu, 22 Aug 2019 11:11:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1566472272; h=date:from:to:cc:subject:message-id:references: mime-version:content-transfer-encoding:in-reply-to; bh=/8rw1pxziG+Wd3h6QMfQXqrXNU07TYMJclwrHCYp8eg=; b=e4wHB671/uDh7Dn3buC4H2sEPXa1mBWO7Ya0XiUFfZwdTLkX2TsPvFPz yGzrWxnUrB9A4AGlTbbePY/gmviGjtLpqFP9nxaodFs6QHoWf70AvUttN ak8fjj7yc2Pzk1gQ/ZwGxiIo9wRrO1HUEVGRVj8AmfDmM490n7shSyuKf g=; Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=roger.pau@citrix.com; spf=Pass smtp.mailfrom=roger.pau@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 roger.pau@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa6.hc3370-68.iphmx.com: domain of roger.pau@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="roger.pau@citrix.com"; x-sender="roger.pau@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="roger.pau@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: pwlFTF3o8cCnLsIZlmYCLpPQ+UX5QMkaHzAgr9VbVX3wcSkht93E3y0l1nXv5QMlCFEtd92yW/ fP9npqITSv/sEwO6QhHHvbzrIv2XmE8mC6B87YwXfLr/Yp7aRADKSFbEhKHrOAvcrbUrwZUXn6 hr0eD0VtLwj1QekzPUpuw7XA1mUNfeDcmTnggv4aDJvN+eDu9S3RucoyV06N0EEOICGxlYvm6m DF9bwccRg+7KWb6UiEvgvHVfLhBFRVBqD62BgE053pThHzQiY3gzVmdrQ6KlYpqiVu02Fxv9vb z/Q= X-SBRS: 2.7 X-MesageID: 4794054 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,416,1559534400"; d="scan'208";a="4794054" Date: Thu, 22 Aug 2019 13:11:04 +0200 From: Roger Pau =?utf-8?B?TW9ubsOp?= To: Chao Gao Message-ID: <20190822111104.f34725kacyiu63oy@Air-de-Roger> References: <1566177928-19114-1-git-send-email-chao.gao@intel.com> <1566177928-19114-5-git-send-email-chao.gao@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1566177928-19114-5-git-send-email-chao.gao@intel.com> User-Agent: NeoMutt/20180716 X-ClientProxiedBy: AMSPEX02CAS02.citrite.net (10.69.22.113) To AMSPEX02CL02.citrite.net (10.69.22.126) Subject: Re: [Xen-devel] [PATCH v9 04/15] microcode: introduce a global cache of ucode patch 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, Jan Beulich , Ashok Raj , 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" T24gTW9uLCBBdWcgMTksIDIwMTkgYXQgMDk6MjU6MTdBTSArMDgwMCwgQ2hhbyBHYW8gd3JvdGU6 Cj4gdG8gcmVwbGFjZSB0aGUgY3VycmVudCBwZXItY3B1IGNhY2hlICd1Y2ktPm1jJy4KPiAKPiBX aXRoIHRoZSBhc3N1bXB0aW9uIHRoYXQgYWxsIENQVXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRoZSBz YW1lIHNpZ25hdHVyZQo+IChmYW1pbHksIG1vZGVsLCBzdGVwcGluZyBhbmQgJ3BmJyksIG9uZSBt aWNyb2NvZGUgdXBkYXRlIG1hdGNoZXMgd2l0aAo+IG9uZSBjcHUgc2hvdWxkIG1hdGNoIHdpdGgg b3RoZXJzLiBIYXZpbmcgbXVsdGlwbGUgbWljcm9jb2RlIHJldmlzaW9ucwo+IG9uIGRpZmZlcmVu dCBjcHVzIHdvdWxkIGNhdXNlIHN5c3RlbSB1bnN0YWJsZSBhbmQgc2hvdWxkIGJlIGF2b2lkZWQu Cj4gSGVuY2UsIGNhY2hpbmcgb25seSBvbmUgbWljcm9jb2RlIHVwZGF0ZSBpcyBnb29kIGVub3Vn aCBmb3IgYWxsIGNhc2VzLgo+IAo+IEludHJvZHVjZSBhIGdsb2JhbCB2YXJpYWJsZSwgbWljcm9j b2RlX2NhY2hlLCB0byBzdG9yZSB0aGUgbmV3ZXN0Cj4gbWF0Y2hpbmcgbWljcm9jb2RlIHVwZGF0 ZS4gV2hlbmV2ZXIgd2UgZ2V0IGEgbmV3IHZhbGlkIG1pY3JvY29kZSB1cGRhdGUsCj4gaXRzIHJl dmlzaW9uIGlkIGlzIGNvbXBhcmVkIGFnYWluc3QgdGhhdCBvZiB0aGUgbWljcm9jb2RlIHVwZGF0 ZSB0bwo+IGRldGVybWluZSB3aGV0aGVyIHRoZSAibWljcm9jb2RlX2NhY2hlIiBuZWVkcyB0byBi ZSByZXBsYWNlZC4gQW5kCj4gdGhpcyBnbG9iYWwgY2FjaGUgaXMgbG9hZGVkIHRvIGNwdSBpbiBh cHBseV9taWNyb2NvZGUoKS4KPiAKPiBBbGwgb3BlcmF0aW9ucyBvbiB0aGUgY2FjaGUgaXMgcHJv dGVjdGVkIGJ5ICdtaWNyb2NvZGVfbXV0ZXgnLgo+IAo+IE5vdGUgdGhhdCBJIGRlbGliZXJhdGVs eSBhdm9pZCB0b3VjaGluZyB0aGUgb2xkIHBlci1jcHUgY2FjaGUgKCd1Y2ktPm1jJykKPiBhcyBJ IGFtIGdvaW5nIHRvIHJlbW92ZSBpdCBjb21wbGV0ZWx5IGluIHRoZSBmb2xsb3dpbmcgcGF0Y2hl cy4gV2UgY29weQo+IGV2ZXJ5dGhpbmcgdG8gY3JlYXRlIHRoZSBuZXcgY2FjaGUgYmxvYiB0byBh dm9pZCByZXVzaW5nIHNvbWUgYnVmZmVycwo+IHByZXZpb3VzbHkgYWxsb2NhdGVkIGZvciB0aGUg b2xkIHBlci1jcHUgY2FjaGUuIEl0IGlzIG5vdCBzbyBlZmZpY2llbnQsCj4gYnV0IGl0IGlzIGFs cmVhZHkgY29ycmVjdGVkIGJ5IGEgcGF0Y2ggbGF0ZXIgaW4gdGhpcyBzZXJpZXMuCj4gCj4gU2ln bmVkLW9mZi1ieTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KClJldmlld2VkLWJ5OiBS b2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KCkkgaGF2ZSBzb21lIG5pdHMg YmVsb3csIGJ1dCBJIGRvbid0IHRoaW5rIHRoZXkgYWZmZWN0IGZ1bmN0aW9uYWxpdHkgaW4KYW55 d2F5LCBoZW5jZSBteSBSQi4gSXQgd291bGQgYmUgbmljZSB0byBnZXQgdGhvc2UgZml4ZWQgYXMg Zm9sbG93LXVwcwppZiBvdGhlcnMgdGhpbmsgdGhlIGN1cnJlbnQgdmVyc2lvbiBpcyBzdWl0YWJs ZSBmb3IgY29tbWl0dGluZy4KCj4gLS0tCj4gQ2hhbmdlcyBpbiB2OToKPiAgLSBvbiBJbnRlbCBz aWRlLCAtPmNvbXBhcmVfcGF0Y2gganVzdCBjaGVja3MgdGhlIHBhdGNoIHJldmlzaW9uIG51bWJl ci4KPiAgLSBleHBsYWluIHdoeSBhbGwgYnVmZmVycyBhcmUgY29waWVkIGluIGFsbG9jX21pY3Jv Y29kZV9wYXRjaCgpIGluCj4gIHBhdGNoIGRlc2NyaXB0aW9uLgo+IAo+IENoYW5nZXMgaW4gdjg6 Cj4gIC0gRnJlZSBnZW5lcmljIHdyYXBwZXIgc3RydWN0IGluIGdlbmVyYWwgY29kZQo+ICAtIFRy eSB0byB1cGRhdGUgY2FjaGUgYXMgbG9uZyBhcyBhIHBhdGNoIGNvdmVycyBjdXJyZW50IGNwdS4g UHJldmlzb3VseSwKPiAgY2FjaGUgaXMgdXBkYXRlZCBvbmx5IGlmIHRoZSBwYXRjaCBpcyBuZXdl ciB0aGFuIGN1cnJlbnQgdXBkYXRlIHJldmlzaW9uIGluCj4gIHRoZSBDUFUuIFRoZSBzbWFsbCBk aWZmZXJlbmNlIGNhbiB3b3JrIGFyb3VuZCBhIGJyb2tlbiBiaW9zIHdoaWNoIG9ubHkKPiAgYXBw bGllcyBtaWNyb2NvZGUgdXBkYXRlIHRvIEJTUCBhbmQgc29mdHdhcmUgaGFzIHRvIGFwcGx5IHRo ZSBzYW1lCj4gIHVwZGF0ZSB0byBvdGhlciBDUFVzLgo+IAo+IENoYW5nZXMgaW4gdjc6Cj4gIC0g cmV3b3JrZWQgdG8gY2FjaGUgb25seSBvbmUgbWljcm9jb2RlIHBhdGNoIHJhdGhlciB0aGFuIGEg bGlzdCBvZgo+ICBtaWNyb2NvZGUgcGF0Y2hlcy4KPiAtLS0KPiAgeGVuL2FyY2gveDg2L21pY3Jv Y29kZS5jICAgICAgICB8IDM5ICsrKysrKysrKysrKysrKysrKwo+ICB4ZW4vYXJjaC94ODYvbWlj cm9jb2RlX2FtZC5jICAgIHwgOTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0KPiAgeGVuL2FyY2gveDg2L21pY3JvY29kZV9pbnRlbC5jICB8IDczICsrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLQo+ICB4ZW4vaW5jbHVkZS9hc20teDg2L21pY3JvY29kZS5o IHwgMTcgKysrKysrKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCAxOTcgaW5zZXJ0aW9ucygrKSwgMjIg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYyBi L3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYwo+IGluZGV4IDQyMWQ1N2UuLjBlY2QyZmQgMTAwNjQ0 Cj4gLS0tIGEveGVuL2FyY2gveDg2L21pY3JvY29kZS5jCj4gKysrIGIveGVuL2FyY2gveDg2L21p Y3JvY29kZS5jCj4gQEAgLTYxLDYgKzYxLDkgQEAgc3RhdGljIHN0cnVjdCB1Y29kZV9tb2RfYmxv YiBfX2luaXRkYXRhIHVjb2RlX2Jsb2I7Cj4gICAqLwo+ICBzdGF0aWMgYm9vbF90IF9faW5pdGRh dGEgdWNvZGVfc2NhbjsKPiAgCj4gKy8qIFByb3RlY3RlZCBieSBtaWNyb2NvZGVfbXV0ZXggKi8K PiArc3RhdGljIHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm1pY3JvY29kZV9jYWNoZTsKPiArCj4g IHZvaWQgX19pbml0IG1pY3JvY29kZV9zZXRfbW9kdWxlKHVuc2lnbmVkIGludCBpZHgpCj4gIHsK PiAgICAgIHVjb2RlX21vZF9pZHggPSBpZHg7Cj4gQEAgLTI2Miw2ICsyNjUsNDIgQEAgaW50IG1p Y3JvY29kZV9yZXN1bWVfY3B1KHVuc2lnbmVkIGludCBjcHUpCj4gICAgICByZXR1cm4gZXJyOwo+ ICB9Cj4gIAo+ICt2b2lkIG1pY3JvY29kZV9mcmVlX3BhdGNoKHN0cnVjdCBtaWNyb2NvZGVfcGF0 Y2ggKm1pY3JvY29kZV9wYXRjaCkKPiArewo+ICsgICAgbWljcm9jb2RlX29wcy0+ZnJlZV9wYXRj aChtaWNyb2NvZGVfcGF0Y2gtPm1jKTsKPiArICAgIHhmcmVlKG1pY3JvY29kZV9wYXRjaCk7Cj4g K30KPiArCj4gK2NvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm1pY3JvY29kZV9nZXRfY2Fj aGUodm9pZCkKPiArewo+ICsgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZtaWNyb2NvZGVfbXV0 ZXgpKTsKPiArCj4gKyAgICByZXR1cm4gbWljcm9jb2RlX2NhY2hlOwo+ICt9Cj4gKwo+ICsvKiBS ZXR1cm4gdHJ1ZSBpZiBjYWNoZSBnZXRzIHVwZGF0ZWQuIE90aGVyd2lzZSwgcmV0dXJuIGZhbHNl ICovCj4gK2Jvb2wgbWljcm9jb2RlX3VwZGF0ZV9jYWNoZShzdHJ1Y3QgbWljcm9jb2RlX3BhdGNo ICpwYXRjaCkKPiArewo+ICsKCk5pdDogZXh0cmEgbmV3bGluZSBhYm92ZS4KCj4gKyAgICBBU1NF UlQoc3Bpbl9pc19sb2NrZWQoJm1pY3JvY29kZV9tdXRleCkpOwo+ICsKPiArICAgIGlmICggIW1p Y3JvY29kZV9jYWNoZSApCj4gKyAgICAgICAgbWljcm9jb2RlX2NhY2hlID0gcGF0Y2g7Cj4gKyAg ICBlbHNlIGlmICggbWljcm9jb2RlX29wcy0+Y29tcGFyZV9wYXRjaChwYXRjaCwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pY3JvY29kZV9jYWNoZSkgPT0g TkVXX1VDT0RFICkKPiArICAgIHsKPiArICAgICAgICBtaWNyb2NvZGVfZnJlZV9wYXRjaChtaWNy b2NvZGVfY2FjaGUpOwo+ICsgICAgICAgIG1pY3JvY29kZV9jYWNoZSA9IHBhdGNoOwo+ICsgICAg fQo+ICsgICAgZWxzZQo+ICsgICAgewo+ICsgICAgICAgIG1pY3JvY29kZV9mcmVlX3BhdGNoKHBh dGNoKTsKPiArICAgICAgICByZXR1cm4gZmFsc2U7Cj4gKyAgICB9Cj4gKwo+ICsgICAgcmV0dXJu IHRydWU7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgbWljcm9jb2RlX3VwZGF0ZV9jcHUoY29uc3Qg dm9pZCAqYnVmLCBzaXplX3Qgc2l6ZSkKPiAgewo+ICAgICAgaW50IGVycjsKPiBkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L21pY3JvY29kZV9hbWQuYyBiL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVf YW1kLmMKPiBpbmRleCAzZGIzNTU1Li4zMDEyOWNhIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4 Ni9taWNyb2NvZGVfYW1kLmMKPiArKysgYi94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2FtZC5jCj4g QEAgLTE5MCwyNCArMTkwLDgzIEBAIHN0YXRpYyBlbnVtIG1pY3JvY29kZV9tYXRjaF9yZXN1bHQg bWljcm9jb2RlX2ZpdHMoCj4gICAgICByZXR1cm4gTkVXX1VDT0RFOwo+ICB9Cj4gIAo+ICtzdGF0 aWMgYm9vbCBtYXRjaF9jcHUoY29uc3Qgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2gpCj4g K3sKPiArICAgIGlmICggIXBhdGNoICkKPiArICAgICAgICByZXR1cm4gZmFsc2U7Cj4gKyAgICBy ZXR1cm4gbWljcm9jb2RlX2ZpdHMocGF0Y2gtPm1jX2FtZCwgc21wX3Byb2Nlc3Nvcl9pZCgpKSA9 PSBORVdfVUNPREU7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICph bGxvY19taWNyb2NvZGVfcGF0Y2goCj4gKyAgICBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAq bWNfYW1kKQo+ICt7Cj4gKyAgICBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICptaWNyb2NvZGVfcGF0 Y2ggPSB4bWFsbG9jKHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2gpOwo+ICsgICAgc3RydWN0IG1pY3Jv Y29kZV9hbWQgKmNhY2hlID0geG1hbGxvYyhzdHJ1Y3QgbWljcm9jb2RlX2FtZCk7Cj4gKyAgICB2 b2lkICptcGIgPSB4bWFsbG9jX2J5dGVzKG1jX2FtZC0+bXBiX3NpemUpOwo+ICsgICAgc3RydWN0 IGVxdWl2X2NwdV9lbnRyeSAqZXF1aXZfY3B1X3RhYmxlID0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB4bWFsbG9jX2J5dGVzKG1jX2FtZC0+ZXF1aXZfY3B1X3RhYmxlX3NpemUp Owo+ICsKPiArICAgIGlmICggIW1pY3JvY29kZV9wYXRjaCB8fCAhY2FjaGUgfHwgIW1wYiB8fCAh ZXF1aXZfY3B1X3RhYmxlICkKPiArICAgIHsKPiArICAgICAgICB4ZnJlZShtaWNyb2NvZGVfcGF0 Y2gpOwo+ICsgICAgICAgIHhmcmVlKGNhY2hlKTsKPiArICAgICAgICB4ZnJlZShtcGIpOwo+ICsg ICAgICAgIHhmcmVlKGVxdWl2X2NwdV90YWJsZSk7Cj4gKyAgICAgICAgcmV0dXJuIEVSUl9QVFIo LUVOT01FTSk7Cj4gKyAgICB9Cj4gKwo+ICsgICAgbWVtY3B5KG1wYiwgbWNfYW1kLT5tcGIsIG1j X2FtZC0+bXBiX3NpemUpOwo+ICsgICAgY2FjaGUtPm1wYiA9IG1wYjsKPiArICAgIGNhY2hlLT5t cGJfc2l6ZSA9IG1jX2FtZC0+bXBiX3NpemU7Cj4gKyAgICBtZW1jcHkoZXF1aXZfY3B1X3RhYmxl LCBtY19hbWQtPmVxdWl2X2NwdV90YWJsZSwKPiArICAgICAgICAgICBtY19hbWQtPmVxdWl2X2Nw dV90YWJsZV9zaXplKTsKPiArICAgIGNhY2hlLT5lcXVpdl9jcHVfdGFibGUgPSBlcXVpdl9jcHVf dGFibGU7Cj4gKyAgICBjYWNoZS0+ZXF1aXZfY3B1X3RhYmxlX3NpemUgPSBtY19hbWQtPmVxdWl2 X2NwdV90YWJsZV9zaXplOwo+ICsgICAgbWljcm9jb2RlX3BhdGNoLT5tY19hbWQgPSBjYWNoZTsK PiArCj4gKyAgICByZXR1cm4gbWljcm9jb2RlX3BhdGNoOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9p ZCBmcmVlX3BhdGNoKHZvaWQgKm1jKQo+ICt7Cj4gKyAgICBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAq bWNfYW1kID0gbWM7Cj4gKwo+ICsgICAgeGZyZWUobWNfYW1kLT5lcXVpdl9jcHVfdGFibGUpOwo+ ICsgICAgeGZyZWUobWNfYW1kLT5tcGIpOwo+ICsgICAgeGZyZWUobWNfYW1kKTsKPiArfQoKSXQn cyBhc3ltbWV0cmljIHRoYXQgYWxsb2NfbWljcm9jb2RlX3BhdGNoIGFsbG9jYXRlcyBtaWNyb2Nv ZGVfcGF0Y2gsCmJ1dCBmcmVlX3BhdGNoIGRvZXNuJ3QgZnJlZSBpdC4gTm90IGEgYmlnIGRlYWws IGJ1dCBpdCB3b3VsZCBiZSBnb29kCnRvIG1ha2UgdGhpcyBzeW1tZXRyaWMgSU1PLgoKPiArCj4g K3N0YXRpYyBlbnVtIG1pY3JvY29kZV9tYXRjaF9yZXN1bHQgY29tcGFyZV9wYXRjaCgKPiArICAg IGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm5ldywgY29uc3Qgc3RydWN0IG1pY3JvY29k ZV9wYXRjaCAqb2xkKQo+ICt7Cj4gKyAgICBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAqbmV3 X21jID0gbmV3LT5tY19hbWQ7Cj4gKyAgICBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9h bWQgKm5ld19oZWFkZXIgPSBuZXdfbWMtPm1wYjsKPiArICAgIGNvbnN0IHN0cnVjdCBtaWNyb2Nv ZGVfYW1kICpvbGRfbWMgPSBvbGQtPm1jX2FtZDsKPiArICAgIGNvbnN0IHN0cnVjdCBtaWNyb2Nv ZGVfaGVhZGVyX2FtZCAqb2xkX2hlYWRlciA9IG9sZF9tYy0+bXBiOwoKVGhlIGxvY2FsIHZhcmlh YmxlcyBuZXdfbWMvb2xkX21jIGFyZSB1c2VkIGp1c3Qgb25lLCBhbmQgaGVuY2UgYXJlCm5vdCBy ZWFsbHkgaGVscGZ1bCBJTU8sIHlvdSBjb3VsZCBqdXN0IGRvOgoKY29uc3Qgc3RydWN0IG1pY3Jv Y29kZV9oZWFkZXJfYW1kICpuZXdfaGVhZGVyID0gbmV3LT5tY19hbWQtPm1wYjsKY29uc3Qgc3Ry dWN0IG1pY3JvY29kZV9oZWFkZXJfYW1kICpvbGRfaGVhZGVyID0gb2xkLT5tY19hbWQtPm1wYjsK CkFnYWluLCBqdXN0IGEgbml0LgoKPiArCj4gKyAgICBpZiAoIG5ld19oZWFkZXItPnByb2Nlc3Nv cl9yZXZfaWQgPT0gb2xkX2hlYWRlci0+cHJvY2Vzc29yX3Jldl9pZCApCj4gKyAgICAgICAgcmV0 dXJuIChuZXdfaGVhZGVyLT5wYXRjaF9pZCA+IG9sZF9oZWFkZXItPnBhdGNoX2lkKSA/Cj4gKyAg ICAgICAgICAgICAgICBORVdfVUNPREUgOiBPTERfVUNPREU7Cj4gKwo+ICsgICAgcmV0dXJuIE1J U19VQ09ERTsKPiArfQo+ICsKPiAgc3RhdGljIGludCBhcHBseV9taWNyb2NvZGUodW5zaWduZWQg aW50IGNwdSkKPiAgewo+ICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKPiAgICAgIHN0cnVjdCB1 Y29kZV9jcHVfaW5mbyAqdWNpID0gJnBlcl9jcHUodWNvZGVfY3B1X2luZm8sIGNwdSk7Cj4gICAg ICB1aW50MzJfdCByZXY7Cj4gLSAgICBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAqbWNfYW1kID0gdWNp LT5tYy5tY19hbWQ7Cj4gLSAgICBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9hbWQgKmhkcjsKPiAg ICAgIGludCBod19lcnI7Cj4gKyAgICBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9hbWQg KmhkcjsKPiArICAgIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKnBhdGNoID0gbWljcm9j b2RlX2dldF9jYWNoZSgpOwo+ICAKPiAgICAgIC8qIFdlIHNob3VsZCBiaW5kIHRoZSB0YXNrIHRv IHRoZSBDUFUgKi8KPiAgICAgIEJVR19PTihyYXdfc21wX3Byb2Nlc3Nvcl9pZCgpICE9IGNwdSk7 Cj4gIAo+IC0gICAgaWYgKCBtY19hbWQgPT0gTlVMTCApCj4gKyAgICBpZiAoICFtYXRjaF9jcHUo cGF0Y2gpICkKPiAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKCkFub3RoZXIgbml0LCBidXQgIXBh dGNoIHNob3VsZCBnZXQgRU5PRU5UIHJhdGhlciB0aGFuIEVJTlZBTCBJTU8uCgo+ICAKPiAtICAg IGhkciA9IG1jX2FtZC0+bXBiOwo+IC0gICAgaWYgKCBoZHIgPT0gTlVMTCApCj4gLSAgICAgICAg cmV0dXJuIC1FSU5WQUw7Cj4gKyAgICBoZHIgPSBwYXRjaC0+bWNfYW1kLT5tcGI7Cj4gIAo+ICAg ICAgc3Bpbl9sb2NrX2lycXNhdmUoJm1pY3JvY29kZV91cGRhdGVfbG9jaywgZmxhZ3MpOwo+ICAK PiBAQCAtNDk2LDcgKzU1NSwyMSBAQCBzdGF0aWMgaW50IGNwdV9yZXF1ZXN0X21pY3JvY29kZSh1 bnNpZ25lZCBpbnQgY3B1LCBjb25zdCB2b2lkICpidWYsCj4gICAgICB3aGlsZSAoIChlcnJvciA9 IGdldF91Y29kZV9mcm9tX2J1ZmZlcl9hbWQobWNfYW1kLCBidWYsIGJ1ZnNpemUsCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9mZnNldCkpID09IDAg KQo+ICAgICAgewo+IC0gICAgICAgIGlmICggbWljcm9jb2RlX2ZpdHMobWNfYW1kLCBjcHUpID09 IE5FV19VQ09ERSApCj4gKyAgICAgICAgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqbmV3X3BhdGNo ID0gYWxsb2NfbWljcm9jb2RlX3BhdGNoKG1jX2FtZCk7Cj4gKwo+ICsgICAgICAgIGlmICggSVNf RVJSKG5ld19wYXRjaCkgKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgZXJyb3IgPSBQVFJf RVJSKG5ld19wYXRjaCk7Cj4gKyAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgIH0KPiArCj4g KyAgICAgICAgLyogVXBkYXRlIGNhY2hlIGlmIHRoaXMgcGF0Y2ggY292ZXJzIGN1cnJlbnQgQ1BV ICovCj4gKyAgICAgICAgaWYgKCBtaWNyb2NvZGVfZml0cyhuZXdfcGF0Y2gtPm1jX2FtZCwgY3B1 KSAhPSBNSVNfVUNPREUgKQo+ICsgICAgICAgICAgICBtaWNyb2NvZGVfdXBkYXRlX2NhY2hlKG5l d19wYXRjaCk7Cj4gKyAgICAgICAgZWxzZQo+ICsgICAgICAgICAgICBtaWNyb2NvZGVfZnJlZV9w YXRjaChuZXdfcGF0Y2gpOwo+ICsKPiArICAgICAgICBpZiAoIG1hdGNoX2NwdShtaWNyb2NvZGVf Z2V0X2NhY2hlKCkpICkKPiAgICAgICAgICB7Cj4gICAgICAgICAgICAgIGVycm9yID0gYXBwbHlf bWljcm9jb2RlKGNwdSk7Cj4gICAgICAgICAgICAgIGlmICggZXJyb3IgKQo+IEBAIC02NDAsNiAr NzEzLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfb3BzIG1pY3JvY29kZV9hbWRf b3BzID0gewo+ICAgICAgLmNvbGxlY3RfY3B1X2luZm8gICAgICAgICAgICAgICAgID0gY29sbGVj dF9jcHVfaW5mbywKPiAgICAgIC5hcHBseV9taWNyb2NvZGUgICAgICAgICAgICAgICAgICA9IGFw cGx5X21pY3JvY29kZSwKPiAgICAgIC5zdGFydF91cGRhdGUgICAgICAgICAgICAgICAgICAgICA9 IHN0YXJ0X3VwZGF0ZSwKPiArICAgIC5mcmVlX3BhdGNoICAgICAgICAgICAgICAgICAgICAgICA9 IGZyZWVfcGF0Y2gsCj4gKyAgICAuY29tcGFyZV9wYXRjaCAgICAgICAgICAgICAgICAgICAgPSBj b21wYXJlX3BhdGNoLAo+ICsgICAgLm1hdGNoX2NwdSAgICAgICAgICAgICAgICAgICAgICAgID0g bWF0Y2hfY3B1LAo+ICB9Owo+ICAKPiAgaW50IF9faW5pdCBtaWNyb2NvZGVfaW5pdF9hbWQodm9p ZCkKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21pY3JvY29kZV9pbnRlbC5jIGIveGVuL2Fy Y2gveDg2L21pY3JvY29kZV9pbnRlbC5jCj4gaW5kZXggYzE4NWI1Yy4uMTQ0ODVkYyAxMDA2NDQK PiAtLS0gYS94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2ludGVsLmMKPiArKysgYi94ZW4vYXJjaC94 ODYvbWljcm9jb2RlX2ludGVsLmMKPiBAQCAtMjU5LDYgKzI1OSwzMSBAQCBzdGF0aWMgaW50IG1p Y3JvY29kZV9zYW5pdHlfY2hlY2sodm9pZCAqbWMpCj4gICAgICByZXR1cm4gMDsKPiAgfQo+ICAK PiArc3RhdGljIGJvb2wgbWF0Y2hfY3B1KGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKnBh dGNoKQo+ICt7Cj4gKyAgICBpZiAoICFwYXRjaCApCj4gKyAgICAgICAgcmV0dXJuIGZhbHNlOwo+ ICsKPiArICAgIHJldHVybiBtaWNyb2NvZGVfdXBkYXRlX21hdGNoKCZwYXRjaC0+bWNfaW50ZWwt PmhkciwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNtcF9wcm9jZXNzb3Jf aWQoKSkgPT0gTkVXX1VDT0RFOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBmcmVlX3BhdGNoKHZv aWQgKm1jKQo+ICt7Cj4gKyAgICB4ZnJlZShtYyk7Cj4gK30KPiArCj4gKy8qCj4gKyAqIEJvdGgg cGF0Y2hlcyB0byBjb21wYXJlIGFyZSBzdXBwb3NlZCB0byBiZSBhcHBsaWNhYmxlIHRvIGxvY2Fs IENQVS4KPiArICogSnVzdCBjb21wYXJlIHRoZSByZXZpc2lvbiBudW1iZXIuCj4gKyAqLwo+ICtz dGF0aWMgZW51bSBtaWNyb2NvZGVfbWF0Y2hfcmVzdWx0IGNvbXBhcmVfcGF0Y2goCj4gKyAgICBj b25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpuZXcsIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVf cGF0Y2ggKm9sZCkKPiArewo+ICsgICAgcmV0dXJuIChuZXctPm1jX2ludGVsLT5oZHIucmV2ID4g b2xkLT5tY19pbnRlbC0+aGRyLnJldikgPyAgTkVXX1VDT0RFIDoKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9MRF9VQ09E RTsKCk5pdCwgdGhlIHVzdWFsIGZvcm1hdCBpbiBYZW4gd291bGQgYmU6CgpyZXR1cm4gKG5ldy0+ bWNfaW50ZWwtPmhkci5yZXYgPiBvbGQtPm1jX2ludGVsLT5oZHIucmV2KSA/IE5FV19VQ09ERQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6 IE9MRF9VQ09ERTsKCj4gK30KPiArCj4gIC8qCj4gICAqIHJldHVybiAwIC0gbm8gdXBkYXRlIGZv dW5kCj4gICAqIHJldHVybiAxIC0gZm91bmQgdXBkYXRlCj4gQEAgLTI2OSwxMCArMjk0LDI2IEBA IHN0YXRpYyBpbnQgZ2V0X21hdGNoaW5nX21pY3JvY29kZShjb25zdCB2b2lkICptYywgdW5zaWdu ZWQgaW50IGNwdSkKPiAgICAgIHN0cnVjdCB1Y29kZV9jcHVfaW5mbyAqdWNpID0gJnBlcl9jcHUo dWNvZGVfY3B1X2luZm8sIGNwdSk7Cj4gICAgICBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRl cl9pbnRlbCAqbWNfaGVhZGVyID0gbWM7Cj4gICAgICB1bnNpZ25lZCBsb25nIHRvdGFsX3NpemUg PSBnZXRfdG90YWxzaXplKG1jX2hlYWRlcik7Cj4gLSAgICB2b2lkICpuZXdfbWM7Cj4gKyAgICB2 b2lkICpuZXdfbWMgPSB4bWFsbG9jX2J5dGVzKHRvdGFsX3NpemUpOwo+ICsgICAgc3RydWN0IG1p Y3JvY29kZV9wYXRjaCAqbmV3X3BhdGNoID0geG1hbGxvYyhzdHJ1Y3QgbWljcm9jb2RlX3BhdGNo KTsKPiAgCj4gLSAgICBpZiAoIG1pY3JvY29kZV91cGRhdGVfbWF0Y2gobWMsIGNwdSkgIT0gTkVX X1VDT0RFICkKPiArICAgIGlmICggIW5ld19wYXRjaCB8fCAhbmV3X21jICkKPiArICAgIHsKPiAr ICAgICAgICB4ZnJlZShuZXdfcGF0Y2gpOwo+ICsgICAgICAgIHhmcmVlKG5ld19tYyk7Cj4gKyAg ICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gKyAgICB9Cj4gKyAgICBtZW1jcHkobmV3X21jLCBtYywg dG90YWxfc2l6ZSk7Cj4gKyAgICBuZXdfcGF0Y2gtPm1jX2ludGVsID0gbmV3X21jOwo+ICsKPiAr ICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHRoaXMgcGF0Y2ggY292ZXJzIGN1cnJlbnQgQ1BVICovCj4g KyAgICBpZiAoIG1pY3JvY29kZV91cGRhdGVfbWF0Y2gobWMsIGNwdSkgPT0gTUlTX1VDT0RFICkK PiArICAgIHsKPiArICAgICAgICBtaWNyb2NvZGVfZnJlZV9wYXRjaChuZXdfcGF0Y2gpOwo+ICAg ICAgICAgIHJldHVybiAwOwo+ICsgICAgfQoKTml0OiB3b24ndCBpdCBiZSBlYXNpZXIgdG8gZG8g dGhpcyBjaGVjayBmaXJzdCBhbmQgdGhlbiBhbGxvY2F0ZSBpZgpuZWVkZWQ/CgpBRkFJQ1QgbmV3 X21jIG9yIG5ld19wYXRjaCBhcmUgbm90IHJlcXVpcmVkIGJ5IHRoZQptaWNyb2NvZGVfdXBkYXRl X21hdGNoIGNhbGwsIGFuZCBoZW5jZSBjb3VsZCBiZSBhbGxvY2F0ZWQgYWZ0ZXIgc3VjaApjYWxs LiBNYXliZSB0aGlzIHVnbGluZXNzIHdpbGwgZ28gYXdheSBpbiBmb2xsb3dpbmcgcGF0Y2hlcz8K ClRoYW5rcywgUm9nZXIuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0 Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRl dmVs