From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau =?utf-8?B?TW9ubsOp?= Subject: Re: [PATCH v4 2/6] microcode: save all microcodes which pass sanity check Date: Wed, 28 Nov 2018 13:00:14 +0100 Message-ID: <20181128120014.r6llmchpcjtjlwc6@mac> References: <1543383256-12371-1-git-send-email-chao.gao@intel.com> <1543383256-12371-3-git-send-email-chao.gao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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 1gRyWI-0004bf-8y for xen-devel@lists.xenproject.org; Wed, 28 Nov 2018 12:00:42 +0000 Content-Disposition: inline In-Reply-To: <1543383256-12371-3-git-send-email-chao.gao@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Chao Gao Cc: xen-devel@lists.xenproject.org, Wei Liu , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBOb3YgMjgsIDIwMTggYXQgMDE6MzQ6MTJQTSArMDgwMCwgQ2hhbyBHYW8gd3JvdGU6 Cj4gLi4uIGFuZCBzZWFyY2ggY2FjaGVzIHRvIGZpbmQgYSBzdWl0YWJsZSBvbmUgd2hlbiBsb2Fk aW5nLgoKV2h5IGRvIHlvdSBuZWVkIHRvIHNhdmUgYWxsIG9mIHRoZW0/IFlvdSBhcmUgb25seSBn b2luZyB0byBsb2FkIGEKc2luZ2xlIG1pY3JvY29kZSwgc28gSSBkb24ndCB1bmRlcnN0YW5kIHRo ZSBuZWVkIHRvIGNhY2hlIHRoZW0gYWxsLgoKPiBXaXRoIHRoaXMgY2FjaGUsIHRoZSBleGlzdGlu ZyAndWNpLT5tYycgc3RydWN0dXJlIGlzIHJlZHVuZGVudC4KPiBJIGRlbGliZXJhdGVseSBhdm9p ZCB0b3VjaGluZyAndWNpLT5tYycgYXMgSSBhbSBnb2luZyB0byByZW1vdmUKPiBpdCBjb21wbGV0 ZWx5IGluIHRoZSBuZXh0IHBhdGNoLgo+IAo+IFNpZ25lZC1vZmYtYnk6IENoYW8gR2FvIDxjaGFv Lmdhb0BpbnRlbC5jb20+Cj4gLS0tCj4gIHhlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYyAgICAgICAg fCAgMiArCj4gIHhlbi9hcmNoL3g4Ni9taWNyb2NvZGVfYW1kLmMgICAgfCA5MyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLQo+ICB4ZW4vYXJjaC94ODYvbWljcm9jb2RlX2lu dGVsLmMgIHwgOTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KPiAg eGVuL2luY2x1ZGUvYXNtLXg4Ni9taWNyb2NvZGUuaCB8IDExICsrKysrCj4gIDQgZmlsZXMgY2hh bmdlZCwgMTkzIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMgYi94ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMKPiBp bmRleCA0MTYzZjUwLi40ZjJkYjg4IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2Nv ZGUuYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYwo+IEBAIC02MSw2ICs2MSw4IEBA IHN0YXRpYyBzdHJ1Y3QgdWNvZGVfbW9kX2Jsb2IgX19pbml0ZGF0YSB1Y29kZV9ibG9iOwo+ICAg Ki8KPiAgc3RhdGljIGJvb2xfdCBfX2luaXRkYXRhIHVjb2RlX3NjYW47Cj4gIAo+ICtMSVNUX0hF QUQobWljcm9jb2RlX2NhY2hlKTsKPiArCj4gIHZvaWQgX19pbml0IG1pY3JvY29kZV9zZXRfbW9k dWxlKHVuc2lnbmVkIGludCBpZHgpCj4gIHsKPiAgICAgIHVjb2RlX21vZF9pZHggPSBpZHg7Cj4g ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfYW1kLmMgYi94ZW4vYXJjaC94ODYv bWljcm9jb2RlX2FtZC5jCj4gaW5kZXggZmJhNDRjYy4uYTY4NmE4NyAxMDA2NDQKPiAtLS0gYS94 ZW4vYXJjaC94ODYvbWljcm9jb2RlX2FtZC5jCj4gKysrIGIveGVuL2FyY2gveDg2L21pY3JvY29k ZV9hbWQuYwo+IEBAIC0xOTAsMjIgKzE5MCw5MCBAQCBzdGF0aWMgYm9vbF90IG1pY3JvY29kZV9m aXRzKGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfYW1kICptY19hbWQsCj4gICAgICByZXR1cm4gMTsK PiAgfQo+ICAKPiArc3RhdGljIHN0cnVjdCB1Y29kZV9wYXRjaCAqYWxsb2NfdWNvZGVfcGF0Y2go c3RydWN0IG1pY3JvY29kZV9hbWQgKm1jX2FtZCkKPiArewo+ICsgICAgc3RydWN0IHVjb2RlX3Bh dGNoICp1Y29kZV9wYXRjaCA9IHhtYWxsb2Moc3RydWN0IHVjb2RlX3BhdGNoKTsKPiArICAgIHN0 cnVjdCBtaWNyb2NvZGVfYW1kICpjYWNoZSA9IHhtYWxsb2Moc3RydWN0IG1pY3JvY29kZV9hbWQp Owo+ICsgICAgdm9pZCAqbXBiID0geG1hbGxvY19ieXRlcyhtY19hbWQtPm1wYl9zaXplKTsKPiAr ICAgIHN0cnVjdCBlcXVpdl9jcHVfZW50cnkgKmVxdWl2X2NwdV90YWJsZSA9Cj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeG1hbGxvY19ieXRlcyhtY19hbWQtPmVxdWl2X2NwdV90 YWJsZV9zaXplKTsKPiArCj4gKyAgICBpZiAoICF1Y29kZV9wYXRjaCB8fCAhY2FjaGUgfHwgIW1w YiB8fCAhZXF1aXZfY3B1X3RhYmxlICkKPiArICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVN KTsKClRoaXMgY2FuIGxlYWsgbWVtb3J5LiBGb3IgZXhhbXBsZSBmYWlsaW5nIHRvIGFsbG9jYXRl IG9ubHkKZXF1aXZfY3B1X3RhYmxlIHdvdWxkIGxlYWsgYWxsIHRoZSBvdGhlciBhbGxvY2F0aW9u cy4gSWU6IHlvdSBuZWVkIHRvCnhmcmVlIGFsbCBvZiB0aGVtIGJlZm9yZSByZXR1cm5pbmcuCgo+ ICsKPiArICAgIG1lbWNweShjYWNoZS0+ZXF1aXZfY3B1X3RhYmxlLCBtY19hbWQtPmVxdWl2X2Nw dV90YWJsZSwKPiArICAgICAgICAgICBtY19hbWQtPmVxdWl2X2NwdV90YWJsZV9zaXplKTsKPiAr ICAgIG1lbWNweShjYWNoZS0+bXBiLCBtY19hbWQtPm1wYiwgbWNfYW1kLT5tcGJfc2l6ZSk7CgpE b24ndCB5b3UgbmVlZCB0byBkbzoKCmNhY2hlLT5lcXVpdl9jcHVfdGFibGUgPSBlcXVpdl9jcHVf dGFibGU7CmNhY2hlLT5tcGIgPSBtcGI7CgpCZWZvcmUgYXR0ZW1wdGluZyB0byBtZW1jcHkgdG8g aXQ/IE9yIGVsc2UgeW91IHdpbGwgbWVtY3B5IHRvIHJhbmRvbQpsb2NhdGlvbnMgYmVjYXVzZSB0 aGUgY29udGVudHMgb2YgY2FjaGUgYXJlIG5vdCB6ZXJvZWQuCgpJTU8gbWFraW5nIHN1Y2ggbW9k aWZpY2F0aW9ucyB0byB0aGUgQU1EIGNvZGUgd2l0aG91dCB0ZXN0aW5nIGl0IGlzCnZlcnkgZGFu Z2Vyb3VzLiBDb3VsZCB5b3UgZ2V0IGFuIEFNRCBzeXN0ZW0gb3IgYXNrIGFuIEFNRCBkZXYgdG8g dGVzdAppdD8gSSB3b3VsZCB0cnkgd2l0aCB0aGUgQU1EIFNWTSBtYWludGFpbmVycy4KCj4gKyAg ICBjYWNoZS0+ZXF1aXZfY3B1X3RhYmxlX3NpemUgPSBtY19hbWQtPmVxdWl2X2NwdV90YWJsZV9z aXplOwo+ICsgICAgY2FjaGUtPm1wYl9zaXplID0gbWNfYW1kLT5tcGJfc2l6ZTsKPiArICAgIHVj b2RlX3BhdGNoLT5kYXRhID0gY2FjaGU7CgpOZXdsaW5lLgoKPiArICAgIHJldHVybiB1Y29kZV9w YXRjaDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZnJlZV91Y29kZV9wYXRjaChzdHJ1Y3QgdWNv ZGVfcGF0Y2ggKnVjb2RlX3BhdGNoKQo+ICt7Cj4gKyAgICBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAq bWNfYW1kID0gdWNvZGVfcGF0Y2gtPmRhdGE7Cj4gKwo+ICsgICAgeGZyZWUobWNfYW1kLT5lcXVp dl9jcHVfdGFibGUpOwo+ICsgICAgeGZyZWUobWNfYW1kLT5tcGIpOwo+ICsgICAgeGZyZWUobWNf YW1kKTsKPiArICAgIHhmcmVlKHVjb2RlX3BhdGNoKTsKPiArfQo+ICsKPiArLyoKPiArICogc2F2 ZSBhIG1pY3Jjb2RlIHRvIHRoZSBjYWNoZSBsaXN0Cj4gKyAqIHJldHVybiAxOiBhZGRlZCBzdWNj ZXNzZnVsbHkKPiArICogICAgICAgIDA6IHJlcGxhY2VkIGFuIGV4aXN0aW5nIGVudHJ5Cj4gKyAq ICAgICAgIC0xOiBmYWlsZWQgYXMgYSBuZXdlciBtaWNyb2NvZGUgd2FzIGFscmVhZHkgY2FjaGVk CgpVc2luZyBhbiBlbnVtIChsaWtlIHlvdSBkbyBpbiBwYXRjaCAjMSkgd291bGQgYmUgYmV0dGVy IGFuZCBsZXNzCmNyeXB0aWMgSU1PLgoKPiArICovCj4gK3N0YXRpYyBpbnQgc2F2ZV9wYXRjaChz dHJ1Y3QgdWNvZGVfcGF0Y2ggKm5ld19wYXRjaCkKPiArewo+ICsgICAgc3RydWN0IHVjb2RlX3Bh dGNoICp1Y29kZV9wYXRjaDsKPiArICAgIHN0cnVjdCBtaWNyb2NvZGVfYW1kICpuZXdfbWMgPSBu ZXdfcGF0Y2gtPmRhdGE7Cj4gKyAgICBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9hbWQgKm5ld19o ZWFkZXIgPSBuZXdfbWMtPm1wYjsKPiArCj4gKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KHVjb2Rl X3BhdGNoLCAmbWljcm9jb2RlX2NhY2hlLCBsaXN0KQo+ICsgICAgewo+ICsgICAgICAgIHN0cnVj dCBtaWNyb2NvZGVfYW1kICpvbGRfbWMgPSB1Y29kZV9wYXRjaC0+ZGF0YTsKPiArICAgICAgICBz dHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9hbWQgKm9sZF9oZWFkZXIgPSBvbGRfbWMtPm1wYjsKPiAr Cj4gKyAgICAgICAgaWYgKCBuZXdfaGVhZGVyLT5wcm9jZXNzb3JfcmV2X2lkID09IG9sZF9oZWFk ZXItPnByb2Nlc3Nvcl9yZXZfaWQgKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgaWYgKCBu ZXdfaGVhZGVyLT5wYXRjaF9pZCA8PSBvbGRfaGVhZGVyLT5wYXRjaF9pZCApCj4gKyAgICAgICAg ICAgICAgICByZXR1cm4gLTE7Cj4gKyAgICAgICAgICAgIGxpc3RfcmVwbGFjZSgmdWNvZGVfcGF0 Y2gtPmxpc3QsICZuZXdfcGF0Y2gtPmxpc3QpOwo+ICsgICAgICAgICAgICBmcmVlX3Vjb2RlX3Bh dGNoKHVjb2RlX3BhdGNoKTsKPiArICAgICAgICAgICAgcmV0dXJuIDA7Cj4gKyAgICAgICAgfQo+ ICsgICAgfQoKVGhpcyBjb3VsZCBiZSBtYWRlIGNvbW1vbiBjb2RlIHdpdGggYSBzcGVjaWZpYyBo b29rIGZvciBBTUQgYW5kIEludGVsCmluIG9yZGVyIHRvIGRvIHRoZSBjb21wYXJpc29uLCBzbyB0 aGF0IGF0IGxlYXN0IHRoZSBsb29wIG92ZXIgdGhlCmxpc3Qgb2YgdWNvZGUgZW50cmllcyBjb3Vs ZCBiZSBzaGFyZWQuCgo+ICsgICAgbGlzdF9hZGRfdGFpbCgmbmV3X3BhdGNoLT5saXN0LCAmbWlj cm9jb2RlX2NhY2hlKTsKPiArICAgIHJldHVybiAxOwo+ICt9Cj4gKwo+ICtzdGF0aWMgc3RydWN0 IG1pY3JvY29kZV9oZWFkZXJfYW1kICpmaW5kX3BhdGNoKHVuc2lnbmVkIGludCBjcHUpCj4gK3sK PiArICAgIHN0cnVjdCB1Y29kZV9wYXRjaCAqdWNvZGVfcGF0Y2g7Cj4gKwo+ICsgICAgbGlzdF9m b3JfZWFjaF9lbnRyeSh1Y29kZV9wYXRjaCwgJm1pY3JvY29kZV9jYWNoZSwgbGlzdCkKPiArICAg IHsKPiArICAgICAgICBpZiAoIG1pY3JvY29kZV9maXRzKHVjb2RlX3BhdGNoLT5kYXRhLCBjcHUp ICkKPiArICAgICAgICAgICAgcmV0dXJuICgoc3RydWN0IG1pY3JvY29kZV9hbWQgKil1Y29kZV9w YXRjaC0+ZGF0YSktPm1wYjsKPiArICAgIH0KPiArICAgIHJldHVybiBOVUxMOwoKVGhpcyBhbHNv IGxvb2tzIHN1aXRhYmxlIHRvIGJlIG1vdmVkIHRvIGNvbW1vbiBjb2RlIHdpdGggZGVkaWNhdGVk IEFNRAphbmQgSW50ZWwgaG9va3MuCgo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGFwcGx5X21pY3Jv Y29kZSh1bnNpZ25lZCBpbnQgY3B1KQo+ICB7Cj4gICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwo+ ICAgICAgc3RydWN0IHVjb2RlX2NwdV9pbmZvICp1Y2kgPSAmcGVyX2NwdSh1Y29kZV9jcHVfaW5m bywgY3B1KTsKPiAgICAgIHVpbnQzMl90IHJldjsKPiAtICAgIHN0cnVjdCBtaWNyb2NvZGVfYW1k ICptY19hbWQgPSB1Y2ktPm1jLm1jX2FtZDsKPiAgICAgIHN0cnVjdCBtaWNyb2NvZGVfaGVhZGVy X2FtZCAqaGRyOwo+ICAgICAgaW50IGh3X2VycjsKPiAgCj4gICAgICAvKiBXZSBzaG91bGQgYmlu ZCB0aGUgdGFzayB0byB0aGUgQ1BVICovCj4gICAgICBCVUdfT04ocmF3X3NtcF9wcm9jZXNzb3Jf aWQoKSAhPSBjcHUpOwo+ICAKPiAtICAgIGlmICggbWNfYW1kID09IE5VTEwgKQo+IC0gICAgICAg IHJldHVybiAtRUlOVkFMOwo+IC0KPiAtICAgIGhkciA9IG1jX2FtZC0+bXBiOwo+ICsgICAgaGRy ID0gZmluZF9wYXRjaChjcHUpOwo+ICAgICAgaWYgKCBoZHIgPT0gTlVMTCApCj4gICAgICAgICAg cmV0dXJuIC1FSU5WQUw7Cj4gIAo+IEBAIC00OTEsNiArNTU5LDIxIEBAIHN0YXRpYyBpbnQgY3B1 X3JlcXVlc3RfbWljcm9jb2RlKHVuc2lnbmVkIGludCBjcHUsIGNvbnN0IHZvaWQgKmJ1ZiwKPiAg ICAgIHdoaWxlICggKGVycm9yID0gZ2V0X3Vjb2RlX2Zyb21fYnVmZmVyX2FtZChtY19hbWQsIGJ1 ZiwgYnVmc2l6ZSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmb2Zmc2V0KSkgPT0gMCApCj4gICAgICB7Cj4gKyAgICAgICAgc3RydWN0IHVjb2RlX3Bh dGNoICp1Y29kZV9wYXRjaDsKPiArCj4gKyAgICAgICAgLyoKPiArICAgICAgICAgKiBTYXZlIHRo aXMgbWljcm9jb2RlIGJlZm9yZSBjaGVja2luZyB0aGUgc2lnbmF0dXJlLiBJdCBpcyB0bwo+ICsg ICAgICAgICAqIG9wdGltaXplIG1pY3JvY29kZSB1cGRhdGUgb24gYSBtaXhlZCBmYW1pbHkgc3lz dGVtLiBQYXJzaW5nCgpFciwgaXMgaXQgcG9zc2libGUgdG8gaGF2ZSBhIHN5c3RlbSB3aXRoIENQ VXMgb2YgZGlmZmVyZW50IGZhbWlseT8KV2hhdCdzIGdvaW5nIHRvIGhhcHBlbiB3aXRoIENQVXMg aGF2aW5nIGRpZmZlcmVudCBmZWF0dXJlcz8KCj4gKyAgICAgICAgICogbWljcm9jb2RlIGZpbGUg aXMgb25seSBkb25lIG9uY2Ugb24gb25lIG9mIHRoZSBDUFVzLCBhbmQKPiArICAgICAgICAgKiBk dXJpbmcgdGhpcyBwcm9jZXNzIG1pY3JvY29kZSBjYWNoZSBpcyBjcmVhdGVkLiBPdGhlciBDUFVz Cj4gKyAgICAgICAgICogbmVlZG4ndCBwYXJzZSB0aGUgc2FtZSBtaWNyY29kZSBmaWxlIGFnYWlu IGFuZCBhZ2Fpbi4KPiArICAgICAgICAgKiBJbnN0ZWFkLCB0aGV5IGp1c3QgbG9hZCB0aGUgbWF0 Y2hlZCBhbmQgbGF0ZXN0IG1pY3JvY29kZSBpbgo+ICsgICAgICAgICAqIHRoZSBjYWNoZXMuCj4g KyAgICAgICAgICovCj4gKyAgICAgICAgdWNvZGVfcGF0Y2ggPSBhbGxvY191Y29kZV9wYXRjaCht Y19hbWQpOwo+ICsgICAgICAgIGlmICggIUlTX0VSUl9PUl9OVUxMKHVjb2RlX3BhdGNoKSAmJiAo c2F2ZV9wYXRjaCh1Y29kZV9wYXRjaCkgPCAwKSApCj4gKyAgICAgICAgICAgIGZyZWVfdWNvZGVf cGF0Y2godWNvZGVfcGF0Y2gpOwo+ICsKPiAgICAgICAgICBpZiAoIG1pY3JvY29kZV9maXRzKG1j X2FtZCwgY3B1KSApCj4gICAgICAgICAgewo+ICAgICAgICAgICAgICBlcnJvciA9IGFwcGx5X21p Y3JvY29kZShjcHUpOwo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2ludGVs LmMgYi94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2ludGVsLmMKPiBpbmRleCA4ZDlhM2IyLi5jNGY4 MTJmIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfaW50ZWwuYwo+ICsrKyBi L3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfaW50ZWwuYwo+IEBAIC0yNTEsNiArMjUxLDQyIEBAIHN0 YXRpYyBpbnQgbWljcm9jb2RlX3Nhbml0eV9jaGVjayh2b2lkICptYykKPiAgfQo+ICAKPiAgLyoK PiArICogc2F2ZSBhIG1pY3Jjb2RlIHRvIHRoZSBjYWNoZSBsaXN0Cj4gKyAqIHJldHVybiAxOiBh ZGRlZCBzdWNjZXNzZnVsbHkKPiArICogICAgICAgIDA6IHJlcGxhY2VkIGFuIGV4aXN0aW5nIGVu dHJ5Cj4gKyAqICAgICAgIC0xOiBmYWlsZWQgYXMgYSBuZXdlciBtaWNyb2NvZGUgd2FzIGFscmVh ZHkgY2FjaGVkCj4gKyAqLwo+ICtzdGF0aWMgaW50IHNhdmVfcGF0Y2goc3RydWN0IHVjb2RlX3Bh dGNoICpuZXdfcGF0Y2gpCj4gK3sKPiArICAgIHZvaWQgKm1jOwo+ICsgICAgc3RydWN0IHVjb2Rl X3BhdGNoICp1Y29kZV9wYXRjaDsKPiArCj4gKyAgICBBU1NFUlQobmV3X3BhdGNoKTsKPiArCj4g KyAgICBtYyA9IG5ld19wYXRjaC0+ZGF0YTsKPiArICAgIGxpc3RfZm9yX2VhY2hfZW50cnkodWNv ZGVfcGF0Y2gsICZtaWNyb2NvZGVfY2FjaGUsIGxpc3QpCj4gKyAgICB7Cj4gKyAgICAgICAgc3Ry dWN0IG1pY3JvY29kZV9oZWFkZXJfaW50ZWwgKnNhdmVkX2hlYWRlciA9IHVjb2RlX3BhdGNoLT5k YXRhOwo+ICsgICAgICAgIGludCByZXQ7Cj4gKwo+ICsgICAgICAgIHJldCA9IG1pY3JvY29kZV91 cGRhdGVfbWF0Y2gobWMsIHNhdmVkX2hlYWRlci0+c2lnLCBzYXZlZF9oZWFkZXItPnBmLAo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2F2ZWRfaGVhZGVyLT5yZXYpOwoK WW91IGNhbiBpbml0aWFsaXplIHJldCBhdCBkZWZpbml0aW9uIHRpbWUuCgo+ICsgICAgICAgIGlm ICggcmV0ID09IE9MRF9VQ09ERSApCj4gKyAgICAgICAgICAgIHJldHVybiAtMTsKPiArICAgICAg ICBpZiAoIHJldCA9PSBNSVNfVUNPREUgKQo+ICsgICAgICAgICAgICBjb250aW51ZTsKPiArCj4g KyAgICAgICAgbGlzdF9yZXBsYWNlKCZ1Y29kZV9wYXRjaC0+bGlzdCwgJm5ld19wYXRjaC0+bGlz dCk7Cj4gKyAgICAgICAgeGZyZWUodWNvZGVfcGF0Y2gtPmRhdGEpOwo+ICsgICAgICAgIHhmcmVl KHVjb2RlX3BhdGNoKTsKPiArICAgICAgICByZXR1cm4gMDsKPiArICAgIH0KPiArCj4gKyAgICBs aXN0X2FkZF90YWlsKCZuZXdfcGF0Y2gtPmxpc3QsICZtaWNyb2NvZGVfY2FjaGUpOwo+ICsgICAg cmV0dXJuIDE7Cj4gK30KPiArCj4gKy8qCj4gICAqIHJldHVybiAwIC0gbm8gdXBkYXRlIGZvdW5k Cj4gICAqIHJldHVybiAxIC0gZm91bmQgdXBkYXRlCj4gICAqIHJldHVybiA8IDAgLSBlcnJvcgo+ IEBAIC0yNjEsNiArMjk3LDMwIEBAIHN0YXRpYyBpbnQgZ2V0X21hdGNoaW5nX21pY3JvY29kZShj b25zdCB2b2lkICptYywgdW5zaWduZWQgaW50IGNwdSkKPiAgICAgIGNvbnN0IHN0cnVjdCBtaWNy b2NvZGVfaGVhZGVyX2ludGVsICptY19oZWFkZXIgPSBtYzsKPiAgICAgIHVuc2lnbmVkIGxvbmcg dG90YWxfc2l6ZSA9IGdldF90b3RhbHNpemUobWNfaGVhZGVyKTsKPiAgICAgIHZvaWQgKm5ld19t YzsKPiArICAgIHN0cnVjdCB1Y29kZV9wYXRjaCAqdWNvZGVfcGF0Y2ggPSB4bWFsbG9jKHN0cnVj dCB1Y29kZV9wYXRjaCk7Cj4gKyAgICB2b2lkICpuZXdfbWMyID0geG1hbGxvY19ieXRlcyh0b3Rh bF9zaXplKTsKPiArCj4gKyAgICAvKgo+ICsgICAgICogU2F2ZSB0aGlzIG1pY3JvY29kZSBiZWZv cmUgY2hlY2tpbmcgdGhlIHNpZ25hdHVyZS4gSXQgaXMgdG8KPiArICAgICAqIG9wdGltaXplIG1p Y3JvY29kZSB1cGRhdGUgb24gYSBtaXhlZCBmYW1pbHkgc3lzdGVtLiBQYXJzaW5nCj4gKyAgICAg KiBtaWNyb2NvZGUgZmlsZSBpcyBvbmx5IGRvbmUgb25jZSBvbiBvbmUgb2YgdGhlIENQVXMsIGFu ZAo+ICsgICAgICogZHVyaW5nIHRoaXMgcHJvY2VzcyBtaWNyb2NvZGUgY2FjaGUgaXMgY3JlYXRl ZC4gT3RoZXIgQ1BVcwo+ICsgICAgICogbmVlZG4ndCBwYXJzZSB0aGUgc2FtZSBtaWNyY29kZSBm aWxlIGFnYWluIGFuZCBhZ2Fpbi4KPiArICAgICAqIEluc3RlYWQsIHRoZXkganVzdCBsb2FkIHRo ZSBtYXRjaGVkIGFuZCBsYXRlc3QgbWljcm9jb2RlIGluCj4gKyAgICAgKiB0aGUgY2FjaGVzLgo+ ICsgICAgICovCj4gKyAgICBpZiAoICF1Y29kZV9wYXRjaCB8fCAhbmV3X21jMiApCj4gKyAgICB7 Cj4gKyAgICAgICAgcHJpbnRrKEtFUk5fRVJSICJtaWNyb2NvZGU6IGVycm9yISBDYW4gbm90IGFs bG9jYXRlIG1lbW9yeVxuIik7CgpTaW5jZSB0aGlzIGNvZGUgaXMgbm90IGltcG9ydGVkIGZyb20g TGludXggcGxlYXNlIHVzZSBYRU5MT0dfRVJSLiBZb3UKYWxzbyBuZWVkIHRvIHhmcmVlIGJvdGgg c3RydWN0cyBpbiBvcmRlciB0byBhdm9pZCBsZWFraW5nIG1lbW9yeS4KClRoYW5rcywgUm9nZXIu CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp c3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs