From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v4 2/6] microcode: save all microcodes which pass sanity check Date: Wed, 28 Nov 2018 13:34:12 +0800 Message-ID: <1543383256-12371-3-git-send-email-chao.gao@intel.com> References: <1543383256-12371-1-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 us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gRsQy-0005sw-JU for xen-devel@lists.xenproject.org; Wed, 28 Nov 2018 05:30:48 +0000 In-Reply-To: <1543383256-12371-1-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: xen-devel@lists.xenproject.org Cc: Andrew Cooper , Wei Liu , Jan Beulich , Chao Gao List-Id: xen-devel@lists.xenproject.org Li4uIGFuZCBzZWFyY2ggY2FjaGVzIHRvIGZpbmQgYSBzdWl0YWJsZSBvbmUgd2hlbiBsb2FkaW5n LgoKV2l0aCB0aGlzIGNhY2hlLCB0aGUgZXhpc3RpbmcgJ3VjaS0+bWMnIHN0cnVjdHVyZSBpcyBy ZWR1bmRlbnQuCkkgZGVsaWJlcmF0ZWx5IGF2b2lkIHRvdWNoaW5nICd1Y2ktPm1jJyBhcyBJIGFt IGdvaW5nIHRvIHJlbW92ZQppdCBjb21wbGV0ZWx5IGluIHRoZSBuZXh0IHBhdGNoLgoKU2lnbmVk LW9mZi1ieTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYv bWljcm9jb2RlLmMgICAgICAgIHwgIDIgKwogeGVuL2FyY2gveDg2L21pY3JvY29kZV9hbWQuYyAg ICB8IDkzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiB4ZW4vYXJjaC94 ODYvbWljcm9jb2RlX2ludGVsLmMgIHwgOTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvbWljcm9jb2RlLmggfCAxMSArKysrKwog NCBmaWxlcyBjaGFuZ2VkLCAxOTMgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L21pY3JvY29kZS5jIGIveGVuL2FyY2gveDg2L21pY3JvY29k ZS5jCmluZGV4IDQxNjNmNTAuLjRmMmRiODggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9taWNy b2NvZGUuYworKysgYi94ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMKQEAgLTYxLDYgKzYxLDggQEAg c3RhdGljIHN0cnVjdCB1Y29kZV9tb2RfYmxvYiBfX2luaXRkYXRhIHVjb2RlX2Jsb2I7CiAgKi8K IHN0YXRpYyBib29sX3QgX19pbml0ZGF0YSB1Y29kZV9zY2FuOwogCitMSVNUX0hFQUQobWljcm9j b2RlX2NhY2hlKTsKKwogdm9pZCBfX2luaXQgbWljcm9jb2RlX3NldF9tb2R1bGUodW5zaWduZWQg aW50IGlkeCkKIHsKICAgICB1Y29kZV9tb2RfaWR4ID0gaWR4OwpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21pY3JvY29kZV9hbWQuYyBiL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfYW1kLmMKaW5k ZXggZmJhNDRjYy4uYTY4NmE4NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21pY3JvY29kZV9h bWQuYworKysgYi94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2FtZC5jCkBAIC0xOTAsMjIgKzE5MCw5 MCBAQCBzdGF0aWMgYm9vbF90IG1pY3JvY29kZV9maXRzKGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVf YW1kICptY19hbWQsCiAgICAgcmV0dXJuIDE7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgdWNvZGVfcGF0 Y2ggKmFsbG9jX3Vjb2RlX3BhdGNoKHN0cnVjdCBtaWNyb2NvZGVfYW1kICptY19hbWQpCit7Cisg ICAgc3RydWN0IHVjb2RlX3BhdGNoICp1Y29kZV9wYXRjaCA9IHhtYWxsb2Moc3RydWN0IHVjb2Rl X3BhdGNoKTsKKyAgICBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAqY2FjaGUgPSB4bWFsbG9jKHN0cnVj dCBtaWNyb2NvZGVfYW1kKTsKKyAgICB2b2lkICptcGIgPSB4bWFsbG9jX2J5dGVzKG1jX2FtZC0+ bXBiX3NpemUpOworICAgIHN0cnVjdCBlcXVpdl9jcHVfZW50cnkgKmVxdWl2X2NwdV90YWJsZSA9 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtYWxsb2NfYnl0ZXMobWNfYW1kLT5l cXVpdl9jcHVfdGFibGVfc2l6ZSk7CisKKyAgICBpZiAoICF1Y29kZV9wYXRjaCB8fCAhY2FjaGUg fHwgIW1wYiB8fCAhZXF1aXZfY3B1X3RhYmxlICkKKyAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVO T01FTSk7CisKKyAgICBtZW1jcHkoY2FjaGUtPmVxdWl2X2NwdV90YWJsZSwgbWNfYW1kLT5lcXVp dl9jcHVfdGFibGUsCisgICAgICAgICAgIG1jX2FtZC0+ZXF1aXZfY3B1X3RhYmxlX3NpemUpOwor ICAgIG1lbWNweShjYWNoZS0+bXBiLCBtY19hbWQtPm1wYiwgbWNfYW1kLT5tcGJfc2l6ZSk7Cisg ICAgY2FjaGUtPmVxdWl2X2NwdV90YWJsZV9zaXplID0gbWNfYW1kLT5lcXVpdl9jcHVfdGFibGVf c2l6ZTsKKyAgICBjYWNoZS0+bXBiX3NpemUgPSBtY19hbWQtPm1wYl9zaXplOworICAgIHVjb2Rl X3BhdGNoLT5kYXRhID0gY2FjaGU7CisgICAgcmV0dXJuIHVjb2RlX3BhdGNoOworfQorCitzdGF0 aWMgdm9pZCBmcmVlX3Vjb2RlX3BhdGNoKHN0cnVjdCB1Y29kZV9wYXRjaCAqdWNvZGVfcGF0Y2gp Cit7CisgICAgc3RydWN0IG1pY3JvY29kZV9hbWQgKm1jX2FtZCA9IHVjb2RlX3BhdGNoLT5kYXRh OworCisgICAgeGZyZWUobWNfYW1kLT5lcXVpdl9jcHVfdGFibGUpOworICAgIHhmcmVlKG1jX2Ft ZC0+bXBiKTsKKyAgICB4ZnJlZShtY19hbWQpOworICAgIHhmcmVlKHVjb2RlX3BhdGNoKTsKK30K KworLyoKKyAqIHNhdmUgYSBtaWNyY29kZSB0byB0aGUgY2FjaGUgbGlzdAorICogcmV0dXJuIDE6 IGFkZGVkIHN1Y2Nlc3NmdWxseQorICogICAgICAgIDA6IHJlcGxhY2VkIGFuIGV4aXN0aW5nIGVu dHJ5CisgKiAgICAgICAtMTogZmFpbGVkIGFzIGEgbmV3ZXIgbWljcm9jb2RlIHdhcyBhbHJlYWR5 IGNhY2hlZAorICovCitzdGF0aWMgaW50IHNhdmVfcGF0Y2goc3RydWN0IHVjb2RlX3BhdGNoICpu ZXdfcGF0Y2gpCit7CisgICAgc3RydWN0IHVjb2RlX3BhdGNoICp1Y29kZV9wYXRjaDsKKyAgICBz dHJ1Y3QgbWljcm9jb2RlX2FtZCAqbmV3X21jID0gbmV3X3BhdGNoLT5kYXRhOworICAgIHN0cnVj dCBtaWNyb2NvZGVfaGVhZGVyX2FtZCAqbmV3X2hlYWRlciA9IG5ld19tYy0+bXBiOworCisgICAg bGlzdF9mb3JfZWFjaF9lbnRyeSh1Y29kZV9wYXRjaCwgJm1pY3JvY29kZV9jYWNoZSwgbGlzdCkK KyAgICB7CisgICAgICAgIHN0cnVjdCBtaWNyb2NvZGVfYW1kICpvbGRfbWMgPSB1Y29kZV9wYXRj aC0+ZGF0YTsKKyAgICAgICAgc3RydWN0IG1pY3JvY29kZV9oZWFkZXJfYW1kICpvbGRfaGVhZGVy ID0gb2xkX21jLT5tcGI7CisKKyAgICAgICAgaWYgKCBuZXdfaGVhZGVyLT5wcm9jZXNzb3JfcmV2 X2lkID09IG9sZF9oZWFkZXItPnByb2Nlc3Nvcl9yZXZfaWQgKQorICAgICAgICB7CisgICAgICAg ICAgICBpZiAoIG5ld19oZWFkZXItPnBhdGNoX2lkIDw9IG9sZF9oZWFkZXItPnBhdGNoX2lkICkK KyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBsaXN0X3JlcGxhY2UoJnVj b2RlX3BhdGNoLT5saXN0LCAmbmV3X3BhdGNoLT5saXN0KTsKKyAgICAgICAgICAgIGZyZWVfdWNv ZGVfcGF0Y2godWNvZGVfcGF0Y2gpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0K KyAgICB9CisgICAgbGlzdF9hZGRfdGFpbCgmbmV3X3BhdGNoLT5saXN0LCAmbWljcm9jb2RlX2Nh Y2hlKTsKKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIHN0cnVjdCBtaWNyb2NvZGVfaGVhZGVy X2FtZCAqZmluZF9wYXRjaCh1bnNpZ25lZCBpbnQgY3B1KQoreworICAgIHN0cnVjdCB1Y29kZV9w YXRjaCAqdWNvZGVfcGF0Y2g7CisKKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KHVjb2RlX3BhdGNo LCAmbWljcm9jb2RlX2NhY2hlLCBsaXN0KQorICAgIHsKKyAgICAgICAgaWYgKCBtaWNyb2NvZGVf Zml0cyh1Y29kZV9wYXRjaC0+ZGF0YSwgY3B1KSApCisgICAgICAgICAgICByZXR1cm4gKChzdHJ1 Y3QgbWljcm9jb2RlX2FtZCAqKXVjb2RlX3BhdGNoLT5kYXRhKS0+bXBiOworICAgIH0KKyAgICBy ZXR1cm4gTlVMTDsKK30KKwogc3RhdGljIGludCBhcHBseV9taWNyb2NvZGUodW5zaWduZWQgaW50 IGNwdSkKIHsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIHN0cnVjdCB1Y29kZV9jcHVf aW5mbyAqdWNpID0gJnBlcl9jcHUodWNvZGVfY3B1X2luZm8sIGNwdSk7CiAgICAgdWludDMyX3Qg cmV2OwotICAgIHN0cnVjdCBtaWNyb2NvZGVfYW1kICptY19hbWQgPSB1Y2ktPm1jLm1jX2FtZDsK ICAgICBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9hbWQgKmhkcjsKICAgICBpbnQgaHdfZXJyOwog CiAgICAgLyogV2Ugc2hvdWxkIGJpbmQgdGhlIHRhc2sgdG8gdGhlIENQVSAqLwogICAgIEJVR19P TihyYXdfc21wX3Byb2Nlc3Nvcl9pZCgpICE9IGNwdSk7CiAKLSAgICBpZiAoIG1jX2FtZCA9PSBO VUxMICkKLSAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0KLSAgICBoZHIgPSBtY19hbWQtPm1wYjsK KyAgICBoZHIgPSBmaW5kX3BhdGNoKGNwdSk7CiAgICAgaWYgKCBoZHIgPT0gTlVMTCApCiAgICAg ICAgIHJldHVybiAtRUlOVkFMOwogCkBAIC00OTEsNiArNTU5LDIxIEBAIHN0YXRpYyBpbnQgY3B1 X3JlcXVlc3RfbWljcm9jb2RlKHVuc2lnbmVkIGludCBjcHUsIGNvbnN0IHZvaWQgKmJ1ZiwKICAg ICB3aGlsZSAoIChlcnJvciA9IGdldF91Y29kZV9mcm9tX2J1ZmZlcl9hbWQobWNfYW1kLCBidWYs IGJ1ZnNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZvZmZzZXQpKSA9PSAwICkKICAgICB7CisgICAgICAgIHN0cnVjdCB1Y29kZV9wYXRjaCAqdWNv ZGVfcGF0Y2g7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogU2F2ZSB0aGlzIG1pY3JvY29kZSBi ZWZvcmUgY2hlY2tpbmcgdGhlIHNpZ25hdHVyZS4gSXQgaXMgdG8KKyAgICAgICAgICogb3B0aW1p emUgbWljcm9jb2RlIHVwZGF0ZSBvbiBhIG1peGVkIGZhbWlseSBzeXN0ZW0uIFBhcnNpbmcKKyAg ICAgICAgICogbWljcm9jb2RlIGZpbGUgaXMgb25seSBkb25lIG9uY2Ugb24gb25lIG9mIHRoZSBD UFVzLCBhbmQKKyAgICAgICAgICogZHVyaW5nIHRoaXMgcHJvY2VzcyBtaWNyb2NvZGUgY2FjaGUg aXMgY3JlYXRlZC4gT3RoZXIgQ1BVcworICAgICAgICAgKiBuZWVkbid0IHBhcnNlIHRoZSBzYW1l IG1pY3Jjb2RlIGZpbGUgYWdhaW4gYW5kIGFnYWluLgorICAgICAgICAgKiBJbnN0ZWFkLCB0aGV5 IGp1c3QgbG9hZCB0aGUgbWF0Y2hlZCBhbmQgbGF0ZXN0IG1pY3JvY29kZSBpbgorICAgICAgICAg KiB0aGUgY2FjaGVzLgorICAgICAgICAgKi8KKyAgICAgICAgdWNvZGVfcGF0Y2ggPSBhbGxvY191 Y29kZV9wYXRjaChtY19hbWQpOworICAgICAgICBpZiAoICFJU19FUlJfT1JfTlVMTCh1Y29kZV9w YXRjaCkgJiYgKHNhdmVfcGF0Y2godWNvZGVfcGF0Y2gpIDwgMCkgKQorICAgICAgICAgICAgZnJl ZV91Y29kZV9wYXRjaCh1Y29kZV9wYXRjaCk7CisKICAgICAgICAgaWYgKCBtaWNyb2NvZGVfZml0 cyhtY19hbWQsIGNwdSkgKQogICAgICAgICB7CiAgICAgICAgICAgICBlcnJvciA9IGFwcGx5X21p Y3JvY29kZShjcHUpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21pY3JvY29kZV9pbnRlbC5j IGIveGVuL2FyY2gveDg2L21pY3JvY29kZV9pbnRlbC5jCmluZGV4IDhkOWEzYjIuLmM0ZjgxMmYg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfaW50ZWwuYworKysgYi94ZW4vYXJj aC94ODYvbWljcm9jb2RlX2ludGVsLmMKQEAgLTI1MSw2ICsyNTEsNDIgQEAgc3RhdGljIGludCBt aWNyb2NvZGVfc2FuaXR5X2NoZWNrKHZvaWQgKm1jKQogfQogCiAvKgorICogc2F2ZSBhIG1pY3Jj b2RlIHRvIHRoZSBjYWNoZSBsaXN0CisgKiByZXR1cm4gMTogYWRkZWQgc3VjY2Vzc2Z1bGx5Cisg KiAgICAgICAgMDogcmVwbGFjZWQgYW4gZXhpc3RpbmcgZW50cnkKKyAqICAgICAgIC0xOiBmYWls ZWQgYXMgYSBuZXdlciBtaWNyb2NvZGUgd2FzIGFscmVhZHkgY2FjaGVkCisgKi8KK3N0YXRpYyBp bnQgc2F2ZV9wYXRjaChzdHJ1Y3QgdWNvZGVfcGF0Y2ggKm5ld19wYXRjaCkKK3sKKyAgICB2b2lk ICptYzsKKyAgICBzdHJ1Y3QgdWNvZGVfcGF0Y2ggKnVjb2RlX3BhdGNoOworCisgICAgQVNTRVJU KG5ld19wYXRjaCk7CisKKyAgICBtYyA9IG5ld19wYXRjaC0+ZGF0YTsKKyAgICBsaXN0X2Zvcl9l YWNoX2VudHJ5KHVjb2RlX3BhdGNoLCAmbWljcm9jb2RlX2NhY2hlLCBsaXN0KQorICAgIHsKKyAg ICAgICAgc3RydWN0IG1pY3JvY29kZV9oZWFkZXJfaW50ZWwgKnNhdmVkX2hlYWRlciA9IHVjb2Rl X3BhdGNoLT5kYXRhOworICAgICAgICBpbnQgcmV0OworCisgICAgICAgIHJldCA9IG1pY3JvY29k ZV91cGRhdGVfbWF0Y2gobWMsIHNhdmVkX2hlYWRlci0+c2lnLCBzYXZlZF9oZWFkZXItPnBmLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVkX2hlYWRlci0+cmV2KTsK KyAgICAgICAgaWYgKCByZXQgPT0gT0xEX1VDT0RFICkKKyAgICAgICAgICAgIHJldHVybiAtMTsK KyAgICAgICAgaWYgKCByZXQgPT0gTUlTX1VDT0RFICkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor CisgICAgICAgIGxpc3RfcmVwbGFjZSgmdWNvZGVfcGF0Y2gtPmxpc3QsICZuZXdfcGF0Y2gtPmxp c3QpOworICAgICAgICB4ZnJlZSh1Y29kZV9wYXRjaC0+ZGF0YSk7CisgICAgICAgIHhmcmVlKHVj b2RlX3BhdGNoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgbGlzdF9hZGRfdGFp bCgmbmV3X3BhdGNoLT5saXN0LCAmbWljcm9jb2RlX2NhY2hlKTsKKyAgICByZXR1cm4gMTsKK30K KworLyoKICAqIHJldHVybiAwIC0gbm8gdXBkYXRlIGZvdW5kCiAgKiByZXR1cm4gMSAtIGZvdW5k IHVwZGF0ZQogICogcmV0dXJuIDwgMCAtIGVycm9yCkBAIC0yNjEsNiArMjk3LDMwIEBAIHN0YXRp YyBpbnQgZ2V0X21hdGNoaW5nX21pY3JvY29kZShjb25zdCB2b2lkICptYywgdW5zaWduZWQgaW50 IGNwdSkKICAgICBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9pbnRlbCAqbWNfaGVhZGVy ID0gbWM7CiAgICAgdW5zaWduZWQgbG9uZyB0b3RhbF9zaXplID0gZ2V0X3RvdGFsc2l6ZShtY19o ZWFkZXIpOwogICAgIHZvaWQgKm5ld19tYzsKKyAgICBzdHJ1Y3QgdWNvZGVfcGF0Y2ggKnVjb2Rl X3BhdGNoID0geG1hbGxvYyhzdHJ1Y3QgdWNvZGVfcGF0Y2gpOworICAgIHZvaWQgKm5ld19tYzIg PSB4bWFsbG9jX2J5dGVzKHRvdGFsX3NpemUpOworCisgICAgLyoKKyAgICAgKiBTYXZlIHRoaXMg bWljcm9jb2RlIGJlZm9yZSBjaGVja2luZyB0aGUgc2lnbmF0dXJlLiBJdCBpcyB0bworICAgICAq IG9wdGltaXplIG1pY3JvY29kZSB1cGRhdGUgb24gYSBtaXhlZCBmYW1pbHkgc3lzdGVtLiBQYXJz aW5nCisgICAgICogbWljcm9jb2RlIGZpbGUgaXMgb25seSBkb25lIG9uY2Ugb24gb25lIG9mIHRo ZSBDUFVzLCBhbmQKKyAgICAgKiBkdXJpbmcgdGhpcyBwcm9jZXNzIG1pY3JvY29kZSBjYWNoZSBp cyBjcmVhdGVkLiBPdGhlciBDUFVzCisgICAgICogbmVlZG4ndCBwYXJzZSB0aGUgc2FtZSBtaWNy Y29kZSBmaWxlIGFnYWluIGFuZCBhZ2Fpbi4KKyAgICAgKiBJbnN0ZWFkLCB0aGV5IGp1c3QgbG9h ZCB0aGUgbWF0Y2hlZCBhbmQgbGF0ZXN0IG1pY3JvY29kZSBpbgorICAgICAqIHRoZSBjYWNoZXMu CisgICAgICovCisgICAgaWYgKCAhdWNvZGVfcGF0Y2ggfHwgIW5ld19tYzIgKQorICAgIHsKKyAg ICAgICAgcHJpbnRrKEtFUk5fRVJSICJtaWNyb2NvZGU6IGVycm9yISBDYW4gbm90IGFsbG9jYXRl IG1lbW9yeVxuIik7CisgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgIH0KKyAgICBtZW1jcHko bmV3X21jMiwgbWMsIHRvdGFsX3NpemUpOworICAgIHVjb2RlX3BhdGNoLT5kYXRhID0gbmV3X21j MjsKKyAgICBpZiAoIHNhdmVfcGF0Y2godWNvZGVfcGF0Y2gpIDwgMCApCisgICAgeworICAgICAg ICB4ZnJlZShuZXdfbWMyKTsKKyAgICAgICAgeGZyZWUodWNvZGVfcGF0Y2gpOworICAgIH0KIAog ICAgIGlmICggbWljcm9jb2RlX3VwZGF0ZV9tYXRjaChtYywgdWNpLT5jcHVfc2lnLnNpZywgdWNp LT5jcHVfc2lnLnBmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Y2ktPmNwdV9z aWcucmV2KSAhPSBORVdfVUNPREUgKQpAQCAtMjgyLDYgKzM0MiwyOSBAQCBzdGF0aWMgaW50IGdl dF9tYXRjaGluZ19taWNyb2NvZGUoY29uc3Qgdm9pZCAqbWMsIHVuc2lnbmVkIGludCBjcHUpCiAg ICAgcmV0dXJuIDE7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgbWljcm9jb2RlX2ludGVsICpmaW5kX3Bh dGNoKHVuc2lnbmVkIGludCBjcHUpCit7CisgICAgaW50IGVycjsKKyAgICBzdHJ1Y3QgdWNvZGVf Y3B1X2luZm8gKnVjaSA9ICZwZXJfY3B1KHVjb2RlX2NwdV9pbmZvLCBjcHUpOworICAgIHN0cnVj dCB1Y29kZV9wYXRjaCAqdWNvZGVfcGF0Y2g7CisKKyAgICBlcnIgPSBjb2xsZWN0X2NwdV9pbmZv KGNwdSwgJnVjaS0+Y3B1X3NpZyk7CisgICAgaWYgKCB1bmxpa2VseShlcnIpICkKKyAgICB7Cisg ICAgICAgIG1lbXNldCh1Y2ksIDAsIHNpemVvZigqdWNpKSk7CisgICAgICAgIHJldHVybiBFUlJf UFRSKGVycik7CisgICAgfQorCisgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSh1Y29kZV9wYXRjaCwg Jm1pY3JvY29kZV9jYWNoZSwgbGlzdCkKKyAgICB7CisgICAgICAgIGludCByZXQgPSBtaWNyb2Nv ZGVfdXBkYXRlX21hdGNoKHVjb2RlX3BhdGNoLT5kYXRhLCB1Y2ktPmNwdV9zaWcuc2lnLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Y2ktPmNwdV9zaWcucGYsIHVj aS0+Y3B1X3NpZy5yZXYpOworICAgICAgICBpZiAocmV0ID09IE5FV19VQ09ERSkKKyAgICAgICAg ICAgIHJldHVybiB1Y29kZV9wYXRjaC0+ZGF0YTsKKyAgICB9CisgICAgcmV0dXJuIE5VTEw7Cit9 CisKIHN0YXRpYyBpbnQgYXBwbHlfbWljcm9jb2RlKHVuc2lnbmVkIGludCBjcHUpCiB7CiAgICAg dW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTI4OSwxOCArMzcyLDIwIEBAIHN0YXRpYyBpbnQgYXBw bHlfbWljcm9jb2RlKHVuc2lnbmVkIGludCBjcHUpCiAgICAgdW5zaWduZWQgaW50IHZhbFsyXTsK ICAgICB1bnNpZ25lZCBpbnQgY3B1X251bSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7CiAgICAg c3RydWN0IHVjb2RlX2NwdV9pbmZvICp1Y2kgPSAmcGVyX2NwdSh1Y29kZV9jcHVfaW5mbywgY3B1 X251bSk7CisgICAgc3RydWN0IG1pY3JvY29kZV9pbnRlbCAqbWNfaW50ZWw7CiAKICAgICAvKiBX ZSBzaG91bGQgYmluZCB0aGUgdGFzayB0byB0aGUgQ1BVICovCiAgICAgQlVHX09OKGNwdV9udW0g IT0gY3B1KTsKIAotICAgIGlmICggdWNpLT5tYy5tY19pbnRlbCA9PSBOVUxMICkKKyAgICBtY19p bnRlbCA9IGZpbmRfcGF0Y2goY3B1KTsKKyAgICBpZiAoIG1jX2ludGVsID09IE5VTEwgKQogICAg ICAgICByZXR1cm4gLUVJTlZBTDsKIAogICAgIC8qIHNlcmlhbGl6ZSBhY2Nlc3MgdG8gdGhlIHBo eXNpY2FsIHdyaXRlIHRvIE1TUiAweDc5ICovCiAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJm1pY3Jv Y29kZV91cGRhdGVfbG9jaywgZmxhZ3MpOwogCiAgICAgLyogd3JpdGUgbWljcm9jb2RlIHZpYSBN U1IgMHg3OSAqLwotICAgIHdybXNybChNU1JfSUEzMl9VQ09ERV9XUklURSwgKHVuc2lnbmVkIGxv bmcpdWNpLT5tYy5tY19pbnRlbC0+Yml0cyk7CisgICAgd3Jtc3JsKE1TUl9JQTMyX1VDT0RFX1dS SVRFLCAodW5zaWduZWQgbG9uZyltY19pbnRlbC0+Yml0cyk7CiAgICAgd3Jtc3JsKE1TUl9JQTMy X1VDT0RFX1JFViwgMHgwVUxMKTsKIAogICAgIC8qIEFzIGRvY3VtZW50ZWQgaW4gdGhlIFNETTog RG8gYSBDUFVJRCAxIGhlcmUgKi8KQEAgLTMxMSwxOSArMzk2LDE5IEBAIHN0YXRpYyBpbnQgYXBw bHlfbWljcm9jb2RlKHVuc2lnbmVkIGludCBjcHUpCiAgICAgdmFsWzFdID0gKHVpbnQzMl90KSht c3JfY29udGVudCA+PiAzMik7CiAKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtaWNyb2Nv ZGVfdXBkYXRlX2xvY2ssIGZsYWdzKTsKLSAgICBpZiAoIHZhbFsxXSAhPSB1Y2ktPm1jLm1jX2lu dGVsLT5oZHIucmV2ICkKKyAgICBpZiAoIHZhbFsxXSAhPSBtY19pbnRlbC0+aGRyLnJldiApCiAg ICAgewogICAgICAgICBwcmludGsoS0VSTl9FUlIgIm1pY3JvY29kZTogQ1BVJWQgdXBkYXRlIGZy b20gcmV2aXNpb24gIgogICAgICAgICAgICAgICAgIiUjeCB0byAlI3ggZmFpbGVkLiBSZXN1bHRp bmcgcmV2aXNpb24gaXMgJSN4LlxuIiwgY3B1X251bSwKLSAgICAgICAgICAgICAgIHVjaS0+Y3B1 X3NpZy5yZXYsIHVjaS0+bWMubWNfaW50ZWwtPmhkci5yZXYsIHZhbFsxXSk7CisgICAgICAgICAg ICAgICB1Y2ktPmNwdV9zaWcucmV2LCBtY19pbnRlbC0+aGRyLnJldiwgdmFsWzFdKTsKICAgICAg ICAgcmV0dXJuIC1FSU87CiAgICAgfQogICAgIHByaW50ayhLRVJOX0lORk8gIm1pY3JvY29kZTog Q1BVJWQgdXBkYXRlZCBmcm9tIHJldmlzaW9uICIKICAgICAgICAgICAgIiUjeCB0byAlI3gsIGRh dGUgPSAlMDR4LSUwMngtJTAyeCBcbiIsCiAgICAgICAgICAgIGNwdV9udW0sIHVjaS0+Y3B1X3Np Zy5yZXYsIHZhbFsxXSwKLSAgICAgICAgICAgdWNpLT5tYy5tY19pbnRlbC0+aGRyLmRhdGUgJiAw eGZmZmYsCi0gICAgICAgICAgIHVjaS0+bWMubWNfaW50ZWwtPmhkci5kYXRlID4+IDI0LAotICAg ICAgICAgICAodWNpLT5tYy5tY19pbnRlbC0+aGRyLmRhdGUgPj4gMTYpICYgMHhmZik7CisgICAg ICAgICAgIG1jX2ludGVsLT5oZHIuZGF0ZSAmIDB4ZmZmZiwKKyAgICAgICAgICAgbWNfaW50ZWwt Pmhkci5kYXRlID4+IDI0LAorICAgICAgICAgICAobWNfaW50ZWwtPmhkci5kYXRlID4+IDE2KSAm IDB4ZmYpOwogICAgIHVjaS0+Y3B1X3NpZy5yZXYgPSB2YWxbMV07CiAKICAgICByZXR1cm4gMDsK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbWljcm9jb2RlLmggYi94ZW4vaW5jbHVk ZS9hc20teDg2L21pY3JvY29kZS5oCmluZGV4IDIzZWE5NTQuLjAyMzY0MjUgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL2FzbS14ODYvbWljcm9jb2RlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4 Ni9taWNyb2NvZGUuaApAQCAtMSw2ICsxLDcgQEAKICNpZm5kZWYgQVNNX1g4Nl9fTUlDUk9DT0RF X0gKICNkZWZpbmUgQVNNX1g4Nl9fTUlDUk9DT0RFX0gKIAorI2luY2x1ZGUgPHhlbi9saXN0Lmg+ CiAjaW5jbHVkZSA8eGVuL3BlcmNwdS5oPgogCiBzdHJ1Y3QgY3B1X3NpZ25hdHVyZTsKQEAgLTMw LDcgKzMxLDE3IEBAIHN0cnVjdCB1Y29kZV9jcHVfaW5mbyB7CiAgICAgfSBtYzsKIH07CiAKK3N0 cnVjdCB1Y29kZV9wYXRjaCB7CisgICAgc3RydWN0IGxpc3RfaGVhZCBsaXN0OworICAgIHZvaWQg KmRhdGE7CisgICAgdWludDMyX3QgcGF0Y2hfaWQ7CisgICAgdWludDE2X3QgZXF1aXZfY3B1Owor ICAgIHZvaWQgKiBlcXVpdl9jcHVfdGFibGU7CisgICAgc2l6ZV90IGVxdWl2X2NwdV90YWJsZV9z aXplOworfTsKKwogREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCB1Y29kZV9jcHVfaW5mbywgdWNvZGVf Y3B1X2luZm8pOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfb3BzICptaWNyb2NvZGVf b3BzOworZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgbWljcm9jb2RlX2NhY2hlOwogCiAjZW5kaWYg LyogQVNNX1g4Nl9fTUlDUk9DT0RFX0ggKi8KLS0gCjEuOC4zLjEKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs