From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: Re: [PATCH v4 2/6] microcode: save all microcodes which pass sanity check Date: Thu, 29 Nov 2018 10:40:32 +0800 Message-ID: <20181129024032.GB23701@gao-cwp> References: <1543383256-12371-1-git-send-email-chao.gao@intel.com> <1543383256-12371-3-git-send-email-chao.gao@intel.com> <20181128120014.r6llmchpcjtjlwc6@mac> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gSCCG-0007Kd-8f for xen-devel@lists.xenproject.org; Thu, 29 Nov 2018 02:36:56 +0000 Content-Disposition: inline In-Reply-To: <20181128120014.r6llmchpcjtjlwc6@mac> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Roger Pau =?iso-8859-1?Q?Monn=E9?= Cc: xen-devel@lists.xenproject.org, Wei Liu , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBOb3YgMjgsIDIwMTggYXQgMDE6MDA6MTRQTSArMDEwMCwgUm9nZXIgUGF1IE1vbm7D qSB3cm90ZToKPk9uIFdlZCwgTm92IDI4LCAyMDE4IGF0IDAxOjM0OjEyUE0gKzA4MDAsIENoYW8g R2FvIHdyb3RlOgo+PiAuLi4gYW5kIHNlYXJjaCBjYWNoZXMgdG8gZmluZCBhIHN1aXRhYmxlIG9u ZSB3aGVuIGxvYWRpbmcuCj4KPldoeSBkbyB5b3UgbmVlZCB0byBzYXZlIGFsbCBvZiB0aGVtPyBZ b3UgYXJlIG9ubHkgZ29pbmcgdG8gbG9hZCBhCj5zaW5nbGUgbWljcm9jb2RlLCBzbyBJIGRvbid0 IHVuZGVyc3RhbmQgdGhlIG5lZWQgdG8gY2FjaGUgdGhlbSBhbGwuCj4KPj4gV2l0aCB0aGlzIGNh Y2hlLCB0aGUgZXhpc3RpbmcgJ3VjaS0+bWMnIHN0cnVjdHVyZSBpcyByZWR1bmRlbnQuCj4+IEkg ZGVsaWJlcmF0ZWx5IGF2b2lkIHRvdWNoaW5nICd1Y2ktPm1jJyBhcyBJIGFtIGdvaW5nIHRvIHJl bW92ZQo+PiBpdCBjb21wbGV0ZWx5IGluIHRoZSBuZXh0IHBhdGNoLgo+PiAKPj4gU2lnbmVkLW9m Zi1ieTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KPj4gLS0tCj4+ICB4ZW4vYXJjaC94 ODYvbWljcm9jb2RlLmMgICAgICAgIHwgIDIgKwo+PiAgeGVuL2FyY2gveDg2L21pY3JvY29kZV9h bWQuYyAgICB8IDkzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCj4+ICB4 ZW4vYXJjaC94ODYvbWljcm9jb2RlX2ludGVsLmMgIHwgOTkgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0KPj4gIHhlbi9pbmNsdWRlL2FzbS14ODYvbWljcm9jb2RlLmgg fCAxMSArKysrKwo+PiAgNCBmaWxlcyBjaGFuZ2VkLCAxOTMgaW5zZXJ0aW9ucygrKSwgMTIgZGVs ZXRpb25zKC0pCj4+IAo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21pY3JvY29kZS5jIGIv eGVuL2FyY2gveDg2L21pY3JvY29kZS5jCj4+IGluZGV4IDQxNjNmNTAuLjRmMmRiODggMTAwNjQ0 Cj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYwo+PiArKysgYi94ZW4vYXJjaC94ODYv bWljcm9jb2RlLmMKPj4gQEAgLTYxLDYgKzYxLDggQEAgc3RhdGljIHN0cnVjdCB1Y29kZV9tb2Rf YmxvYiBfX2luaXRkYXRhIHVjb2RlX2Jsb2I7Cj4+ICAgKi8KPj4gIHN0YXRpYyBib29sX3QgX19p bml0ZGF0YSB1Y29kZV9zY2FuOwo+PiAgCj4+ICtMSVNUX0hFQUQobWljcm9jb2RlX2NhY2hlKTsK Pj4gKwo+PiAgdm9pZCBfX2luaXQgbWljcm9jb2RlX3NldF9tb2R1bGUodW5zaWduZWQgaW50IGlk eCkKPj4gIHsKPj4gICAgICB1Y29kZV9tb2RfaWR4ID0gaWR4Owo+PiBkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L21pY3JvY29kZV9hbWQuYyBiL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfYW1kLmMK Pj4gaW5kZXggZmJhNDRjYy4uYTY4NmE4NyAxMDA2NDQKPj4gLS0tIGEveGVuL2FyY2gveDg2L21p Y3JvY29kZV9hbWQuYwo+PiArKysgYi94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2FtZC5jCj4+IEBA IC0xOTAsMjIgKzE5MCw5MCBAQCBzdGF0aWMgYm9vbF90IG1pY3JvY29kZV9maXRzKGNvbnN0IHN0 cnVjdCBtaWNyb2NvZGVfYW1kICptY19hbWQsCj4+ICAgICAgcmV0dXJuIDE7Cj4+ICB9Cj4+ICAK Pj4gK3N0YXRpYyBzdHJ1Y3QgdWNvZGVfcGF0Y2ggKmFsbG9jX3Vjb2RlX3BhdGNoKHN0cnVjdCBt aWNyb2NvZGVfYW1kICptY19hbWQpCj4+ICt7Cj4+ICsgICAgc3RydWN0IHVjb2RlX3BhdGNoICp1 Y29kZV9wYXRjaCA9IHhtYWxsb2Moc3RydWN0IHVjb2RlX3BhdGNoKTsKPj4gKyAgICBzdHJ1Y3Qg bWljcm9jb2RlX2FtZCAqY2FjaGUgPSB4bWFsbG9jKHN0cnVjdCBtaWNyb2NvZGVfYW1kKTsKPj4g KyAgICB2b2lkICptcGIgPSB4bWFsbG9jX2J5dGVzKG1jX2FtZC0+bXBiX3NpemUpOwo+PiArICAg IHN0cnVjdCBlcXVpdl9jcHVfZW50cnkgKmVxdWl2X2NwdV90YWJsZSA9Cj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHhtYWxsb2NfYnl0ZXMobWNfYW1kLT5lcXVpdl9jcHVfdGFi bGVfc2l6ZSk7Cj4+ICsKPj4gKyAgICBpZiAoICF1Y29kZV9wYXRjaCB8fCAhY2FjaGUgfHwgIW1w YiB8fCAhZXF1aXZfY3B1X3RhYmxlICkKPj4gKyAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVOT01F TSk7Cj4KPlRoaXMgY2FuIGxlYWsgbWVtb3J5LiBGb3IgZXhhbXBsZSBmYWlsaW5nIHRvIGFsbG9j YXRlIG9ubHkKPmVxdWl2X2NwdV90YWJsZSB3b3VsZCBsZWFrIGFsbCB0aGUgb3RoZXIgYWxsb2Nh dGlvbnMuIEllOiB5b3UgbmVlZCB0bwo+eGZyZWUgYWxsIG9mIHRoZW0gYmVmb3JlIHJldHVybmlu Zy4KClllcy4gSSBmdWxseSBhZ3JlZSA6KS4KCj4KPj4gKwo+PiArICAgIG1lbWNweShjYWNoZS0+ ZXF1aXZfY3B1X3RhYmxlLCBtY19hbWQtPmVxdWl2X2NwdV90YWJsZSwKPj4gKyAgICAgICAgICAg bWNfYW1kLT5lcXVpdl9jcHVfdGFibGVfc2l6ZSk7Cj4+ICsgICAgbWVtY3B5KGNhY2hlLT5tcGIs IG1jX2FtZC0+bXBiLCBtY19hbWQtPm1wYl9zaXplKTsKPgo+RG9uJ3QgeW91IG5lZWQgdG8gZG86 Cj4KPmNhY2hlLT5lcXVpdl9jcHVfdGFibGUgPSBlcXVpdl9jcHVfdGFibGU7Cj5jYWNoZS0+bXBi ID0gbXBiOwoKWWVzLiBJIHNob3VsZCBoYXZlIGRvbmUgdGhpcy4KCj4KPkJlZm9yZSBhdHRlbXB0 aW5nIHRvIG1lbWNweSB0byBpdD8gT3IgZWxzZSB5b3Ugd2lsbCBtZW1jcHkgdG8gcmFuZG9tCj5s b2NhdGlvbnMgYmVjYXVzZSB0aGUgY29udGVudHMgb2YgY2FjaGUgYXJlIG5vdCB6ZXJvZWQuCj4K PklNTyBtYWtpbmcgc3VjaCBtb2RpZmljYXRpb25zIHRvIHRoZSBBTUQgY29kZSB3aXRob3V0IHRl c3RpbmcgaXQgaXMKPnZlcnkgZGFuZ2Vyb3VzLiBDb3VsZCB5b3UgZ2V0IGFuIEFNRCBzeXN0ZW0g b3IgYXNrIGFuIEFNRCBkZXYgdG8gdGVzdAo+aXQ/IEkgd291bGQgdHJ5IHdpdGggdGhlIEFNRCBT Vk0gbWFpbnRhaW5lcnMuCgpJdCBpcyBpbXByb2JhYmxlIGZvciBtZSB0byBmaW5kIGFuIEFNRCBt YWNoaW5lIGluIG15IHRlYW0uIEkgd2lsbCBjb3B5IEFNRApTVk0gbWFpbnRhaW5lcnMgaW4gdGhl IGNvbWluZyB2ZXJzaW9ucyBhbmQgYXNrIHRoZW0gdG8gaGVscCB0byB0ZXN0IHRoaXMKc2VyaWVz LgoKPgo+PiArICAgIGNhY2hlLT5lcXVpdl9jcHVfdGFibGVfc2l6ZSA9IG1jX2FtZC0+ZXF1aXZf Y3B1X3RhYmxlX3NpemU7Cj4+ICsgICAgY2FjaGUtPm1wYl9zaXplID0gbWNfYW1kLT5tcGJfc2l6 ZTsKPj4gKyAgICB1Y29kZV9wYXRjaC0+ZGF0YSA9IGNhY2hlOwo+Cj5OZXdsaW5lLgo+Cj4+ICsg ICAgcmV0dXJuIHVjb2RlX3BhdGNoOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBmcmVlX3Vj b2RlX3BhdGNoKHN0cnVjdCB1Y29kZV9wYXRjaCAqdWNvZGVfcGF0Y2gpCj4+ICt7Cj4+ICsgICAg c3RydWN0IG1pY3JvY29kZV9hbWQgKm1jX2FtZCA9IHVjb2RlX3BhdGNoLT5kYXRhOwo+PiArCj4+ ICsgICAgeGZyZWUobWNfYW1kLT5lcXVpdl9jcHVfdGFibGUpOwo+PiArICAgIHhmcmVlKG1jX2Ft ZC0+bXBiKTsKPj4gKyAgICB4ZnJlZShtY19hbWQpOwo+PiArICAgIHhmcmVlKHVjb2RlX3BhdGNo KTsKPj4gK30KPj4gKwo+PiArLyoKPj4gKyAqIHNhdmUgYSBtaWNyY29kZSB0byB0aGUgY2FjaGUg bGlzdAo+PiArICogcmV0dXJuIDE6IGFkZGVkIHN1Y2Nlc3NmdWxseQo+PiArICogICAgICAgIDA6 IHJlcGxhY2VkIGFuIGV4aXN0aW5nIGVudHJ5Cj4+ICsgKiAgICAgICAtMTogZmFpbGVkIGFzIGEg bmV3ZXIgbWljcm9jb2RlIHdhcyBhbHJlYWR5IGNhY2hlZAo+Cj5Vc2luZyBhbiBlbnVtIChsaWtl IHlvdSBkbyBpbiBwYXRjaCAjMSkgd291bGQgYmUgYmV0dGVyIGFuZCBsZXNzCj5jcnlwdGljIElN Ty4KPgo+PiArICovCj4+ICtzdGF0aWMgaW50IHNhdmVfcGF0Y2goc3RydWN0IHVjb2RlX3BhdGNo ICpuZXdfcGF0Y2gpCj4+ICt7Cj4+ICsgICAgc3RydWN0IHVjb2RlX3BhdGNoICp1Y29kZV9wYXRj aDsKPj4gKyAgICBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAqbmV3X21jID0gbmV3X3BhdGNoLT5kYXRh Owo+PiArICAgIHN0cnVjdCBtaWNyb2NvZGVfaGVhZGVyX2FtZCAqbmV3X2hlYWRlciA9IG5ld19t Yy0+bXBiOwo+PiArCj4+ICsgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSh1Y29kZV9wYXRjaCwgJm1p Y3JvY29kZV9jYWNoZSwgbGlzdCkKPj4gKyAgICB7Cj4+ICsgICAgICAgIHN0cnVjdCBtaWNyb2Nv ZGVfYW1kICpvbGRfbWMgPSB1Y29kZV9wYXRjaC0+ZGF0YTsKPj4gKyAgICAgICAgc3RydWN0IG1p Y3JvY29kZV9oZWFkZXJfYW1kICpvbGRfaGVhZGVyID0gb2xkX21jLT5tcGI7Cj4+ICsKPj4gKyAg ICAgICAgaWYgKCBuZXdfaGVhZGVyLT5wcm9jZXNzb3JfcmV2X2lkID09IG9sZF9oZWFkZXItPnBy b2Nlc3Nvcl9yZXZfaWQgKQo+PiArICAgICAgICB7Cj4+ICsgICAgICAgICAgICBpZiAoIG5ld19o ZWFkZXItPnBhdGNoX2lkIDw9IG9sZF9oZWFkZXItPnBhdGNoX2lkICkKPj4gKyAgICAgICAgICAg ICAgICByZXR1cm4gLTE7Cj4+ICsgICAgICAgICAgICBsaXN0X3JlcGxhY2UoJnVjb2RlX3BhdGNo LT5saXN0LCAmbmV3X3BhdGNoLT5saXN0KTsKPj4gKyAgICAgICAgICAgIGZyZWVfdWNvZGVfcGF0 Y2godWNvZGVfcGF0Y2gpOwo+PiArICAgICAgICAgICAgcmV0dXJuIDA7Cj4+ICsgICAgICAgIH0K Pj4gKyAgICB9Cj4KPlRoaXMgY291bGQgYmUgbWFkZSBjb21tb24gY29kZSB3aXRoIGEgc3BlY2lm aWMgaG9vayBmb3IgQU1EIGFuZCBJbnRlbAo+aW4gb3JkZXIgdG8gZG8gdGhlIGNvbXBhcmlzb24s IHNvIHRoYXQgYXQgbGVhc3QgdGhlIGxvb3Agb3ZlciB0aGUKPmxpc3Qgb2YgdWNvZGUgZW50cmll cyBjb3VsZCBiZSBzaGFyZWQuCgpTb21ldGhpbmcgbGlrZSBwdF9waXJxX2l0ZXJhdGUoKT8gV2ls bCBnaXZlIGl0IGEgdHJ5LgoKPgo+PiArICAgIGxpc3RfYWRkX3RhaWwoJm5ld19wYXRjaC0+bGlz dCwgJm1pY3JvY29kZV9jYWNoZSk7Cj4+ICsgICAgcmV0dXJuIDE7Cj4+ICt9Cj4+ICsKPj4gK3N0 YXRpYyBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9hbWQgKmZpbmRfcGF0Y2godW5zaWduZWQgaW50 IGNwdSkKPj4gK3sKPj4gKyAgICBzdHJ1Y3QgdWNvZGVfcGF0Y2ggKnVjb2RlX3BhdGNoOwo+PiAr Cj4+ICsgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSh1Y29kZV9wYXRjaCwgJm1pY3JvY29kZV9jYWNo ZSwgbGlzdCkKPj4gKyAgICB7Cj4+ICsgICAgICAgIGlmICggbWljcm9jb2RlX2ZpdHModWNvZGVf cGF0Y2gtPmRhdGEsIGNwdSkgKQo+PiArICAgICAgICAgICAgcmV0dXJuICgoc3RydWN0IG1pY3Jv Y29kZV9hbWQgKil1Y29kZV9wYXRjaC0+ZGF0YSktPm1wYjsKPj4gKyAgICB9Cj4+ICsgICAgcmV0 dXJuIE5VTEw7Cj4KPlRoaXMgYWxzbyBsb29rcyBzdWl0YWJsZSB0byBiZSBtb3ZlZCB0byBjb21t b24gY29kZSB3aXRoIGRlZGljYXRlZCBBTUQKPmFuZCBJbnRlbCBob29rcy4KPgo+PiArfQo+PiAr Cj4+ICBzdGF0aWMgaW50IGFwcGx5X21pY3JvY29kZSh1bnNpZ25lZCBpbnQgY3B1KQo+PiAgewo+ PiAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4+ICAgICAgc3RydWN0IHVjb2RlX2NwdV9pbmZv ICp1Y2kgPSAmcGVyX2NwdSh1Y29kZV9jcHVfaW5mbywgY3B1KTsKPj4gICAgICB1aW50MzJfdCBy ZXY7Cj4+IC0gICAgc3RydWN0IG1pY3JvY29kZV9hbWQgKm1jX2FtZCA9IHVjaS0+bWMubWNfYW1k Owo+PiAgICAgIHN0cnVjdCBtaWNyb2NvZGVfaGVhZGVyX2FtZCAqaGRyOwo+PiAgICAgIGludCBo d19lcnI7Cj4+ICAKPj4gICAgICAvKiBXZSBzaG91bGQgYmluZCB0aGUgdGFzayB0byB0aGUgQ1BV ICovCj4+ICAgICAgQlVHX09OKHJhd19zbXBfcHJvY2Vzc29yX2lkKCkgIT0gY3B1KTsKPj4gIAo+ PiAtICAgIGlmICggbWNfYW1kID09IE5VTEwgKQo+PiAtICAgICAgICByZXR1cm4gLUVJTlZBTDsK Pj4gLQo+PiAtICAgIGhkciA9IG1jX2FtZC0+bXBiOwo+PiArICAgIGhkciA9IGZpbmRfcGF0Y2go Y3B1KTsKPj4gICAgICBpZiAoIGhkciA9PSBOVUxMICkKPj4gICAgICAgICAgcmV0dXJuIC1FSU5W QUw7Cj4+ICAKPj4gQEAgLTQ5MSw2ICs1NTksMjEgQEAgc3RhdGljIGludCBjcHVfcmVxdWVzdF9t aWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSwgY29uc3Qgdm9pZCAqYnVmLAo+PiAgICAgIHdoaWxl ICggKGVycm9yID0gZ2V0X3Vjb2RlX2Zyb21fYnVmZmVyX2FtZChtY19hbWQsIGJ1ZiwgYnVmc2l6 ZSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9m ZnNldCkpID09IDAgKQo+PiAgICAgIHsKPj4gKyAgICAgICAgc3RydWN0IHVjb2RlX3BhdGNoICp1 Y29kZV9wYXRjaDsKPj4gKwo+PiArICAgICAgICAvKgo+PiArICAgICAgICAgKiBTYXZlIHRoaXMg bWljcm9jb2RlIGJlZm9yZSBjaGVja2luZyB0aGUgc2lnbmF0dXJlLiBJdCBpcyB0bwo+PiArICAg ICAgICAgKiBvcHRpbWl6ZSBtaWNyb2NvZGUgdXBkYXRlIG9uIGEgbWl4ZWQgZmFtaWx5IHN5c3Rl bS4gUGFyc2luZwo+Cj5FciwgaXMgaXQgcG9zc2libGUgdG8gaGF2ZSBhIHN5c3RlbSB3aXRoIENQ VXMgb2YgZGlmZmVyZW50IGZhbWlseT8KPldoYXQncyBnb2luZyB0byBoYXBwZW4gd2l0aCBDUFVz IGhhdmluZyBkaWZmZXJlbnQgZmVhdHVyZXM/CgpJIGhhdmUgbm8gaWRlYS4gVGhhdCBlYWNoIGNw dSBoYXMgYSBwZXItY3B1IHZhcmlhYmxlIHRvIHN0b3JlIHRoZQptaWNyb2NvZGUgcmF0aGVyIHRo YW4gYSBnbG9iYWwgb25lIGdpdmVzIG1lIGEgZmVlbGluZyB0aGF0IHRoZSBjdXJyZW50CmltcGxl bWVudGF0aW9uIHdhbnRzIHRvIG1ha2UgaXQgd29yayBvbiBhIHN5c3RlbSB3aXRoIENQVXMgb2Yg ZGlmZmVyZW50CmZhbWlseS4KCj4KPj4gKyAgICAgICAgICogbWljcm9jb2RlIGZpbGUgaXMgb25s eSBkb25lIG9uY2Ugb24gb25lIG9mIHRoZSBDUFVzLCBhbmQKPj4gKyAgICAgICAgICogZHVyaW5n IHRoaXMgcHJvY2VzcyBtaWNyb2NvZGUgY2FjaGUgaXMgY3JlYXRlZC4gT3RoZXIgQ1BVcwo+PiAr ICAgICAgICAgKiBuZWVkbid0IHBhcnNlIHRoZSBzYW1lIG1pY3Jjb2RlIGZpbGUgYWdhaW4gYW5k IGFnYWluLgo+PiArICAgICAgICAgKiBJbnN0ZWFkLCB0aGV5IGp1c3QgbG9hZCB0aGUgbWF0Y2hl ZCBhbmQgbGF0ZXN0IG1pY3JvY29kZSBpbgo+PiArICAgICAgICAgKiB0aGUgY2FjaGVzLgo+PiAr ICAgICAgICAgKi8KPj4gKyAgICAgICAgdWNvZGVfcGF0Y2ggPSBhbGxvY191Y29kZV9wYXRjaCht Y19hbWQpOwo+PiArICAgICAgICBpZiAoICFJU19FUlJfT1JfTlVMTCh1Y29kZV9wYXRjaCkgJiYg KHNhdmVfcGF0Y2godWNvZGVfcGF0Y2gpIDwgMCkgKQo+PiArICAgICAgICAgICAgZnJlZV91Y29k ZV9wYXRjaCh1Y29kZV9wYXRjaCk7Cj4+ICsKPj4gICAgICAgICAgaWYgKCBtaWNyb2NvZGVfZml0 cyhtY19hbWQsIGNwdSkgKQo+PiAgICAgICAgICB7Cj4+ICAgICAgICAgICAgICBlcnJvciA9IGFw cGx5X21pY3JvY29kZShjcHUpOwo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21pY3JvY29k ZV9pbnRlbC5jIGIveGVuL2FyY2gveDg2L21pY3JvY29kZV9pbnRlbC5jCj4+IGluZGV4IDhkOWEz YjIuLmM0ZjgxMmYgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfaW50ZWwu Ywo+PiArKysgYi94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2ludGVsLmMKPj4gQEAgLTI1MSw2ICsy NTEsNDIgQEAgc3RhdGljIGludCBtaWNyb2NvZGVfc2FuaXR5X2NoZWNrKHZvaWQgKm1jKQo+PiAg fQo+PiAgCj4+ICAvKgo+PiArICogc2F2ZSBhIG1pY3Jjb2RlIHRvIHRoZSBjYWNoZSBsaXN0Cj4+ ICsgKiByZXR1cm4gMTogYWRkZWQgc3VjY2Vzc2Z1bGx5Cj4+ICsgKiAgICAgICAgMDogcmVwbGFj ZWQgYW4gZXhpc3RpbmcgZW50cnkKPj4gKyAqICAgICAgIC0xOiBmYWlsZWQgYXMgYSBuZXdlciBt aWNyb2NvZGUgd2FzIGFscmVhZHkgY2FjaGVkCj4+ICsgKi8KPj4gK3N0YXRpYyBpbnQgc2F2ZV9w YXRjaChzdHJ1Y3QgdWNvZGVfcGF0Y2ggKm5ld19wYXRjaCkKPj4gK3sKPj4gKyAgICB2b2lkICpt YzsKPj4gKyAgICBzdHJ1Y3QgdWNvZGVfcGF0Y2ggKnVjb2RlX3BhdGNoOwo+PiArCj4+ICsgICAg QVNTRVJUKG5ld19wYXRjaCk7Cj4+ICsKPj4gKyAgICBtYyA9IG5ld19wYXRjaC0+ZGF0YTsKPj4g KyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KHVjb2RlX3BhdGNoLCAmbWljcm9jb2RlX2NhY2hlLCBs aXN0KQo+PiArICAgIHsKPj4gKyAgICAgICAgc3RydWN0IG1pY3JvY29kZV9oZWFkZXJfaW50ZWwg KnNhdmVkX2hlYWRlciA9IHVjb2RlX3BhdGNoLT5kYXRhOwo+PiArICAgICAgICBpbnQgcmV0Owo+ PiArCj4+ICsgICAgICAgIHJldCA9IG1pY3JvY29kZV91cGRhdGVfbWF0Y2gobWMsIHNhdmVkX2hl YWRlci0+c2lnLCBzYXZlZF9oZWFkZXItPnBmLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNhdmVkX2hlYWRlci0+cmV2KTsKPgo+WW91IGNhbiBpbml0aWFsaXplIHJl dCBhdCBkZWZpbml0aW9uIHRpbWUuCj4KPj4gKyAgICAgICAgaWYgKCByZXQgPT0gT0xEX1VDT0RF ICkKPj4gKyAgICAgICAgICAgIHJldHVybiAtMTsKPj4gKyAgICAgICAgaWYgKCByZXQgPT0gTUlT X1VDT0RFICkKPj4gKyAgICAgICAgICAgIGNvbnRpbnVlOwo+PiArCj4+ICsgICAgICAgIGxpc3Rf cmVwbGFjZSgmdWNvZGVfcGF0Y2gtPmxpc3QsICZuZXdfcGF0Y2gtPmxpc3QpOwo+PiArICAgICAg ICB4ZnJlZSh1Y29kZV9wYXRjaC0+ZGF0YSk7Cj4+ICsgICAgICAgIHhmcmVlKHVjb2RlX3BhdGNo KTsKPj4gKyAgICAgICAgcmV0dXJuIDA7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgbGlzdF9hZGRf dGFpbCgmbmV3X3BhdGNoLT5saXN0LCAmbWljcm9jb2RlX2NhY2hlKTsKPj4gKyAgICByZXR1cm4g MTsKPj4gK30KPj4gKwo+PiArLyoKPj4gICAqIHJldHVybiAwIC0gbm8gdXBkYXRlIGZvdW5kCj4+ ICAgKiByZXR1cm4gMSAtIGZvdW5kIHVwZGF0ZQo+PiAgICogcmV0dXJuIDwgMCAtIGVycm9yCj4+ IEBAIC0yNjEsNiArMjk3LDMwIEBAIHN0YXRpYyBpbnQgZ2V0X21hdGNoaW5nX21pY3JvY29kZShj b25zdCB2b2lkICptYywgdW5zaWduZWQgaW50IGNwdSkKPj4gICAgICBjb25zdCBzdHJ1Y3QgbWlj cm9jb2RlX2hlYWRlcl9pbnRlbCAqbWNfaGVhZGVyID0gbWM7Cj4+ICAgICAgdW5zaWduZWQgbG9u ZyB0b3RhbF9zaXplID0gZ2V0X3RvdGFsc2l6ZShtY19oZWFkZXIpOwo+PiAgICAgIHZvaWQgKm5l d19tYzsKPj4gKyAgICBzdHJ1Y3QgdWNvZGVfcGF0Y2ggKnVjb2RlX3BhdGNoID0geG1hbGxvYyhz dHJ1Y3QgdWNvZGVfcGF0Y2gpOwo+PiArICAgIHZvaWQgKm5ld19tYzIgPSB4bWFsbG9jX2J5dGVz KHRvdGFsX3NpemUpOwo+PiArCj4+ICsgICAgLyoKPj4gKyAgICAgKiBTYXZlIHRoaXMgbWljcm9j b2RlIGJlZm9yZSBjaGVja2luZyB0aGUgc2lnbmF0dXJlLiBJdCBpcyB0bwo+PiArICAgICAqIG9w dGltaXplIG1pY3JvY29kZSB1cGRhdGUgb24gYSBtaXhlZCBmYW1pbHkgc3lzdGVtLiBQYXJzaW5n Cj4+ICsgICAgICogbWljcm9jb2RlIGZpbGUgaXMgb25seSBkb25lIG9uY2Ugb24gb25lIG9mIHRo ZSBDUFVzLCBhbmQKPj4gKyAgICAgKiBkdXJpbmcgdGhpcyBwcm9jZXNzIG1pY3JvY29kZSBjYWNo ZSBpcyBjcmVhdGVkLiBPdGhlciBDUFVzCj4+ICsgICAgICogbmVlZG4ndCBwYXJzZSB0aGUgc2Ft ZSBtaWNyY29kZSBmaWxlIGFnYWluIGFuZCBhZ2Fpbi4KPj4gKyAgICAgKiBJbnN0ZWFkLCB0aGV5 IGp1c3QgbG9hZCB0aGUgbWF0Y2hlZCBhbmQgbGF0ZXN0IG1pY3JvY29kZSBpbgo+PiArICAgICAq IHRoZSBjYWNoZXMuCj4+ICsgICAgICovCj4+ICsgICAgaWYgKCAhdWNvZGVfcGF0Y2ggfHwgIW5l d19tYzIgKQo+PiArICAgIHsKPj4gKyAgICAgICAgcHJpbnRrKEtFUk5fRVJSICJtaWNyb2NvZGU6 IGVycm9yISBDYW4gbm90IGFsbG9jYXRlIG1lbW9yeVxuIik7Cj4KPlNpbmNlIHRoaXMgY29kZSBp cyBub3QgaW1wb3J0ZWQgZnJvbSBMaW51eCBwbGVhc2UgdXNlIFhFTkxPR19FUlIuIFlvdQo+YWxz byBuZWVkIHRvIHhmcmVlIGJvdGggc3RydWN0cyBpbiBvcmRlciB0byBhdm9pZCBsZWFraW5nIG1l bW9yeS4KCldpbGwgZml4IHRoaXMuIAoKT3RoZXIgY29tbWVudHMgYXJlIGZpbmUgd2l0aCBtZSBh bmQgSSB3aWxsIGZvbGxvdyB5b3VyIHN1Z2dlc3Rpb25zLgoKVGhhbmtzCkNoYW8KCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=