From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v7 03/10] microcode: introduce a global cache of ucode patch Date: Mon, 27 May 2019 16:31:24 +0800 Message-ID: <1558945891-3015-4-git-send-email-chao.gao@intel.com> References: <1558945891-3015-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 1hVAyi-0004Ai-BZ for xen-devel@lists.xenproject.org; Mon, 27 May 2019 08:27:32 +0000 In-Reply-To: <1558945891-3015-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: Sergey Dyasli , Ashok Raj , Wei Liu , Andrew Cooper , Jan Beulich , Chao Gao , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org dG8gcmVwbGFjZSB0aGUgY3VycmVudCBwZXItY3B1IGNhY2hlICd1Y2ktPm1jJy4KCldpdGggdGhl IGFzc3VtcHRpb24gdGhhdCBhbGwgQ1BVcyBpbiB0aGUgc3lzdGVtIGhhdmUgdGhlIHNhbWUgc2ln bmF0dXJlCihmYW1pbHksIG1vZGVsLCBzdGVwcGluZyBhbmQgJ3BmJyksIG9uZSBtaWNyb2NvZGUg dXBkYXRlIG1hdGNoZXMgd2l0aApvbmUgY3B1IHNob3VsZCBtYXRjaCB3aXRoIG90aGVycy4gQW5k IEhhdmluZyBtdWx0aXBsZSBtaWNyb2NvZGUgcmV2aXNpb25zCm9uIGRpZmZlcmVudCBjcHVzIHdv dWxkIGNhdXNlIHN5c3RlbSB1bnN0YWJsZSBhbmQgaXMgd2hhdCBzaG91bGQgYmUKYXZvaWRlZC4g SGVuY2UsIGNhY2hpbmcgb25seSBvbmUgbWljcm9jb2RlIHVwZGF0ZSBpcyBnb29kIGVub3VnaCBm b3IgYWxsCmNhc2VzLgoKSW50cm9kdWNlIGEgZ2xvYmFsIHZhcmlhYmxlLCBtaWNyb2NvZGVfY2Fj aGUsIHRvIHN0b3JlIHRoZSBuZXdlc3QKbWF0Y2hpbmcgbWljcm9jb2RlIHVwZGF0ZS4gV2hlbmV2 ZXIgd2UgZ2V0IGEgbmV3IHZhbGlkIG1pY3JvY29kZSB1cGRhdGUsCml0cyByZXZpc2lvbiBpZCBp cyBjb21wYXJlZCBhZ2FpbnN0IHRoYXQgb2YgdGhlIG1pY3JvY29kZSB1cGRhdGUgdG8KZGV0ZXJt aW5lIHdoZXRoZXIgdGhlICJtaWNyb2NvZGVfY2FjaGUiIG5lZWRzIHRvIGJlIHJlcGxhY2VkLiBB bmQgbm93CnRoaXMgZ2xvYmFsIGNhY2hlIGlzIGxvYWRlZCB0byBjcHUgaW4gYXBwbHlfbWljcm9j b2RlKCkuCgpBbGwgb3BlcmF0aW9ucyBvbiB0aGUgY2FjaGUgaXMgZXhwZWN0ZWQgdG8gYmUgZG9u ZSB3aXRoIHRoZQonbWljcm9jb2RlX211dGV4JyBob2xkLgoKTm90ZSB0aGF0IEkgZGVsaWJlcmF0 ZWx5IGF2b2lkIHRvdWNoaW5nICd1Y2ktPm1jJyBhcyBJIGFtIGdvaW5nIHRvCnJlbW92ZSBpdCBj b21wbGV0ZWx5IGluIHRoZSBuZXh0IHBhdGNoLgoKU2lnbmVkLW9mZi1ieTogQ2hhbyBHYW8gPGNo YW8uZ2FvQGludGVsLmNvbT4KLS0tCkNoYW5nZXMgaW4gdjc6CiAtIHJld29ya2VkIHRvIGNhY2hl IG9ubHkgb25lIG1pY3JvY29kZSBwYXRjaCByYXRoZXIgdGhhbiBhIGxpc3Qgb2YKIG1pY3JvY29k ZSBwYXRjaGVzLgoKQ2hhbmdlcyBpbiB2NjoKIC0gY29uc3RpZnkgbG9jYWwgdmFyaWFibGVzIGFu ZCBmdW5jdGlvbiBwYXJhbWV0ZXJzIGlmIHBvc3NpYmxlCiAtIGNvbW1lbnQgdGhhdCB0aGUgZ2xv YmFsIGNhY2hlIGlzIHByb3RlY3RlZCBieSAnbWljcm9jb2RlX211dGV4Jy4KICAgYW5kIGFkZCBh c3NlcnRpb25zIHRvIGNhdGNoIHZpb2xhdGlvbnMgaW4gbWljcm9jb2RlX3tzYXZlL2ZpbmR9X3Bh dGNoKCkKCkNoYW5nZXMgaW4gdjU6CiAtIHJld29yZCB0aGUgY29tbWl0IGRlc2NyaXB0aW9uCiAt IGZpbmRfcGF0Y2goKSBhbmQgc2F2ZV9wYXRjaCgpIGFyZSBhYnN0cmFjdGVkIGludG8gY29tbW9u IGZ1bmN0aW9ucwogICB3aXRoIHNvbWUgaG9va3MgZm9yIEFNRCBhbmQgSW50ZWwKLS0tCiB4ZW4v YXJjaC94ODYvbWljcm9jb2RlLmMgICAgICAgIHwgMzYgKysrKysrKysrKysrKysrKwogeGVuL2Fy Y2gveDg2L21pY3JvY29kZV9hbWQuYyAgICB8IDkxICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tCiB4ZW4vYXJjaC94ODYvbWljcm9jb2RlX2ludGVsLmMgIHwgNzcgKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9taWNy b2NvZGUuaCB8IDE1ICsrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTk3IGluc2VydGlvbnMoKyks IDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYyBi L3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYwppbmRleCA0MTYzZjUwLi5jZmY4NmE5IDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMKKysrIGIveGVuL2FyY2gveDg2L21pY3JvY29k ZS5jCkBAIC02MSw2ICs2MSw5IEBAIHN0YXRpYyBzdHJ1Y3QgdWNvZGVfbW9kX2Jsb2IgX19pbml0 ZGF0YSB1Y29kZV9ibG9iOwogICovCiBzdGF0aWMgYm9vbF90IF9faW5pdGRhdGEgdWNvZGVfc2Nh bjsKIAorLyogUHJvdGVjdGVkIGJ5IG1pY3JvY29kZV9tdXRleCAqLworc3RhdGljIHN0cnVjdCBt aWNyb2NvZGVfcGF0Y2ggKm1pY3JvY29kZV9jYWNoZTsKKwogdm9pZCBfX2luaXQgbWljcm9jb2Rl X3NldF9tb2R1bGUodW5zaWduZWQgaW50IGlkeCkKIHsKICAgICB1Y29kZV9tb2RfaWR4ID0gaWR4 OwpAQCAtMjYyLDYgKzI2NSwzOSBAQCBpbnQgbWljcm9jb2RlX3Jlc3VtZV9jcHUodW5zaWduZWQg aW50IGNwdSkKICAgICByZXR1cm4gZXJyOwogfQogCitjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3Bh dGNoICptaWNyb2NvZGVfZ2V0X2NhY2hlKHZvaWQpCit7CisgICAgQVNTRVJUKHNwaW5faXNfbG9j a2VkKCZtaWNyb2NvZGVfbXV0ZXgpKTsKKworICAgIHJldHVybiBtaWNyb2NvZGVfY2FjaGU7Cit9 CisKKy8qIFJldHVybiB0cnVlIGlmIGNhY2hlIGdldHMgdXBkYXRlZC4gT3RoZXJ3aXNlLCByZXR1 cm4gZmFsc2UgKi8KK2Jvb2wgbWljcm9jb2RlX3VwZGF0ZV9jYWNoZShzdHJ1Y3QgbWljcm9jb2Rl X3BhdGNoICpwYXRjaCkKK3sKKworICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmbWljcm9jb2Rl X211dGV4KSk7CisKKyAgICBpZiAoICFtaWNyb2NvZGVfb3BzLT5tYXRjaF9jcHUocGF0Y2gpICkK KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCAhbWljcm9jb2RlX2NhY2hlICkKKyAg ICAgICAgbWljcm9jb2RlX2NhY2hlID0gcGF0Y2g7CisgICAgZWxzZSBpZiAoIG1pY3JvY29kZV9v cHMtPmNvbXBhcmVfcGF0Y2gocGF0Y2gsIG1pY3JvY29kZV9jYWNoZSkgPT0KKyAgICAgICAgICAg ICAgICAgIE5FV19VQ09ERSApCisgICAgeworICAgICAgICBtaWNyb2NvZGVfb3BzLT5mcmVlX3Bh dGNoKG1pY3JvY29kZV9jYWNoZSk7CisgICAgICAgIG1pY3JvY29kZV9jYWNoZSA9IHBhdGNoOwor ICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBtaWNyb2NvZGVfb3BzLT5mcmVlX3BhdGNo KHBhdGNoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVl OworfQorCiBzdGF0aWMgaW50IG1pY3JvY29kZV91cGRhdGVfY3B1KGNvbnN0IHZvaWQgKmJ1Ziwg c2l6ZV90IHNpemUpCiB7CiAgICAgaW50IGVycjsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9t aWNyb2NvZGVfYW1kLmMgYi94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2FtZC5jCmluZGV4IDdhODU0 YzAuLjFmMDU4OTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfYW1kLmMKKysr IGIveGVuL2FyY2gveDg2L21pY3JvY29kZV9hbWQuYwpAQCAtMTkwLDI0ICsxOTAsODUgQEAgc3Rh dGljIGJvb2xfdCBtaWNyb2NvZGVfZml0cyhjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAqbWNf YW1kLAogICAgIHJldHVybiAxOwogfQogCitzdGF0aWMgYm9vbCBtYXRjaF9jcHUoY29uc3Qgc3Ry dWN0IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2gpCit7CisgICAgaWYgKCAhcGF0Y2ggKQorICAgICAg ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1pY3JvY29kZV9maXRzKHBhdGNoLT5tY19hbWQs IHNtcF9wcm9jZXNzb3JfaWQoKSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNo ICphbGxvY19taWNyb2NvZGVfcGF0Y2goCisgICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9hbWQg Km1jX2FtZCkKK3sKKyAgICBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICptaWNyb2NvZGVfcGF0Y2gg PSB4bWFsbG9jKHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2gpOworICAgIHN0cnVjdCBtaWNyb2NvZGVf YW1kICpjYWNoZSA9IHhtYWxsb2Moc3RydWN0IG1pY3JvY29kZV9hbWQpOworICAgIHZvaWQgKm1w YiA9IHhtYWxsb2NfYnl0ZXMobWNfYW1kLT5tcGJfc2l6ZSk7CisgICAgc3RydWN0IGVxdWl2X2Nw dV9lbnRyeSAqZXF1aXZfY3B1X3RhYmxlID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgeG1hbGxvY19ieXRlcyhtY19hbWQtPmVxdWl2X2NwdV90YWJsZV9zaXplKTsKKworICAgIGlm ICggIW1pY3JvY29kZV9wYXRjaCB8fCAhY2FjaGUgfHwgIW1wYiB8fCAhZXF1aXZfY3B1X3RhYmxl ICkKKyAgICB7CisgICAgICAgIHhmcmVlKG1pY3JvY29kZV9wYXRjaCk7CisgICAgICAgIHhmcmVl KGNhY2hlKTsKKyAgICAgICAgeGZyZWUobXBiKTsKKyAgICAgICAgeGZyZWUoZXF1aXZfY3B1X3Rh YmxlKTsKKyAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgIm1pY3JvY29kZTogQ2FuIG5vdCBhbGxv Y2F0ZSBtZW1vcnlcbiIpOworICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKyAgICB9 CisKKyAgICBjYWNoZS0+ZXF1aXZfY3B1X3RhYmxlID0gZXF1aXZfY3B1X3RhYmxlOworICAgIGNh Y2hlLT5tcGIgPSBtcGI7CisgICAgbWVtY3B5KGNhY2hlLT5lcXVpdl9jcHVfdGFibGUsIG1jX2Ft ZC0+ZXF1aXZfY3B1X3RhYmxlLAorICAgICAgICAgICBtY19hbWQtPmVxdWl2X2NwdV90YWJsZV9z aXplKTsKKyAgICBtZW1jcHkoY2FjaGUtPm1wYiwgbWNfYW1kLT5tcGIsIG1jX2FtZC0+bXBiX3Np emUpOworICAgIGNhY2hlLT5lcXVpdl9jcHVfdGFibGVfc2l6ZSA9IG1jX2FtZC0+ZXF1aXZfY3B1 X3RhYmxlX3NpemU7CisgICAgY2FjaGUtPm1wYl9zaXplID0gbWNfYW1kLT5tcGJfc2l6ZTsKKyAg ICBtaWNyb2NvZGVfcGF0Y2gtPm1jX2FtZCA9IGNhY2hlOworCisgICAgcmV0dXJuIG1pY3JvY29k ZV9wYXRjaDsKK30KKworc3RhdGljIHZvaWQgZnJlZV9wYXRjaChzdHJ1Y3QgbWljcm9jb2RlX3Bh dGNoICptaWNyb2NvZGVfcGF0Y2gpCit7CisgICAgc3RydWN0IG1pY3JvY29kZV9hbWQgKm1jX2Ft ZCA9IG1pY3JvY29kZV9wYXRjaC0+bWNfYW1kOworCisgICAgeGZyZWUobWNfYW1kLT5lcXVpdl9j cHVfdGFibGUpOworICAgIHhmcmVlKG1jX2FtZC0+bXBiKTsKKyAgICB4ZnJlZShtY19hbWQpOwor ICAgIHhmcmVlKG1pY3JvY29kZV9wYXRjaCk7Cit9CisKK3N0YXRpYyBlbnVtIG1pY3JvY29kZV9t YXRjaF9yZXN1bHQgY29tcGFyZV9wYXRjaCgKKyAgICBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3Bh dGNoICpuZXcsIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm9sZCkKK3sKKyAgICBjb25z dCBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAqbmV3X21jID0gbmV3LT5tY19hbWQ7CisgICAgY29uc3Qg c3RydWN0IG1pY3JvY29kZV9oZWFkZXJfYW1kICpuZXdfaGVhZGVyID0gbmV3X21jLT5tcGI7Cisg ICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9hbWQgKm9sZF9tYyA9IG9sZC0+bWNfYW1kOworICAg IGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfaGVhZGVyX2FtZCAqb2xkX2hlYWRlciA9IG9sZF9tYy0+ bXBiOworCisgICAgaWYgKCBuZXdfaGVhZGVyLT5wcm9jZXNzb3JfcmV2X2lkID09IG9sZF9oZWFk ZXItPnByb2Nlc3Nvcl9yZXZfaWQgKQorICAgICAgICByZXR1cm4gKG5ld19oZWFkZXItPnBhdGNo X2lkID4gb2xkX2hlYWRlci0+cGF0Y2hfaWQpID8KKyAgICAgICAgICAgICAgICBORVdfVUNPREUg OiBPTERfVUNPREU7CisKKyAgICByZXR1cm4gTUlTX1VDT0RFOworfQorCiBzdGF0aWMgaW50IGFw cGx5X21pY3JvY29kZSh1bnNpZ25lZCBpbnQgY3B1KQogewogICAgIHVuc2lnbmVkIGxvbmcgZmxh Z3M7CiAgICAgc3RydWN0IHVjb2RlX2NwdV9pbmZvICp1Y2kgPSAmcGVyX2NwdSh1Y29kZV9jcHVf aW5mbywgY3B1KTsKICAgICB1aW50MzJfdCByZXY7Ci0gICAgc3RydWN0IG1pY3JvY29kZV9hbWQg Km1jX2FtZCA9IHVjaS0+bWMubWNfYW1kOwotICAgIHN0cnVjdCBtaWNyb2NvZGVfaGVhZGVyX2Ft ZCAqaGRyOwogICAgIGludCBod19lcnI7CisgICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9oZWFk ZXJfYW1kICpoZHI7CisgICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2ggPSBt aWNyb2NvZGVfZ2V0X2NhY2hlKCk7CiAKICAgICAvKiBXZSBzaG91bGQgYmluZCB0aGUgdGFzayB0 byB0aGUgQ1BVICovCiAgICAgQlVHX09OKHJhd19zbXBfcHJvY2Vzc29yX2lkKCkgIT0gY3B1KTsK IAotICAgIGlmICggbWNfYW1kID09IE5VTEwgKQorICAgIGlmICggIW1hdGNoX2NwdShwYXRjaCkg KQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgIGhkciA9IG1jX2FtZC0+bXBiOwotICAg IGlmICggaGRyID09IE5VTEwgKQotICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICBoZHIgPSBw YXRjaC0+bWNfYW1kLT5tcGI7CiAKICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmbWljcm9jb2RlX3Vw ZGF0ZV9sb2NrLCBmbGFncyk7CiAKQEAgLTQ5Nyw3ICs1NTgsMjAgQEAgc3RhdGljIGludCBjcHVf cmVxdWVzdF9taWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSwgY29uc3Qgdm9pZCAqYnVmLAogICAg IHdoaWxlICggKGVycm9yID0gZ2V0X3Vjb2RlX2Zyb21fYnVmZmVyX2FtZChtY19hbWQsIGJ1Ziwg YnVmc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Jm9mZnNldCkpID09IDAgKQogICAgIHsKLSAgICAgICAgaWYgKCBtaWNyb2NvZGVfZml0cyhtY19h bWQsIGNwdSkgKQorICAgICAgICBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpuZXdfcGF0Y2ggPSBh bGxvY19taWNyb2NvZGVfcGF0Y2gobWNfYW1kKTsKKworICAgICAgICBpZiAoIElTX0VSUihuZXdf cGF0Y2gpICkKKyAgICAgICAgeworICAgICAgICAgICAgZXJyb3IgPSBQVFJfRVJSKG5ld19wYXRj aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmICggbWF0Y2hf Y3B1KG5ld19wYXRjaCkgKQorICAgICAgICAgICAgbWljcm9jb2RlX3VwZGF0ZV9jYWNoZShuZXdf cGF0Y2gpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmcmVlX3BhdGNoKG5ld19wYXRjaCk7 CisKKyAgICAgICAgaWYgKCBtYXRjaF9jcHUobWljcm9jb2RlX2dldF9jYWNoZSgpKSApCiAgICAg ICAgIHsKICAgICAgICAgICAgIGVycm9yID0gYXBwbHlfbWljcm9jb2RlKGNwdSk7CiAgICAgICAg ICAgICBpZiAoIGVycm9yICkKQEAgLTYzOSw2ICs3MTMsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IG1pY3JvY29kZV9vcHMgbWljcm9jb2RlX2FtZF9vcHMgPSB7CiAgICAgLmNvbGxlY3RfY3B1X2lu Zm8gICAgICAgICAgICAgICAgID0gY29sbGVjdF9jcHVfaW5mbywKICAgICAuYXBwbHlfbWljcm9j b2RlICAgICAgICAgICAgICAgICAgPSBhcHBseV9taWNyb2NvZGUsCiAgICAgLnN0YXJ0X3VwZGF0 ZSAgICAgICAgICAgICAgICAgICAgID0gc3RhcnRfdXBkYXRlLAorICAgIC5mcmVlX3BhdGNoICAg ICAgICAgICAgICAgICAgICAgICA9IGZyZWVfcGF0Y2gsCisgICAgLmNvbXBhcmVfcGF0Y2ggICAg ICAgICAgICAgICAgICAgID0gY29tcGFyZV9wYXRjaCwKKyAgICAubWF0Y2hfY3B1ICAgICAgICAg ICAgICAgICAgICAgICAgPSBtYXRjaF9jcHUsCiB9OwogCiBpbnQgX19pbml0IG1pY3JvY29kZV9p bml0X2FtZCh2b2lkKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21pY3JvY29kZV9pbnRlbC5j IGIveGVuL2FyY2gveDg2L21pY3JvY29kZV9pbnRlbC5jCmluZGV4IGVjZWM4M2IuLmQzNDA1YTAg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfaW50ZWwuYworKysgYi94ZW4vYXJj aC94ODYvbWljcm9jb2RlX2ludGVsLmMKQEAgLTI0OCw2ICsyNDgsMzIgQEAgc3RhdGljIGludCBt aWNyb2NvZGVfc2FuaXR5X2NoZWNrKHZvaWQgKm1jKQogICAgIHJldHVybiAwOwogfQogCitzdGF0 aWMgYm9vbCBtYXRjaF9jcHUoY29uc3Qgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2gpCit7 CisgICAgY29uc3Qgc3RydWN0IHVjb2RlX2NwdV9pbmZvICp1Y2kgPSAmdGhpc19jcHUodWNvZGVf Y3B1X2luZm8pOworCisgICAgaWYgKCAhcGF0Y2ggKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK KyAgICByZXR1cm4gbWljcm9jb2RlX3VwZGF0ZV9tYXRjaCgmcGF0Y2gtPm1jX2ludGVsLT5oZHIs IHVjaS0+Y3B1X3NpZy5zaWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVjaS0+ Y3B1X3NpZy5wZiwgdWNpLT5jcHVfc2lnLnJldikgPT0gTkVXX1VDT0RFOworfQorCitzdGF0aWMg dm9pZCBmcmVlX3BhdGNoKHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKnBhdGNoKQoreworICAgIHhm cmVlKHBhdGNoLT5tY19pbnRlbCk7CisgICAgeGZyZWUocGF0Y2gpOworfQorCitzdGF0aWMgZW51 bSBtaWNyb2NvZGVfbWF0Y2hfcmVzdWx0IGNvbXBhcmVfcGF0Y2goCisgICAgY29uc3Qgc3RydWN0 IG1pY3JvY29kZV9wYXRjaCAqbmV3LCBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpvbGQp Cit7CisgICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9oZWFkZXJfaW50ZWwgKm9sZF9oZWFkZXIg PSAmb2xkLT5tY19pbnRlbC0+aGRyOworCisgICAgcmV0dXJuIG1pY3JvY29kZV91cGRhdGVfbWF0 Y2goJm5ldy0+bWNfaW50ZWwtPmhkciwgb2xkX2hlYWRlci0+c2lnLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9sZF9oZWFkZXItPnBmLCBvbGRfaGVhZGVyLT5yZXYpOworfQor CiAvKgogICogcmV0dXJuIDAgLSBubyB1cGRhdGUgZm91bmQKICAqIHJldHVybiAxIC0gZm91bmQg dXBkYXRlCkBAIC0yNTgsMTAgKzI4NCwyNiBAQCBzdGF0aWMgaW50IGdldF9tYXRjaGluZ19taWNy b2NvZGUoY29uc3Qgdm9pZCAqbWMsIHVuc2lnbmVkIGludCBjcHUpCiAgICAgc3RydWN0IHVjb2Rl X2NwdV9pbmZvICp1Y2kgPSAmcGVyX2NwdSh1Y29kZV9jcHVfaW5mbywgY3B1KTsKICAgICBjb25z dCBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9pbnRlbCAqbWNfaGVhZGVyID0gbWM7CiAgICAgdW5z aWduZWQgbG9uZyB0b3RhbF9zaXplID0gZ2V0X3RvdGFsc2l6ZShtY19oZWFkZXIpOwotICAgIHZv aWQgKm5ld19tYzsKKyAgICB2b2lkICpuZXdfbWMgPSB4bWFsbG9jX2J5dGVzKHRvdGFsX3NpemUp OworICAgIHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm5ld19wYXRjaCA9IHhtYWxsb2Moc3RydWN0 IG1pY3JvY29kZV9wYXRjaCk7CisKKyAgICBpZiAoICFuZXdfcGF0Y2ggfHwgIW5ld19tYyApCisg ICAgeworICAgICAgICB4ZnJlZShuZXdfcGF0Y2gpOworICAgICAgICB4ZnJlZShuZXdfbWMpOwor ICAgICAgICBwcmludGsoWEVOTE9HX0VSUiAibWljcm9jb2RlOiBDYW4gbm90IGFsbG9jYXRlIG1l bW9yeVxuIik7CisgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgIH0KKyAgICBtZW1jcHkobmV3 X21jLCBtYywgdG90YWxfc2l6ZSk7CisgICAgbmV3X3BhdGNoLT5tY19pbnRlbCA9IG5ld19tYzsK IAotICAgIGlmICggbWljcm9jb2RlX3VwZGF0ZV9tYXRjaChtYywgdWNpLT5jcHVfc2lnLnNpZywg dWNpLT5jcHVfc2lnLnBmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Y2ktPmNw dV9zaWcucmV2KSAhPSBORVdfVUNPREUgKQorICAgIGlmICggIW1hdGNoX2NwdShuZXdfcGF0Y2gp ICkKKyAgICB7CisgICAgICAgIGZyZWVfcGF0Y2gobmV3X3BhdGNoKTsKKyAgICAgICAgcmV0dXJu IDA7CisgICAgfQorCisgICAgaWYgKCAhbWljcm9jb2RlX3VwZGF0ZV9jYWNoZShuZXdfcGF0Y2gp ICkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBwcl9kZWJ1ZygibWljcm9jb2RlOiBDUFUlZCBm b3VuZCBhIG1hdGNoaW5nIG1pY3JvY29kZSB1cGRhdGUgd2l0aCIKQEAgLTI3Nyw2ICszMTksNyBA QCBzdGF0aWMgaW50IGdldF9tYXRjaGluZ19taWNyb2NvZGUoY29uc3Qgdm9pZCAqbWMsIHVuc2ln bmVkIGludCBjcHUpCiAgICAgbWVtY3B5KG5ld19tYywgbWMsIHRvdGFsX3NpemUpOwogICAgIHhm cmVlKHVjaS0+bWMubWNfaW50ZWwpOwogICAgIHVjaS0+bWMubWNfaW50ZWwgPSBuZXdfbWM7CisK ICAgICByZXR1cm4gMTsKIH0KIApAQCAtMjg3LDE4ICszMzAsMjIgQEAgc3RhdGljIGludCBhcHBs eV9taWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSkKICAgICB1bnNpZ25lZCBpbnQgdmFsWzJdOwog ICAgIHVuc2lnbmVkIGludCBjcHVfbnVtID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKICAgICBz dHJ1Y3QgdWNvZGVfY3B1X2luZm8gKnVjaSA9ICZwZXJfY3B1KHVjb2RlX2NwdV9pbmZvLCBjcHVf bnVtKTsKKyAgICBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX2ludGVsICptY19pbnRlbDsKKyAgICBj b25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpwYXRjaCA9IG1pY3JvY29kZV9nZXRfY2FjaGUo KTsKIAogICAgIC8qIFdlIHNob3VsZCBiaW5kIHRoZSB0YXNrIHRvIHRoZSBDUFUgKi8KICAgICBC VUdfT04oY3B1X251bSAhPSBjcHUpOwogCi0gICAgaWYgKCB1Y2ktPm1jLm1jX2ludGVsID09IE5V TEwgKQorICAgIGlmICggIW1hdGNoX2NwdShwYXRjaCkgKQogICAgICAgICByZXR1cm4gLUVJTlZB TDsKIAorICAgIG1jX2ludGVsID0gcGF0Y2gtPm1jX2ludGVsOworCiAgICAgLyogc2VyaWFsaXpl IGFjY2VzcyB0byB0aGUgcGh5c2ljYWwgd3JpdGUgdG8gTVNSIDB4NzkgKi8KICAgICBzcGluX2xv Y2tfaXJxc2F2ZSgmbWljcm9jb2RlX3VwZGF0ZV9sb2NrLCBmbGFncyk7CiAKICAgICAvKiB3cml0 ZSBtaWNyb2NvZGUgdmlhIE1TUiAweDc5ICovCi0gICAgd3Jtc3JsKE1TUl9JQTMyX1VDT0RFX1dS SVRFLCAodW5zaWduZWQgbG9uZyl1Y2ktPm1jLm1jX2ludGVsLT5iaXRzKTsKKyAgICB3cm1zcmwo TVNSX0lBMzJfVUNPREVfV1JJVEUsICh1bnNpZ25lZCBsb25nKW1jX2ludGVsLT5iaXRzKTsKICAg ICB3cm1zcmwoTVNSX0lBMzJfVUNPREVfUkVWLCAweDBVTEwpOwogCiAgICAgLyogQXMgZG9jdW1l bnRlZCBpbiB0aGUgU0RNOiBEbyBhIENQVUlEIDEgaGVyZSAqLwpAQCAtMzA5LDE5ICszNTYsMTkg QEAgc3RhdGljIGludCBhcHBseV9taWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSkKICAgICB2YWxb MV0gPSAodWludDMyX3QpKG1zcl9jb250ZW50ID4+IDMyKTsKIAogICAgIHNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJm1pY3JvY29kZV91cGRhdGVfbG9jaywgZmxhZ3MpOwotICAgIGlmICggdmFsWzFd ICE9IHVjaS0+bWMubWNfaW50ZWwtPmhkci5yZXYgKQorICAgIGlmICggdmFsWzFdICE9IG1jX2lu dGVsLT5oZHIucmV2ICkKICAgICB7CiAgICAgICAgIHByaW50ayhLRVJOX0VSUiAibWljcm9jb2Rl OiBDUFUlZCB1cGRhdGUgZnJvbSByZXZpc2lvbiAiCiAgICAgICAgICAgICAgICAiJSN4IHRvICUj eCBmYWlsZWQuIFJlc3VsdGluZyByZXZpc2lvbiBpcyAlI3guXG4iLCBjcHVfbnVtLAotICAgICAg ICAgICAgICAgdWNpLT5jcHVfc2lnLnJldiwgdWNpLT5tYy5tY19pbnRlbC0+aGRyLnJldiwgdmFs WzFdKTsKKyAgICAgICAgICAgICAgIHVjaS0+Y3B1X3NpZy5yZXYsIG1jX2ludGVsLT5oZHIucmV2 LCB2YWxbMV0pOwogICAgICAgICByZXR1cm4gLUVJTzsKICAgICB9CiAgICAgcHJpbnRrKEtFUk5f SU5GTyAibWljcm9jb2RlOiBDUFUlZCB1cGRhdGVkIGZyb20gcmV2aXNpb24gIgogICAgICAgICAg ICAiJSN4IHRvICUjeCwgZGF0ZSA9ICUwNHgtJTAyeC0lMDJ4IFxuIiwKICAgICAgICAgICAgY3B1 X251bSwgdWNpLT5jcHVfc2lnLnJldiwgdmFsWzFdLAotICAgICAgICAgICB1Y2ktPm1jLm1jX2lu dGVsLT5oZHIueWVhciwKLSAgICAgICAgICAgdWNpLT5tYy5tY19pbnRlbC0+aGRyLm1vbnRoLAot ICAgICAgICAgICB1Y2ktPm1jLm1jX2ludGVsLT5oZHIuZGF5KTsKKyAgICAgICAgICAgbWNfaW50 ZWwtPmhkci55ZWFyLAorICAgICAgICAgICBtY19pbnRlbC0+aGRyLm1vbnRoLAorICAgICAgICAg ICBtY19pbnRlbC0+aGRyLmRheSk7CiAgICAgdWNpLT5jcHVfc2lnLnJldiA9IHZhbFsxXTsKIAog ICAgIHJldHVybiAwOwpAQCAtMzYxLDcgKzQwOCw2IEBAIHN0YXRpYyBpbnQgY3B1X3JlcXVlc3Rf bWljcm9jb2RlKHVuc2lnbmVkIGludCBjcHUsIGNvbnN0IHZvaWQgKmJ1ZiwKICAgICBsb25nIG9m ZnNldCA9IDA7CiAgICAgaW50IGVycm9yID0gMDsKICAgICB2b2lkICptYzsKLSAgICB1bnNpZ25l ZCBpbnQgbWF0Y2hpbmdfY291bnQgPSAwOwogCiAgICAgLyogV2Ugc2hvdWxkIGJpbmQgdGhlIHRh c2sgdG8gdGhlIENQVSAqLwogICAgIEJVR19PTihjcHUgIT0gcmF3X3NtcF9wcm9jZXNzb3JfaWQo KSk7CkBAIC0zNzksMTAgKzQyNSw4IEBAIHN0YXRpYyBpbnQgY3B1X3JlcXVlc3RfbWljcm9jb2Rl KHVuc2lnbmVkIGludCBjcHUsIGNvbnN0IHZvaWQgKmJ1ZiwKICAgICAgICAgICogbGV0cyBrZWVw IHNlYXJjaGluZyB0aWxsIHRoZSBsYXRlc3QgdmVyc2lvbgogICAgICAgICAgKi8KICAgICAgICAg aWYgKCBlcnJvciA9PSAxICkKLSAgICAgICAgewotICAgICAgICAgICAgbWF0Y2hpbmdfY291bnQr KzsKICAgICAgICAgICAgIGVycm9yID0gMDsKLSAgICAgICAgfQorCiAgICAgICAgIHhmcmVlKG1j KTsKICAgICB9CiAgICAgaWYgKCBvZmZzZXQgPiAwICkKQEAgLTM5MCw3ICs0MzQsNyBAQCBzdGF0 aWMgaW50IGNwdV9yZXF1ZXN0X21pY3JvY29kZSh1bnNpZ25lZCBpbnQgY3B1LCBjb25zdCB2b2lk ICpidWYsCiAgICAgaWYgKCBvZmZzZXQgPCAwICkKICAgICAgICAgZXJyb3IgPSBvZmZzZXQ7CiAK LSAgICBpZiAoICFlcnJvciAmJiBtYXRjaGluZ19jb3VudCApCisgICAgaWYgKCAhZXJyb3IgJiYg bWF0Y2hfY3B1KG1pY3JvY29kZV9nZXRfY2FjaGUoKSkgKQogICAgICAgICBlcnJvciA9IGFwcGx5 X21pY3JvY29kZShjcHUpOwogCiAgICAgcmV0dXJuIGVycm9yOwpAQCAtNDA2LDYgKzQ1MCw5IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX29wcyBtaWNyb2NvZGVfaW50ZWxfb3BzID0g ewogICAgIC5jcHVfcmVxdWVzdF9taWNyb2NvZGUgICAgICAgICAgICA9IGNwdV9yZXF1ZXN0X21p Y3JvY29kZSwKICAgICAuY29sbGVjdF9jcHVfaW5mbyAgICAgICAgICAgICAgICAgPSBjb2xsZWN0 X2NwdV9pbmZvLAogICAgIC5hcHBseV9taWNyb2NvZGUgICAgICAgICAgICAgICAgICA9IGFwcGx5 X21pY3JvY29kZSwKKyAgICAuZnJlZV9wYXRjaCAgICAgICAgICAgICAgICAgICAgICAgPSBmcmVl X3BhdGNoLAorICAgIC5jb21wYXJlX3BhdGNoICAgICAgICAgICAgICAgICAgICA9IGNvbXBhcmVf cGF0Y2gsCisgICAgLm1hdGNoX2NwdSAgICAgICAgICAgICAgICAgICAgICAgID0gbWF0Y2hfY3B1 LAogfTsKIAogaW50IF9faW5pdCBtaWNyb2NvZGVfaW5pdF9pbnRlbCh2b2lkKQpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9taWNyb2NvZGUuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYv bWljcm9jb2RlLmgKaW5kZXggNzNlYmU5YS4uNjU0MWM1OCAxMDA2NDQKLS0tIGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9taWNyb2NvZGUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L21pY3JvY29k ZS5oCkBAIC0xMiw2ICsxMiwxMyBAQCBlbnVtIG1pY3JvY29kZV9tYXRjaF9yZXN1bHQgewogc3Ry dWN0IGNwdV9zaWduYXR1cmU7CiBzdHJ1Y3QgdWNvZGVfY3B1X2luZm87CiAKK3N0cnVjdCBtaWNy b2NvZGVfcGF0Y2ggeworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IG1pY3JvY29kZV9pbnRl bCAqbWNfaW50ZWw7CisgICAgICAgIHN0cnVjdCBtaWNyb2NvZGVfYW1kICptY19hbWQ7CisgICAg fTsKK307CisKIHN0cnVjdCBtaWNyb2NvZGVfb3BzIHsKICAgICBpbnQgKCptaWNyb2NvZGVfcmVz dW1lX21hdGNoKSh1bnNpZ25lZCBpbnQgY3B1LCBjb25zdCB2b2lkICptYyk7CiAgICAgaW50ICgq Y3B1X3JlcXVlc3RfbWljcm9jb2RlKSh1bnNpZ25lZCBpbnQgY3B1LCBjb25zdCB2b2lkICpidWYs CkBAIC0xOSw2ICsyNiwxMSBAQCBzdHJ1Y3QgbWljcm9jb2RlX29wcyB7CiAgICAgaW50ICgqY29s bGVjdF9jcHVfaW5mbykodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IGNwdV9zaWduYXR1cmUgKmNz aWcpOwogICAgIGludCAoKmFwcGx5X21pY3JvY29kZSkodW5zaWduZWQgaW50IGNwdSk7CiAgICAg aW50ICgqc3RhcnRfdXBkYXRlKSh2b2lkKTsKKyAgICB2b2lkICgqZnJlZV9wYXRjaCkoc3RydWN0 IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2gpOworICAgIGJvb2wgKCptYXRjaF9jcHUpKGNvbnN0IHN0 cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKnBhdGNoKTsKKyAgICBlbnVtIG1pY3JvY29kZV9tYXRjaF9y ZXN1bHQgKCpjb21wYXJlX3BhdGNoKSgKKyAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBtaWNyb2Nv ZGVfcGF0Y2ggKm5ldywKKyAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2gg Km9sZCk7CiB9OwogCiBzdHJ1Y3QgY3B1X3NpZ25hdHVyZSB7CkBAIC0zOSw0ICs1MSw3IEBAIHN0 cnVjdCB1Y29kZV9jcHVfaW5mbyB7CiBERUNMQVJFX1BFUl9DUFUoc3RydWN0IHVjb2RlX2NwdV9p bmZvLCB1Y29kZV9jcHVfaW5mbyk7CiBleHRlcm4gY29uc3Qgc3RydWN0IG1pY3JvY29kZV9vcHMg Km1pY3JvY29kZV9vcHM7CiAKK2NvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm1pY3JvY29k ZV9nZXRfY2FjaGUodm9pZCk7Citib29sIG1pY3JvY29kZV91cGRhdGVfY2FjaGUoc3RydWN0IG1p Y3JvY29kZV9wYXRjaCAqcGF0Y2gpOworCiAjZW5kaWYgLyogQVNNX1g4Nl9fTUlDUk9DT0RFX0gg Ki8KLS0gCjEuOC4zLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0 Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRl dmVs 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=-9.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT 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 97099C07542 for ; Mon, 27 May 2019 08:27:50 +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 6C1CD21734 for ; Mon, 27 May 2019 08:27:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6C1CD21734 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.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 1hVAyj-0004B2-Sr; Mon, 27 May 2019 08:27:33 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hVAyi-0004Ai-BZ for xen-devel@lists.xenproject.org; Mon, 27 May 2019 08:27:32 +0000 X-Inumbo-ID: 448cdb66-8059-11e9-8980-bc764e045a96 Received: from mga12.intel.com (unknown [192.55.52.136]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 448cdb66-8059-11e9-8980-bc764e045a96; Mon, 27 May 2019 08:27:30 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 May 2019 01:27:29 -0700 X-ExtLoop1: 1 Received: from gao-cwp.sh.intel.com ([10.239.159.26]) by orsmga005.jf.intel.com with ESMTP; 27 May 2019 01:27:28 -0700 From: Chao Gao To: xen-devel@lists.xenproject.org Date: Mon, 27 May 2019 16:31:24 +0800 Message-Id: <1558945891-3015-4-git-send-email-chao.gao@intel.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1558945891-3015-1-git-send-email-chao.gao@intel.com> References: <1558945891-3015-1-git-send-email-chao.gao@intel.com> Subject: [Xen-devel] [PATCH v7 03/10] 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: Sergey Dyasli , Ashok Raj , Wei Liu , Andrew Cooper , Jan Beulich , Chao Gao , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190527083124.gJjSXgmqXIQN3rKipM8ZvXuff6MOP1Xi-jOItTLctkI@z> dG8gcmVwbGFjZSB0aGUgY3VycmVudCBwZXItY3B1IGNhY2hlICd1Y2ktPm1jJy4KCldpdGggdGhl IGFzc3VtcHRpb24gdGhhdCBhbGwgQ1BVcyBpbiB0aGUgc3lzdGVtIGhhdmUgdGhlIHNhbWUgc2ln bmF0dXJlCihmYW1pbHksIG1vZGVsLCBzdGVwcGluZyBhbmQgJ3BmJyksIG9uZSBtaWNyb2NvZGUg dXBkYXRlIG1hdGNoZXMgd2l0aApvbmUgY3B1IHNob3VsZCBtYXRjaCB3aXRoIG90aGVycy4gQW5k IEhhdmluZyBtdWx0aXBsZSBtaWNyb2NvZGUgcmV2aXNpb25zCm9uIGRpZmZlcmVudCBjcHVzIHdv dWxkIGNhdXNlIHN5c3RlbSB1bnN0YWJsZSBhbmQgaXMgd2hhdCBzaG91bGQgYmUKYXZvaWRlZC4g SGVuY2UsIGNhY2hpbmcgb25seSBvbmUgbWljcm9jb2RlIHVwZGF0ZSBpcyBnb29kIGVub3VnaCBm b3IgYWxsCmNhc2VzLgoKSW50cm9kdWNlIGEgZ2xvYmFsIHZhcmlhYmxlLCBtaWNyb2NvZGVfY2Fj aGUsIHRvIHN0b3JlIHRoZSBuZXdlc3QKbWF0Y2hpbmcgbWljcm9jb2RlIHVwZGF0ZS4gV2hlbmV2 ZXIgd2UgZ2V0IGEgbmV3IHZhbGlkIG1pY3JvY29kZSB1cGRhdGUsCml0cyByZXZpc2lvbiBpZCBp cyBjb21wYXJlZCBhZ2FpbnN0IHRoYXQgb2YgdGhlIG1pY3JvY29kZSB1cGRhdGUgdG8KZGV0ZXJt aW5lIHdoZXRoZXIgdGhlICJtaWNyb2NvZGVfY2FjaGUiIG5lZWRzIHRvIGJlIHJlcGxhY2VkLiBB bmQgbm93CnRoaXMgZ2xvYmFsIGNhY2hlIGlzIGxvYWRlZCB0byBjcHUgaW4gYXBwbHlfbWljcm9j b2RlKCkuCgpBbGwgb3BlcmF0aW9ucyBvbiB0aGUgY2FjaGUgaXMgZXhwZWN0ZWQgdG8gYmUgZG9u ZSB3aXRoIHRoZQonbWljcm9jb2RlX211dGV4JyBob2xkLgoKTm90ZSB0aGF0IEkgZGVsaWJlcmF0 ZWx5IGF2b2lkIHRvdWNoaW5nICd1Y2ktPm1jJyBhcyBJIGFtIGdvaW5nIHRvCnJlbW92ZSBpdCBj b21wbGV0ZWx5IGluIHRoZSBuZXh0IHBhdGNoLgoKU2lnbmVkLW9mZi1ieTogQ2hhbyBHYW8gPGNo YW8uZ2FvQGludGVsLmNvbT4KLS0tCkNoYW5nZXMgaW4gdjc6CiAtIHJld29ya2VkIHRvIGNhY2hl IG9ubHkgb25lIG1pY3JvY29kZSBwYXRjaCByYXRoZXIgdGhhbiBhIGxpc3Qgb2YKIG1pY3JvY29k ZSBwYXRjaGVzLgoKQ2hhbmdlcyBpbiB2NjoKIC0gY29uc3RpZnkgbG9jYWwgdmFyaWFibGVzIGFu ZCBmdW5jdGlvbiBwYXJhbWV0ZXJzIGlmIHBvc3NpYmxlCiAtIGNvbW1lbnQgdGhhdCB0aGUgZ2xv YmFsIGNhY2hlIGlzIHByb3RlY3RlZCBieSAnbWljcm9jb2RlX211dGV4Jy4KICAgYW5kIGFkZCBh c3NlcnRpb25zIHRvIGNhdGNoIHZpb2xhdGlvbnMgaW4gbWljcm9jb2RlX3tzYXZlL2ZpbmR9X3Bh dGNoKCkKCkNoYW5nZXMgaW4gdjU6CiAtIHJld29yZCB0aGUgY29tbWl0IGRlc2NyaXB0aW9uCiAt IGZpbmRfcGF0Y2goKSBhbmQgc2F2ZV9wYXRjaCgpIGFyZSBhYnN0cmFjdGVkIGludG8gY29tbW9u IGZ1bmN0aW9ucwogICB3aXRoIHNvbWUgaG9va3MgZm9yIEFNRCBhbmQgSW50ZWwKLS0tCiB4ZW4v YXJjaC94ODYvbWljcm9jb2RlLmMgICAgICAgIHwgMzYgKysrKysrKysrKysrKysrKwogeGVuL2Fy Y2gveDg2L21pY3JvY29kZV9hbWQuYyAgICB8IDkxICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tCiB4ZW4vYXJjaC94ODYvbWljcm9jb2RlX2ludGVsLmMgIHwgNzcgKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9taWNy b2NvZGUuaCB8IDE1ICsrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTk3IGluc2VydGlvbnMoKyks IDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYyBi L3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYwppbmRleCA0MTYzZjUwLi5jZmY4NmE5IDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMKKysrIGIveGVuL2FyY2gveDg2L21pY3JvY29k ZS5jCkBAIC02MSw2ICs2MSw5IEBAIHN0YXRpYyBzdHJ1Y3QgdWNvZGVfbW9kX2Jsb2IgX19pbml0 ZGF0YSB1Y29kZV9ibG9iOwogICovCiBzdGF0aWMgYm9vbF90IF9faW5pdGRhdGEgdWNvZGVfc2Nh bjsKIAorLyogUHJvdGVjdGVkIGJ5IG1pY3JvY29kZV9tdXRleCAqLworc3RhdGljIHN0cnVjdCBt aWNyb2NvZGVfcGF0Y2ggKm1pY3JvY29kZV9jYWNoZTsKKwogdm9pZCBfX2luaXQgbWljcm9jb2Rl X3NldF9tb2R1bGUodW5zaWduZWQgaW50IGlkeCkKIHsKICAgICB1Y29kZV9tb2RfaWR4ID0gaWR4 OwpAQCAtMjYyLDYgKzI2NSwzOSBAQCBpbnQgbWljcm9jb2RlX3Jlc3VtZV9jcHUodW5zaWduZWQg aW50IGNwdSkKICAgICByZXR1cm4gZXJyOwogfQogCitjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3Bh dGNoICptaWNyb2NvZGVfZ2V0X2NhY2hlKHZvaWQpCit7CisgICAgQVNTRVJUKHNwaW5faXNfbG9j a2VkKCZtaWNyb2NvZGVfbXV0ZXgpKTsKKworICAgIHJldHVybiBtaWNyb2NvZGVfY2FjaGU7Cit9 CisKKy8qIFJldHVybiB0cnVlIGlmIGNhY2hlIGdldHMgdXBkYXRlZC4gT3RoZXJ3aXNlLCByZXR1 cm4gZmFsc2UgKi8KK2Jvb2wgbWljcm9jb2RlX3VwZGF0ZV9jYWNoZShzdHJ1Y3QgbWljcm9jb2Rl X3BhdGNoICpwYXRjaCkKK3sKKworICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmbWljcm9jb2Rl X211dGV4KSk7CisKKyAgICBpZiAoICFtaWNyb2NvZGVfb3BzLT5tYXRjaF9jcHUocGF0Y2gpICkK KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCAhbWljcm9jb2RlX2NhY2hlICkKKyAg ICAgICAgbWljcm9jb2RlX2NhY2hlID0gcGF0Y2g7CisgICAgZWxzZSBpZiAoIG1pY3JvY29kZV9v cHMtPmNvbXBhcmVfcGF0Y2gocGF0Y2gsIG1pY3JvY29kZV9jYWNoZSkgPT0KKyAgICAgICAgICAg ICAgICAgIE5FV19VQ09ERSApCisgICAgeworICAgICAgICBtaWNyb2NvZGVfb3BzLT5mcmVlX3Bh dGNoKG1pY3JvY29kZV9jYWNoZSk7CisgICAgICAgIG1pY3JvY29kZV9jYWNoZSA9IHBhdGNoOwor ICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBtaWNyb2NvZGVfb3BzLT5mcmVlX3BhdGNo KHBhdGNoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVl OworfQorCiBzdGF0aWMgaW50IG1pY3JvY29kZV91cGRhdGVfY3B1KGNvbnN0IHZvaWQgKmJ1Ziwg c2l6ZV90IHNpemUpCiB7CiAgICAgaW50IGVycjsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9t aWNyb2NvZGVfYW1kLmMgYi94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2FtZC5jCmluZGV4IDdhODU0 YzAuLjFmMDU4OTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfYW1kLmMKKysr IGIveGVuL2FyY2gveDg2L21pY3JvY29kZV9hbWQuYwpAQCAtMTkwLDI0ICsxOTAsODUgQEAgc3Rh dGljIGJvb2xfdCBtaWNyb2NvZGVfZml0cyhjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAqbWNf YW1kLAogICAgIHJldHVybiAxOwogfQogCitzdGF0aWMgYm9vbCBtYXRjaF9jcHUoY29uc3Qgc3Ry dWN0IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2gpCit7CisgICAgaWYgKCAhcGF0Y2ggKQorICAgICAg ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1pY3JvY29kZV9maXRzKHBhdGNoLT5tY19hbWQs IHNtcF9wcm9jZXNzb3JfaWQoKSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNo ICphbGxvY19taWNyb2NvZGVfcGF0Y2goCisgICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9hbWQg Km1jX2FtZCkKK3sKKyAgICBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICptaWNyb2NvZGVfcGF0Y2gg PSB4bWFsbG9jKHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2gpOworICAgIHN0cnVjdCBtaWNyb2NvZGVf YW1kICpjYWNoZSA9IHhtYWxsb2Moc3RydWN0IG1pY3JvY29kZV9hbWQpOworICAgIHZvaWQgKm1w YiA9IHhtYWxsb2NfYnl0ZXMobWNfYW1kLT5tcGJfc2l6ZSk7CisgICAgc3RydWN0IGVxdWl2X2Nw dV9lbnRyeSAqZXF1aXZfY3B1X3RhYmxlID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgeG1hbGxvY19ieXRlcyhtY19hbWQtPmVxdWl2X2NwdV90YWJsZV9zaXplKTsKKworICAgIGlm ICggIW1pY3JvY29kZV9wYXRjaCB8fCAhY2FjaGUgfHwgIW1wYiB8fCAhZXF1aXZfY3B1X3RhYmxl ICkKKyAgICB7CisgICAgICAgIHhmcmVlKG1pY3JvY29kZV9wYXRjaCk7CisgICAgICAgIHhmcmVl KGNhY2hlKTsKKyAgICAgICAgeGZyZWUobXBiKTsKKyAgICAgICAgeGZyZWUoZXF1aXZfY3B1X3Rh YmxlKTsKKyAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgIm1pY3JvY29kZTogQ2FuIG5vdCBhbGxv Y2F0ZSBtZW1vcnlcbiIpOworICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKyAgICB9 CisKKyAgICBjYWNoZS0+ZXF1aXZfY3B1X3RhYmxlID0gZXF1aXZfY3B1X3RhYmxlOworICAgIGNh Y2hlLT5tcGIgPSBtcGI7CisgICAgbWVtY3B5KGNhY2hlLT5lcXVpdl9jcHVfdGFibGUsIG1jX2Ft ZC0+ZXF1aXZfY3B1X3RhYmxlLAorICAgICAgICAgICBtY19hbWQtPmVxdWl2X2NwdV90YWJsZV9z aXplKTsKKyAgICBtZW1jcHkoY2FjaGUtPm1wYiwgbWNfYW1kLT5tcGIsIG1jX2FtZC0+bXBiX3Np emUpOworICAgIGNhY2hlLT5lcXVpdl9jcHVfdGFibGVfc2l6ZSA9IG1jX2FtZC0+ZXF1aXZfY3B1 X3RhYmxlX3NpemU7CisgICAgY2FjaGUtPm1wYl9zaXplID0gbWNfYW1kLT5tcGJfc2l6ZTsKKyAg ICBtaWNyb2NvZGVfcGF0Y2gtPm1jX2FtZCA9IGNhY2hlOworCisgICAgcmV0dXJuIG1pY3JvY29k ZV9wYXRjaDsKK30KKworc3RhdGljIHZvaWQgZnJlZV9wYXRjaChzdHJ1Y3QgbWljcm9jb2RlX3Bh dGNoICptaWNyb2NvZGVfcGF0Y2gpCit7CisgICAgc3RydWN0IG1pY3JvY29kZV9hbWQgKm1jX2Ft ZCA9IG1pY3JvY29kZV9wYXRjaC0+bWNfYW1kOworCisgICAgeGZyZWUobWNfYW1kLT5lcXVpdl9j cHVfdGFibGUpOworICAgIHhmcmVlKG1jX2FtZC0+bXBiKTsKKyAgICB4ZnJlZShtY19hbWQpOwor ICAgIHhmcmVlKG1pY3JvY29kZV9wYXRjaCk7Cit9CisKK3N0YXRpYyBlbnVtIG1pY3JvY29kZV9t YXRjaF9yZXN1bHQgY29tcGFyZV9wYXRjaCgKKyAgICBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3Bh dGNoICpuZXcsIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm9sZCkKK3sKKyAgICBjb25z dCBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAqbmV3X21jID0gbmV3LT5tY19hbWQ7CisgICAgY29uc3Qg c3RydWN0IG1pY3JvY29kZV9oZWFkZXJfYW1kICpuZXdfaGVhZGVyID0gbmV3X21jLT5tcGI7Cisg ICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9hbWQgKm9sZF9tYyA9IG9sZC0+bWNfYW1kOworICAg IGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfaGVhZGVyX2FtZCAqb2xkX2hlYWRlciA9IG9sZF9tYy0+ bXBiOworCisgICAgaWYgKCBuZXdfaGVhZGVyLT5wcm9jZXNzb3JfcmV2X2lkID09IG9sZF9oZWFk ZXItPnByb2Nlc3Nvcl9yZXZfaWQgKQorICAgICAgICByZXR1cm4gKG5ld19oZWFkZXItPnBhdGNo X2lkID4gb2xkX2hlYWRlci0+cGF0Y2hfaWQpID8KKyAgICAgICAgICAgICAgICBORVdfVUNPREUg OiBPTERfVUNPREU7CisKKyAgICByZXR1cm4gTUlTX1VDT0RFOworfQorCiBzdGF0aWMgaW50IGFw cGx5X21pY3JvY29kZSh1bnNpZ25lZCBpbnQgY3B1KQogewogICAgIHVuc2lnbmVkIGxvbmcgZmxh Z3M7CiAgICAgc3RydWN0IHVjb2RlX2NwdV9pbmZvICp1Y2kgPSAmcGVyX2NwdSh1Y29kZV9jcHVf aW5mbywgY3B1KTsKICAgICB1aW50MzJfdCByZXY7Ci0gICAgc3RydWN0IG1pY3JvY29kZV9hbWQg Km1jX2FtZCA9IHVjaS0+bWMubWNfYW1kOwotICAgIHN0cnVjdCBtaWNyb2NvZGVfaGVhZGVyX2Ft ZCAqaGRyOwogICAgIGludCBod19lcnI7CisgICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9oZWFk ZXJfYW1kICpoZHI7CisgICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2ggPSBt aWNyb2NvZGVfZ2V0X2NhY2hlKCk7CiAKICAgICAvKiBXZSBzaG91bGQgYmluZCB0aGUgdGFzayB0 byB0aGUgQ1BVICovCiAgICAgQlVHX09OKHJhd19zbXBfcHJvY2Vzc29yX2lkKCkgIT0gY3B1KTsK IAotICAgIGlmICggbWNfYW1kID09IE5VTEwgKQorICAgIGlmICggIW1hdGNoX2NwdShwYXRjaCkg KQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgIGhkciA9IG1jX2FtZC0+bXBiOwotICAg IGlmICggaGRyID09IE5VTEwgKQotICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICBoZHIgPSBw YXRjaC0+bWNfYW1kLT5tcGI7CiAKICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmbWljcm9jb2RlX3Vw ZGF0ZV9sb2NrLCBmbGFncyk7CiAKQEAgLTQ5Nyw3ICs1NTgsMjAgQEAgc3RhdGljIGludCBjcHVf cmVxdWVzdF9taWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSwgY29uc3Qgdm9pZCAqYnVmLAogICAg IHdoaWxlICggKGVycm9yID0gZ2V0X3Vjb2RlX2Zyb21fYnVmZmVyX2FtZChtY19hbWQsIGJ1Ziwg YnVmc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Jm9mZnNldCkpID09IDAgKQogICAgIHsKLSAgICAgICAgaWYgKCBtaWNyb2NvZGVfZml0cyhtY19h bWQsIGNwdSkgKQorICAgICAgICBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpuZXdfcGF0Y2ggPSBh bGxvY19taWNyb2NvZGVfcGF0Y2gobWNfYW1kKTsKKworICAgICAgICBpZiAoIElTX0VSUihuZXdf cGF0Y2gpICkKKyAgICAgICAgeworICAgICAgICAgICAgZXJyb3IgPSBQVFJfRVJSKG5ld19wYXRj aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmICggbWF0Y2hf Y3B1KG5ld19wYXRjaCkgKQorICAgICAgICAgICAgbWljcm9jb2RlX3VwZGF0ZV9jYWNoZShuZXdf cGF0Y2gpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmcmVlX3BhdGNoKG5ld19wYXRjaCk7 CisKKyAgICAgICAgaWYgKCBtYXRjaF9jcHUobWljcm9jb2RlX2dldF9jYWNoZSgpKSApCiAgICAg ICAgIHsKICAgICAgICAgICAgIGVycm9yID0gYXBwbHlfbWljcm9jb2RlKGNwdSk7CiAgICAgICAg ICAgICBpZiAoIGVycm9yICkKQEAgLTYzOSw2ICs3MTMsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IG1pY3JvY29kZV9vcHMgbWljcm9jb2RlX2FtZF9vcHMgPSB7CiAgICAgLmNvbGxlY3RfY3B1X2lu Zm8gICAgICAgICAgICAgICAgID0gY29sbGVjdF9jcHVfaW5mbywKICAgICAuYXBwbHlfbWljcm9j b2RlICAgICAgICAgICAgICAgICAgPSBhcHBseV9taWNyb2NvZGUsCiAgICAgLnN0YXJ0X3VwZGF0 ZSAgICAgICAgICAgICAgICAgICAgID0gc3RhcnRfdXBkYXRlLAorICAgIC5mcmVlX3BhdGNoICAg ICAgICAgICAgICAgICAgICAgICA9IGZyZWVfcGF0Y2gsCisgICAgLmNvbXBhcmVfcGF0Y2ggICAg ICAgICAgICAgICAgICAgID0gY29tcGFyZV9wYXRjaCwKKyAgICAubWF0Y2hfY3B1ICAgICAgICAg ICAgICAgICAgICAgICAgPSBtYXRjaF9jcHUsCiB9OwogCiBpbnQgX19pbml0IG1pY3JvY29kZV9p bml0X2FtZCh2b2lkKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21pY3JvY29kZV9pbnRlbC5j IGIveGVuL2FyY2gveDg2L21pY3JvY29kZV9pbnRlbC5jCmluZGV4IGVjZWM4M2IuLmQzNDA1YTAg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfaW50ZWwuYworKysgYi94ZW4vYXJj aC94ODYvbWljcm9jb2RlX2ludGVsLmMKQEAgLTI0OCw2ICsyNDgsMzIgQEAgc3RhdGljIGludCBt aWNyb2NvZGVfc2FuaXR5X2NoZWNrKHZvaWQgKm1jKQogICAgIHJldHVybiAwOwogfQogCitzdGF0 aWMgYm9vbCBtYXRjaF9jcHUoY29uc3Qgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2gpCit7 CisgICAgY29uc3Qgc3RydWN0IHVjb2RlX2NwdV9pbmZvICp1Y2kgPSAmdGhpc19jcHUodWNvZGVf Y3B1X2luZm8pOworCisgICAgaWYgKCAhcGF0Y2ggKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK KyAgICByZXR1cm4gbWljcm9jb2RlX3VwZGF0ZV9tYXRjaCgmcGF0Y2gtPm1jX2ludGVsLT5oZHIs IHVjaS0+Y3B1X3NpZy5zaWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVjaS0+ Y3B1X3NpZy5wZiwgdWNpLT5jcHVfc2lnLnJldikgPT0gTkVXX1VDT0RFOworfQorCitzdGF0aWMg dm9pZCBmcmVlX3BhdGNoKHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKnBhdGNoKQoreworICAgIHhm cmVlKHBhdGNoLT5tY19pbnRlbCk7CisgICAgeGZyZWUocGF0Y2gpOworfQorCitzdGF0aWMgZW51 bSBtaWNyb2NvZGVfbWF0Y2hfcmVzdWx0IGNvbXBhcmVfcGF0Y2goCisgICAgY29uc3Qgc3RydWN0 IG1pY3JvY29kZV9wYXRjaCAqbmV3LCBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpvbGQp Cit7CisgICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9oZWFkZXJfaW50ZWwgKm9sZF9oZWFkZXIg PSAmb2xkLT5tY19pbnRlbC0+aGRyOworCisgICAgcmV0dXJuIG1pY3JvY29kZV91cGRhdGVfbWF0 Y2goJm5ldy0+bWNfaW50ZWwtPmhkciwgb2xkX2hlYWRlci0+c2lnLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9sZF9oZWFkZXItPnBmLCBvbGRfaGVhZGVyLT5yZXYpOworfQor CiAvKgogICogcmV0dXJuIDAgLSBubyB1cGRhdGUgZm91bmQKICAqIHJldHVybiAxIC0gZm91bmQg dXBkYXRlCkBAIC0yNTgsMTAgKzI4NCwyNiBAQCBzdGF0aWMgaW50IGdldF9tYXRjaGluZ19taWNy b2NvZGUoY29uc3Qgdm9pZCAqbWMsIHVuc2lnbmVkIGludCBjcHUpCiAgICAgc3RydWN0IHVjb2Rl X2NwdV9pbmZvICp1Y2kgPSAmcGVyX2NwdSh1Y29kZV9jcHVfaW5mbywgY3B1KTsKICAgICBjb25z dCBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9pbnRlbCAqbWNfaGVhZGVyID0gbWM7CiAgICAgdW5z aWduZWQgbG9uZyB0b3RhbF9zaXplID0gZ2V0X3RvdGFsc2l6ZShtY19oZWFkZXIpOwotICAgIHZv aWQgKm5ld19tYzsKKyAgICB2b2lkICpuZXdfbWMgPSB4bWFsbG9jX2J5dGVzKHRvdGFsX3NpemUp OworICAgIHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm5ld19wYXRjaCA9IHhtYWxsb2Moc3RydWN0 IG1pY3JvY29kZV9wYXRjaCk7CisKKyAgICBpZiAoICFuZXdfcGF0Y2ggfHwgIW5ld19tYyApCisg ICAgeworICAgICAgICB4ZnJlZShuZXdfcGF0Y2gpOworICAgICAgICB4ZnJlZShuZXdfbWMpOwor ICAgICAgICBwcmludGsoWEVOTE9HX0VSUiAibWljcm9jb2RlOiBDYW4gbm90IGFsbG9jYXRlIG1l bW9yeVxuIik7CisgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgIH0KKyAgICBtZW1jcHkobmV3 X21jLCBtYywgdG90YWxfc2l6ZSk7CisgICAgbmV3X3BhdGNoLT5tY19pbnRlbCA9IG5ld19tYzsK IAotICAgIGlmICggbWljcm9jb2RlX3VwZGF0ZV9tYXRjaChtYywgdWNpLT5jcHVfc2lnLnNpZywg dWNpLT5jcHVfc2lnLnBmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Y2ktPmNw dV9zaWcucmV2KSAhPSBORVdfVUNPREUgKQorICAgIGlmICggIW1hdGNoX2NwdShuZXdfcGF0Y2gp ICkKKyAgICB7CisgICAgICAgIGZyZWVfcGF0Y2gobmV3X3BhdGNoKTsKKyAgICAgICAgcmV0dXJu IDA7CisgICAgfQorCisgICAgaWYgKCAhbWljcm9jb2RlX3VwZGF0ZV9jYWNoZShuZXdfcGF0Y2gp ICkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBwcl9kZWJ1ZygibWljcm9jb2RlOiBDUFUlZCBm b3VuZCBhIG1hdGNoaW5nIG1pY3JvY29kZSB1cGRhdGUgd2l0aCIKQEAgLTI3Nyw2ICszMTksNyBA QCBzdGF0aWMgaW50IGdldF9tYXRjaGluZ19taWNyb2NvZGUoY29uc3Qgdm9pZCAqbWMsIHVuc2ln bmVkIGludCBjcHUpCiAgICAgbWVtY3B5KG5ld19tYywgbWMsIHRvdGFsX3NpemUpOwogICAgIHhm cmVlKHVjaS0+bWMubWNfaW50ZWwpOwogICAgIHVjaS0+bWMubWNfaW50ZWwgPSBuZXdfbWM7CisK ICAgICByZXR1cm4gMTsKIH0KIApAQCAtMjg3LDE4ICszMzAsMjIgQEAgc3RhdGljIGludCBhcHBs eV9taWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSkKICAgICB1bnNpZ25lZCBpbnQgdmFsWzJdOwog ICAgIHVuc2lnbmVkIGludCBjcHVfbnVtID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKICAgICBz dHJ1Y3QgdWNvZGVfY3B1X2luZm8gKnVjaSA9ICZwZXJfY3B1KHVjb2RlX2NwdV9pbmZvLCBjcHVf bnVtKTsKKyAgICBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX2ludGVsICptY19pbnRlbDsKKyAgICBj b25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpwYXRjaCA9IG1pY3JvY29kZV9nZXRfY2FjaGUo KTsKIAogICAgIC8qIFdlIHNob3VsZCBiaW5kIHRoZSB0YXNrIHRvIHRoZSBDUFUgKi8KICAgICBC VUdfT04oY3B1X251bSAhPSBjcHUpOwogCi0gICAgaWYgKCB1Y2ktPm1jLm1jX2ludGVsID09IE5V TEwgKQorICAgIGlmICggIW1hdGNoX2NwdShwYXRjaCkgKQogICAgICAgICByZXR1cm4gLUVJTlZB TDsKIAorICAgIG1jX2ludGVsID0gcGF0Y2gtPm1jX2ludGVsOworCiAgICAgLyogc2VyaWFsaXpl IGFjY2VzcyB0byB0aGUgcGh5c2ljYWwgd3JpdGUgdG8gTVNSIDB4NzkgKi8KICAgICBzcGluX2xv Y2tfaXJxc2F2ZSgmbWljcm9jb2RlX3VwZGF0ZV9sb2NrLCBmbGFncyk7CiAKICAgICAvKiB3cml0 ZSBtaWNyb2NvZGUgdmlhIE1TUiAweDc5ICovCi0gICAgd3Jtc3JsKE1TUl9JQTMyX1VDT0RFX1dS SVRFLCAodW5zaWduZWQgbG9uZyl1Y2ktPm1jLm1jX2ludGVsLT5iaXRzKTsKKyAgICB3cm1zcmwo TVNSX0lBMzJfVUNPREVfV1JJVEUsICh1bnNpZ25lZCBsb25nKW1jX2ludGVsLT5iaXRzKTsKICAg ICB3cm1zcmwoTVNSX0lBMzJfVUNPREVfUkVWLCAweDBVTEwpOwogCiAgICAgLyogQXMgZG9jdW1l bnRlZCBpbiB0aGUgU0RNOiBEbyBhIENQVUlEIDEgaGVyZSAqLwpAQCAtMzA5LDE5ICszNTYsMTkg QEAgc3RhdGljIGludCBhcHBseV9taWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSkKICAgICB2YWxb MV0gPSAodWludDMyX3QpKG1zcl9jb250ZW50ID4+IDMyKTsKIAogICAgIHNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJm1pY3JvY29kZV91cGRhdGVfbG9jaywgZmxhZ3MpOwotICAgIGlmICggdmFsWzFd ICE9IHVjaS0+bWMubWNfaW50ZWwtPmhkci5yZXYgKQorICAgIGlmICggdmFsWzFdICE9IG1jX2lu dGVsLT5oZHIucmV2ICkKICAgICB7CiAgICAgICAgIHByaW50ayhLRVJOX0VSUiAibWljcm9jb2Rl OiBDUFUlZCB1cGRhdGUgZnJvbSByZXZpc2lvbiAiCiAgICAgICAgICAgICAgICAiJSN4IHRvICUj eCBmYWlsZWQuIFJlc3VsdGluZyByZXZpc2lvbiBpcyAlI3guXG4iLCBjcHVfbnVtLAotICAgICAg ICAgICAgICAgdWNpLT5jcHVfc2lnLnJldiwgdWNpLT5tYy5tY19pbnRlbC0+aGRyLnJldiwgdmFs WzFdKTsKKyAgICAgICAgICAgICAgIHVjaS0+Y3B1X3NpZy5yZXYsIG1jX2ludGVsLT5oZHIucmV2 LCB2YWxbMV0pOwogICAgICAgICByZXR1cm4gLUVJTzsKICAgICB9CiAgICAgcHJpbnRrKEtFUk5f SU5GTyAibWljcm9jb2RlOiBDUFUlZCB1cGRhdGVkIGZyb20gcmV2aXNpb24gIgogICAgICAgICAg ICAiJSN4IHRvICUjeCwgZGF0ZSA9ICUwNHgtJTAyeC0lMDJ4IFxuIiwKICAgICAgICAgICAgY3B1 X251bSwgdWNpLT5jcHVfc2lnLnJldiwgdmFsWzFdLAotICAgICAgICAgICB1Y2ktPm1jLm1jX2lu dGVsLT5oZHIueWVhciwKLSAgICAgICAgICAgdWNpLT5tYy5tY19pbnRlbC0+aGRyLm1vbnRoLAot ICAgICAgICAgICB1Y2ktPm1jLm1jX2ludGVsLT5oZHIuZGF5KTsKKyAgICAgICAgICAgbWNfaW50 ZWwtPmhkci55ZWFyLAorICAgICAgICAgICBtY19pbnRlbC0+aGRyLm1vbnRoLAorICAgICAgICAg ICBtY19pbnRlbC0+aGRyLmRheSk7CiAgICAgdWNpLT5jcHVfc2lnLnJldiA9IHZhbFsxXTsKIAog ICAgIHJldHVybiAwOwpAQCAtMzYxLDcgKzQwOCw2IEBAIHN0YXRpYyBpbnQgY3B1X3JlcXVlc3Rf bWljcm9jb2RlKHVuc2lnbmVkIGludCBjcHUsIGNvbnN0IHZvaWQgKmJ1ZiwKICAgICBsb25nIG9m ZnNldCA9IDA7CiAgICAgaW50IGVycm9yID0gMDsKICAgICB2b2lkICptYzsKLSAgICB1bnNpZ25l ZCBpbnQgbWF0Y2hpbmdfY291bnQgPSAwOwogCiAgICAgLyogV2Ugc2hvdWxkIGJpbmQgdGhlIHRh c2sgdG8gdGhlIENQVSAqLwogICAgIEJVR19PTihjcHUgIT0gcmF3X3NtcF9wcm9jZXNzb3JfaWQo KSk7CkBAIC0zNzksMTAgKzQyNSw4IEBAIHN0YXRpYyBpbnQgY3B1X3JlcXVlc3RfbWljcm9jb2Rl KHVuc2lnbmVkIGludCBjcHUsIGNvbnN0IHZvaWQgKmJ1ZiwKICAgICAgICAgICogbGV0cyBrZWVw IHNlYXJjaGluZyB0aWxsIHRoZSBsYXRlc3QgdmVyc2lvbgogICAgICAgICAgKi8KICAgICAgICAg aWYgKCBlcnJvciA9PSAxICkKLSAgICAgICAgewotICAgICAgICAgICAgbWF0Y2hpbmdfY291bnQr KzsKICAgICAgICAgICAgIGVycm9yID0gMDsKLSAgICAgICAgfQorCiAgICAgICAgIHhmcmVlKG1j KTsKICAgICB9CiAgICAgaWYgKCBvZmZzZXQgPiAwICkKQEAgLTM5MCw3ICs0MzQsNyBAQCBzdGF0 aWMgaW50IGNwdV9yZXF1ZXN0X21pY3JvY29kZSh1bnNpZ25lZCBpbnQgY3B1LCBjb25zdCB2b2lk ICpidWYsCiAgICAgaWYgKCBvZmZzZXQgPCAwICkKICAgICAgICAgZXJyb3IgPSBvZmZzZXQ7CiAK LSAgICBpZiAoICFlcnJvciAmJiBtYXRjaGluZ19jb3VudCApCisgICAgaWYgKCAhZXJyb3IgJiYg bWF0Y2hfY3B1KG1pY3JvY29kZV9nZXRfY2FjaGUoKSkgKQogICAgICAgICBlcnJvciA9IGFwcGx5 X21pY3JvY29kZShjcHUpOwogCiAgICAgcmV0dXJuIGVycm9yOwpAQCAtNDA2LDYgKzQ1MCw5IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX29wcyBtaWNyb2NvZGVfaW50ZWxfb3BzID0g ewogICAgIC5jcHVfcmVxdWVzdF9taWNyb2NvZGUgICAgICAgICAgICA9IGNwdV9yZXF1ZXN0X21p Y3JvY29kZSwKICAgICAuY29sbGVjdF9jcHVfaW5mbyAgICAgICAgICAgICAgICAgPSBjb2xsZWN0 X2NwdV9pbmZvLAogICAgIC5hcHBseV9taWNyb2NvZGUgICAgICAgICAgICAgICAgICA9IGFwcGx5 X21pY3JvY29kZSwKKyAgICAuZnJlZV9wYXRjaCAgICAgICAgICAgICAgICAgICAgICAgPSBmcmVl X3BhdGNoLAorICAgIC5jb21wYXJlX3BhdGNoICAgICAgICAgICAgICAgICAgICA9IGNvbXBhcmVf cGF0Y2gsCisgICAgLm1hdGNoX2NwdSAgICAgICAgICAgICAgICAgICAgICAgID0gbWF0Y2hfY3B1 LAogfTsKIAogaW50IF9faW5pdCBtaWNyb2NvZGVfaW5pdF9pbnRlbCh2b2lkKQpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9taWNyb2NvZGUuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYv bWljcm9jb2RlLmgKaW5kZXggNzNlYmU5YS4uNjU0MWM1OCAxMDA2NDQKLS0tIGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9taWNyb2NvZGUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L21pY3JvY29k ZS5oCkBAIC0xMiw2ICsxMiwxMyBAQCBlbnVtIG1pY3JvY29kZV9tYXRjaF9yZXN1bHQgewogc3Ry dWN0IGNwdV9zaWduYXR1cmU7CiBzdHJ1Y3QgdWNvZGVfY3B1X2luZm87CiAKK3N0cnVjdCBtaWNy b2NvZGVfcGF0Y2ggeworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IG1pY3JvY29kZV9pbnRl bCAqbWNfaW50ZWw7CisgICAgICAgIHN0cnVjdCBtaWNyb2NvZGVfYW1kICptY19hbWQ7CisgICAg fTsKK307CisKIHN0cnVjdCBtaWNyb2NvZGVfb3BzIHsKICAgICBpbnQgKCptaWNyb2NvZGVfcmVz dW1lX21hdGNoKSh1bnNpZ25lZCBpbnQgY3B1LCBjb25zdCB2b2lkICptYyk7CiAgICAgaW50ICgq Y3B1X3JlcXVlc3RfbWljcm9jb2RlKSh1bnNpZ25lZCBpbnQgY3B1LCBjb25zdCB2b2lkICpidWYs CkBAIC0xOSw2ICsyNiwxMSBAQCBzdHJ1Y3QgbWljcm9jb2RlX29wcyB7CiAgICAgaW50ICgqY29s bGVjdF9jcHVfaW5mbykodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IGNwdV9zaWduYXR1cmUgKmNz aWcpOwogICAgIGludCAoKmFwcGx5X21pY3JvY29kZSkodW5zaWduZWQgaW50IGNwdSk7CiAgICAg aW50ICgqc3RhcnRfdXBkYXRlKSh2b2lkKTsKKyAgICB2b2lkICgqZnJlZV9wYXRjaCkoc3RydWN0 IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2gpOworICAgIGJvb2wgKCptYXRjaF9jcHUpKGNvbnN0IHN0 cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKnBhdGNoKTsKKyAgICBlbnVtIG1pY3JvY29kZV9tYXRjaF9y ZXN1bHQgKCpjb21wYXJlX3BhdGNoKSgKKyAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBtaWNyb2Nv ZGVfcGF0Y2ggKm5ldywKKyAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2gg Km9sZCk7CiB9OwogCiBzdHJ1Y3QgY3B1X3NpZ25hdHVyZSB7CkBAIC0zOSw0ICs1MSw3IEBAIHN0 cnVjdCB1Y29kZV9jcHVfaW5mbyB7CiBERUNMQVJFX1BFUl9DUFUoc3RydWN0IHVjb2RlX2NwdV9p bmZvLCB1Y29kZV9jcHVfaW5mbyk7CiBleHRlcm4gY29uc3Qgc3RydWN0IG1pY3JvY29kZV9vcHMg Km1pY3JvY29kZV9vcHM7CiAKK2NvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm1pY3JvY29k ZV9nZXRfY2FjaGUodm9pZCk7Citib29sIG1pY3JvY29kZV91cGRhdGVfY2FjaGUoc3RydWN0IG1p Y3JvY29kZV9wYXRjaCAqcGF0Y2gpOworCiAjZW5kaWYgLyogQVNNX1g4Nl9fTUlDUk9DT0RFX0gg Ki8KLS0gCjEuOC4zLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0 Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRl dmVs