From mboxrd@z Thu Jan 1 00:00:00 1970 From: Huaitong Han Subject: [PATCH V7 2/5] x86/hvm: pkeys, add pkeys support for guest_walk_tables Date: Wed, 27 Jan 2016 16:30:27 +0800 Message-ID: <1453883430-9098-3-git-send-email-huaitong.han@intel.com> References: <1453883430-9098-1-git-send-email-huaitong.han@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1453883430-9098-1-git-send-email-huaitong.han@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: jbeulich@suse.com, andrew.cooper3@citrix.com, george.dunlap@eu.citrix.com, tim@xen.org, keir@xen.org Cc: Huaitong Han , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org Q2hhbmdlcyBpbiB2NzoKKkFkZCBzdGF0aWMgZm9yIHBrZXlfZmF1bHQuCipBZGQgYSBjb21tZW50 IGZvciBwYWdlIHByZXNlbnQgY2hlY2sgYW5kIGFkanVzdCBpbmRlbnRhdGlvbi4KKkluaXQgcGty dV9hZCBhbmQgcGtydV93ZC4KKkRlbGV0ZSBsM2VfZ2V0X3BrZXkgdGhlIG91dGVyIHBhcmVudGhl c2VzLgoqVGhlIGZpcnN0IHBhcmFtZXRlciBvZiByZWFkX3BrcnVfKiB1c2UgdWludDMyX3QgdHlw ZS4KLS0tLQoKUHJvdGVjdGlvbiBrZXlzIGRlZmluZSBhIG5ldyA0LWJpdCBwcm90ZWN0aW9uIGtl eSBmaWVsZChQS0VZKSBpbiBiaXRzIDYyOjU5IG9mCmxlYWYgZW50cmllcyBvZiB0aGUgcGFnZSB0 YWJsZXMuCgpQS1JVIHJlZ2lzdGVyIGRlZmluZXMgMzIgYml0cywgdGhlcmUgYXJlIDE2IGRvbWFp bnMgYW5kIDIgYXR0cmlidXRlIGJpdHMgcGVyCmRvbWFpbiBpbiBwa3J1LCBmb3IgZWFjaCBpICgw IOKJpCBpIOKJpCAxNSksIFBLUlVbMmldIGlzIHRoZSBhY2Nlc3MtZGlzYWJsZSBiaXQgZm9yCnBy b3RlY3Rpb24ga2V5IGkgKEFEaSk7IFBLUlVbMmkrMV0gaXMgdGhlIHdyaXRlLWRpc2FibGUgYml0 IGZvciBwcm90ZWN0aW9uIGtleQppIChXRGkpLiBQS0VZIGlzIGluZGV4IHRvIGEgZGVmaW5lZCBk b21haW4uCgpBIGZhdWx0IGlzIGNvbnNpZGVyZWQgYXMgYSBQS1UgdmlvbGF0aW9uIGlmIGFsbCBv ZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCnRydWU6CjEuQ1I0X1BLRT0xLgoyLkVGRVJf TE1BPTEuCjMuUGFnZSBpcyBwcmVzZW50IHdpdGggbm8gcmVzZXJ2ZWQgYml0IHZpb2xhdGlvbnMu CjQuVGhlIGFjY2VzcyBpcyBub3QgYW4gaW5zdHJ1Y3Rpb24gZmV0Y2guCjUuVGhlIGFjY2VzcyBp cyB0byBhIHVzZXIgcGFnZS4KNi5QS1JVLkFEPTEKICAgIG9yIFRoZSBhY2Nlc3MgaXMgYSBkYXRh IHdyaXRlIGFuZCBQS1JVLldEPTEKICAgICAgICAgICAgICAgIGFuZCBlaXRoZXIgQ1IwLldQPTEg b3IgaXQgaXMgYSB1c2VyIGFjY2Vzcy4KClNpZ25lZC1vZmYtYnk6IEh1YWl0b25nIEhhbiA8aHVh aXRvbmcuaGFuQGludGVsLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvbW0vZ3Vlc3Rfd2Fsay5jICAg ICAgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNo L3g4Ni9tbS9oYXAvZ3Vlc3Rfd2Fsay5jICB8ICAzICsrKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9n dWVzdF9wdC5oICAgIHwgMTIgKysrKysrKysrCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0u aCAgICAgfCAgMiArKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmggICAgICAgIHwgIDUgKysr KwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaCAgIHwgNDAgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIHhlbi9pbmNsdWRlL2FzbS14ODYveDg2XzY0L3BhZ2UuaCB8IDEyICsr KysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9tbS9ndWVzdF93YWxrLmMgYi94ZW4vYXJjaC94ODYvbW0vZ3Vlc3Rfd2Fs ay5jCmluZGV4IDE4ZDFhY2YuLjVlMTExMWIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9n dWVzdF93YWxrLmMKKysrIGIveGVuL2FyY2gveDg2L21tL2d1ZXN0X3dhbGsuYwpAQCAtOTAsNiAr OTAsNTQgQEAgc3RhdGljIHVpbnQzMl90IHNldF9hZF9iaXRzKHZvaWQgKmd1ZXN0X3AsIHZvaWQg KndhbGtfcCwgaW50IHNldF9kaXJ0eSkKICAgICByZXR1cm4gMDsKIH0KIAorI2lmIEdVRVNUX1BB R0lOR19MRVZFTFMgPj0gNAorc3RhdGljIGJvb2xfdCBwa2V5X2ZhdWx0KHN0cnVjdCB2Y3B1ICp2 Y3B1LCB1aW50MzJfdCBwZmVjLAorICAgICAgICB1aW50MzJfdCBwdGVfZmxhZ3MsIHVpbnQzMl90 IHB0ZV9wa2V5KQoreworICAgIHVpbnQzMl90IHBrcnUgPSAwOworICAgIGJvb2xfdCBwa3J1X2Fk ID0gMCwgcGtydV93ZCA9IDA7CisKKyAgICAvKiBXaGVuIHBhZ2UgaXNuJ3QgcHJlc2VudCwgIFBL RVkgaXNuJ3QgY2hlY2tlZC4gKi8KKyAgICBpZiAoICEocGZlYyAmIFBGRUNfcGFnZV9wcmVzZW50 KSB8fCBpc19wdl92Y3B1KHZjcHUpICkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvKgorICAg ICAqIFBLVTogIGFkZGl0aW9uYWwgbWVjaGFuaXNtIGJ5IHdoaWNoIHRoZSBwYWdpbmcgY29udHJv bHMKKyAgICAgKiBhY2Nlc3MgdG8gdXNlci1tb2RlIGFkZHJlc3NlcyBiYXNlZCBvbiB0aGUgdmFs dWUgaW4gdGhlCisgICAgICogUEtSVSByZWdpc3Rlci4gQSBmYXVsdCBpcyBjb25zaWRlcmVkIGFz IGEgUEtVIHZpb2xhdGlvbiBpZiBhbGwKKyAgICAgKiBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlv bnMgYXJlIHRydWU6CisgICAgICogMS5DUjRfUEtFPTEuCisgICAgICogMi5FRkVSX0xNQT0xLgor ICAgICAqIDMuUGFnZSBpcyBwcmVzZW50IHdpdGggbm8gcmVzZXJ2ZWQgYml0IHZpb2xhdGlvbnMu CisgICAgICogNC5UaGUgYWNjZXNzIGlzIG5vdCBhbiBpbnN0cnVjdGlvbiBmZXRjaC4KKyAgICAg KiA1LlRoZSBhY2Nlc3MgaXMgdG8gYSB1c2VyIHBhZ2UuCisgICAgICogNi5QS1JVLkFEPTEgb3IK KyAgICAgKiAgICAgIHRoZSBhY2Nlc3MgaXMgYSBkYXRhIHdyaXRlIGFuZCBQS1JVLldEPTEgYW5k CisgICAgICogICAgICAgICAgZWl0aGVyIENSMC5XUD0xIG9yIGl0IGlzIGEgdXNlciBhY2Nlc3Mu CisgICAgICovCisgICAgaWYgKCAhaHZtX3BrdV9lbmFibGVkKHZjcHUpIHx8CisgICAgICAgICAh aHZtX2xvbmdfbW9kZV9lbmFibGVkKHZjcHUpIHx8CisgICAgICAgICAvKiBUaGUgcGVyc2VudCBi aXQgaXMgZ3VhcmFudGVlZCBieSB0aGUgY2FsbGVyLiAqLworICAgICAgICAgKHBmZWMgJiBQRkVD X3Jlc2VydmVkX2JpdCkgfHwKKyAgICAgICAgIChwZmVjICYgUEZFQ19pbnNuX2ZldGNoKSB8fAor ICAgICAgICAgIShwdGVfZmxhZ3MgJiBfUEFHRV9VU0VSKSApCisgICAgICAgIHJldHVybiAwOwor CisgICAgcGtydSA9IHJlYWRfcGtydSgpOworICAgIGlmICggdW5saWtlbHkocGtydSkgKQorICAg IHsKKyAgICAgICAgcGtydV9hZCA9IHJlYWRfcGtydV9hZChwa3J1LCBwdGVfcGtleSk7CisgICAg ICAgIHBrcnVfd2QgPSByZWFkX3BrcnVfd2QocGtydSwgcHRlX3BrZXkpOworICAgICAgICAvKiBD b25kaXRpb24gNiAqLworICAgICAgICBpZiAoIHBrcnVfYWQgfHwgKHBrcnVfd2QgJiYgKHBmZWMg JiBQRkVDX3dyaXRlX2FjY2VzcykgJiYKKyAgICAgICAgICAgICAgICAgICAgKGh2bV93cF9lbmFi bGVkKHZjcHUpIHx8IChwZmVjICYgUEZFQ191c2VyX21vZGUpKSkpCisgICAgICAgICAgICByZXR1 cm4gMTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCiAvKiBXYWxrIHRoZSBn dWVzdCBwYWdldGFibGVzLCBhZnRlciB0aGUgbWFubmVyIG9mIGEgaGFyZHdhcmUgd2Fsa2VyLiAq LwogLyogQmVjYXVzZSB0aGUgd2FsayBpcyBlc3NlbnRpYWxseSByYW5kb20sIGl0IGNhbiBjYXVz ZSBhIGRlYWRsb2NrIAogICogd2FybmluZyBpbiB0aGUgcDJtIGxvY2tpbmcgY29kZS4gSGlnaGx5 IHVubGlrZWx5IHRoaXMgaXMgYW4gYWN0dWFsCkBAIC0xMDcsNiArMTU1LDcgQEAgZ3Vlc3Rfd2Fs a190YWJsZXMoc3RydWN0IHZjcHUgKnYsIHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCiAgICAgZ3Vl c3RfbDNlX3QgKmwzcCA9IE5VTEw7CiAgICAgZ3Vlc3RfbDRlX3QgKmw0cDsKICNlbmRpZgorICAg IHVuc2lnbmVkIGludCBwa2V5OwogICAgIHVpbnQzMl90IGdmbGFncywgbWZsYWdzLCBpZmxhZ3Ms IHJjID0gMDsKICAgICBib29sX3Qgc21lcCA9IDAsIHNtYXAgPSAwOwogICAgIGJvb2xfdCBwc2Ux RyA9IDAsIHBzZTJNID0gMDsKQEAgLTE5MCw2ICsyMzksNyBAQCBndWVzdF93YWxrX3RhYmxlcyhz dHJ1Y3QgdmNwdSAqdiwgc3RydWN0IHAybV9kb21haW4gKnAybSwKICAgICAgICAgZ290byBvdXQ7 CiAgICAgLyogR2V0IHRoZSBsM2UgYW5kIGNoZWNrIGl0cyBmbGFncyovCiAgICAgZ3ctPmwzZSA9 IGwzcFtndWVzdF9sM190YWJsZV9vZmZzZXQodmEpXTsKKyAgICBwa2V5ID0gZ3Vlc3RfbDNlX2dl dF9wa2V5KGd3LT5sM2UpOwogICAgIGdmbGFncyA9IGd1ZXN0X2wzZV9nZXRfZmxhZ3MoZ3ctPmwz ZSkgXiBpZmxhZ3M7CiAgICAgaWYgKCAhKGdmbGFncyAmIF9QQUdFX1BSRVNFTlQpICkgewogICAg ICAgICByYyB8PSBfUEFHRV9QUkVTRU5UOwpAQCAtMjYxLDYgKzMxMSw3IEBAIGd1ZXN0X3dhbGtf dGFibGVzKHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLAogCiAjZW5kaWYg LyogQWxsIGxldmVscy4uLiAqLwogCisgICAgcGtleSA9IGd1ZXN0X2wyZV9nZXRfcGtleShndy0+ bDJlKTsKICAgICBnZmxhZ3MgPSBndWVzdF9sMmVfZ2V0X2ZsYWdzKGd3LT5sMmUpIF4gaWZsYWdz OwogICAgIGlmICggIShnZmxhZ3MgJiBfUEFHRV9QUkVTRU5UKSApIHsKICAgICAgICAgcmMgfD0g X1BBR0VfUFJFU0VOVDsKQEAgLTMyNCw2ICszNzUsNyBAQCBndWVzdF93YWxrX3RhYmxlcyhzdHJ1 Y3QgdmNwdSAqdiwgc3RydWN0IHAybV9kb21haW4gKnAybSwKICAgICAgICAgaWYobDFwID09IE5V TEwpCiAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgZ3ctPmwxZSA9IGwxcFtndWVzdF9s MV90YWJsZV9vZmZzZXQodmEpXTsKKyAgICAgICAgcGtleSA9IGd1ZXN0X2wxZV9nZXRfcGtleShn dy0+bDFlKTsKICAgICAgICAgZ2ZsYWdzID0gZ3Vlc3RfbDFlX2dldF9mbGFncyhndy0+bDFlKSBe IGlmbGFnczsKICAgICAgICAgaWYgKCAhKGdmbGFncyAmIF9QQUdFX1BSRVNFTlQpICkgewogICAg ICAgICAgICAgcmMgfD0gX1BBR0VfUFJFU0VOVDsKQEAgLTMzNCw2ICszODYsOCBAQCBndWVzdF93 YWxrX3RhYmxlcyhzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IHAybV9kb21haW4gKnAybSwKIAogI2lm IEdVRVNUX1BBR0lOR19MRVZFTFMgPj0gNCAvKiA2NC1iaXQgb25seS4uLiAqLwogc2V0X2FkOgor ICAgIGlmICggcGtleV9mYXVsdCh2LCBwZmVjLCBnZmxhZ3MsIHBrZXkpICkKKyAgICAgICAgcmMg fD0gX1BBR0VfUEtFWV9CSVRTOwogI2VuZGlmCiAgICAgLyogTm93IHJlLWludmVydCB0aGUgdXNl ci1tb2RlIHJlcXVpcmVtZW50IGZvciBTTUVQIGFuZCBTTUFQICovCiAgICAgaWYgKCBzbWVwIHx8 IHNtYXAgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL2hhcC9ndWVzdF93YWxrLmMgYi94 ZW4vYXJjaC94ODYvbW0vaGFwL2d1ZXN0X3dhbGsuYwppbmRleCAxMWMxYjM1Li40OWQwMzI4IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vaGFwL2d1ZXN0X3dhbGsuYworKysgYi94ZW4vYXJj aC94ODYvbW0vaGFwL2d1ZXN0X3dhbGsuYwpAQCAtMTMwLDYgKzEzMCw5IEBAIHVuc2lnbmVkIGxv bmcgaGFwX3AybV9nYV90b19nZm4oR1VFU1RfUEFHSU5HX0xFVkVMUykoCiAgICAgaWYgKCBtaXNz aW5nICYgX1BBR0VfSU5WQUxJRF9CSVRTICkgCiAgICAgICAgIHBmZWNbMF0gfD0gUEZFQ19yZXNl cnZlZF9iaXQ7CiAKKyAgICBpZiAoIG1pc3NpbmcgJiBfUEFHRV9QS0VZX0JJVFMgKQorICAgICAg ICBwZmVjWzBdIHw9IFBGRUNfcHJvdF9rZXk7CisKICAgICBpZiAoIG1pc3NpbmcgJiBfUEFHRV9Q QUdFRCApCiAgICAgICAgIHBmZWNbMF0gPSBQRkVDX3BhZ2VfcGFnZWQ7CiAKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Vlc3RfcHQuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Vl c3RfcHQuaAppbmRleCAzNDQ3OTczLi5lYjI5ZTYyIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L2d1ZXN0X3B0LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdF9wdC5oCkBA IC04MSw2ICs4MSwxMSBAQCBzdGF0aWMgaW5saW5lIHUzMiBndWVzdF9sMWVfZ2V0X2ZsYWdzKGd1 ZXN0X2wxZV90IGdsMWUpCiBzdGF0aWMgaW5saW5lIHUzMiBndWVzdF9sMmVfZ2V0X2ZsYWdzKGd1 ZXN0X2wyZV90IGdsMmUpCiB7IHJldHVybiBnbDJlLmwyICYgMHhmZmY7IH0KIAorc3RhdGljIGlu bGluZSB1MzIgZ3Vlc3RfbDFlX2dldF9wa2V5KGd1ZXN0X2wxZV90IGdsMWUpCit7IHJldHVybiAw OyB9CitzdGF0aWMgaW5saW5lIHUzMiBndWVzdF9sMmVfZ2V0X3BrZXkoZ3Vlc3RfbDJlX3QgZ2wy ZSkKK3sgcmV0dXJuIDA7IH0KKwogc3RhdGljIGlubGluZSBndWVzdF9sMWVfdCBndWVzdF9sMWVf ZnJvbV9nZm4oZ2ZuX3QgZ2ZuLCB1MzIgZmxhZ3MpCiB7IHJldHVybiAoZ3Vlc3RfbDFlX3QpIHsg KGdmbl94KGdmbikgPDwgUEFHRV9TSElGVCkgfCBmbGFncyB9OyB9CiBzdGF0aWMgaW5saW5lIGd1 ZXN0X2wyZV90IGd1ZXN0X2wyZV9mcm9tX2dmbihnZm5fdCBnZm4sIHUzMiBmbGFncykKQEAgLTE1 NCw2ICsxNTksMTMgQEAgc3RhdGljIGlubGluZSB1MzIgZ3Vlc3RfbDRlX2dldF9mbGFncyhndWVz dF9sNGVfdCBnbDRlKQogeyByZXR1cm4gbDRlX2dldF9mbGFncyhnbDRlKTsgfQogI2VuZGlmCiAK K3N0YXRpYyBpbmxpbmUgdTMyIGd1ZXN0X2wxZV9nZXRfcGtleShndWVzdF9sMWVfdCBnbDFlKQor eyByZXR1cm4gbDFlX2dldF9wa2V5KGdsMWUpOyB9CitzdGF0aWMgaW5saW5lIHUzMiBndWVzdF9s MmVfZ2V0X3BrZXkoZ3Vlc3RfbDJlX3QgZ2wyZSkKK3sgcmV0dXJuIGwyZV9nZXRfcGtleShnbDJl KTsgfQorc3RhdGljIGlubGluZSB1MzIgZ3Vlc3RfbDNlX2dldF9wa2V5KGd1ZXN0X2wzZV90IGds M2UpCit7IHJldHVybiBsM2VfZ2V0X3BrZXkoZ2wzZSk7IH0KKwogc3RhdGljIGlubGluZSBndWVz dF9sMWVfdCBndWVzdF9sMWVfZnJvbV9nZm4oZ2ZuX3QgZ2ZuLCB1MzIgZmxhZ3MpCiB7IHJldHVy biBsMWVfZnJvbV9wZm4oZ2ZuX3goZ2ZuKSwgZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIGd1ZXN0 X2wyZV90IGd1ZXN0X2wyZV9mcm9tX2dmbihnZm5fdCBnZm4sIHUzMiBmbGFncykKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9o dm0vaHZtLmgKaW5kZXggYTg3MjI0Yi4uNzMxZGQ0NCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9odm0vaHZtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmgKQEAg LTI3Nyw2ICsyNzcsOCBAQCBpbnQgaHZtX2dpcnFfZGVzdF8yX3ZjcHVfaWQoc3RydWN0IGRvbWFp biAqZCwgdWludDhfdCBkZXN0LCB1aW50OF90IGRlc3RfbW9kZSk7CiAgICAgKGh2bV9wYWdpbmdf ZW5hYmxlZCh2KSAmJiAoKHYpLT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzRdICYgWDg2X0NSNF9T TUFQKSkKICNkZWZpbmUgaHZtX254X2VuYWJsZWQodikgXAogICAgICghISgodiktPmFyY2guaHZt X3ZjcHUuZ3Vlc3RfZWZlciAmIEVGRVJfTlgpKQorI2RlZmluZSBodm1fcGt1X2VuYWJsZWQodikg XAorICAgIChodm1fcGFnaW5nX2VuYWJsZWQodikgJiYgKCh2KS0+YXJjaC5odm1fdmNwdS5ndWVz dF9jcls0XSAmIFg4Nl9DUjRfUEtFKSkKIAogLyogQ2FuIHdlIHVzZSBzdXBlcnBhZ2VzIGluIHRo ZSBIQVAgcDJtIHRhYmxlPyAqLwogI2RlZmluZSBoYXBfaGFzXzFnYiAoISEoaHZtX2Z1bmNzLmhh cF9jYXBhYmlsaXRpZXMgJiBIVk1fSEFQX1NVUEVSUEFHRV8xR0IpKQpkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaAppbmRl eCBhMDk1YTkzLi45MjAyZjNkIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2Uu aAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaApAQCAtOTMsNiArOTMsMTEgQEAKICNk ZWZpbmUgbDNlX2dldF9mbGFncyh4KSAgICAgICAgICAgKGdldF9wdGVfZmxhZ3MoKHgpLmwzKSkK ICNkZWZpbmUgbDRlX2dldF9mbGFncyh4KSAgICAgICAgICAgKGdldF9wdGVfZmxhZ3MoKHgpLmw0 KSkKIAorLyogR2V0IHB0ZSBwa2V5cyAodW5zaWduZWQgaW50KS4gKi8KKyNkZWZpbmUgbDFlX2dl dF9wa2V5KHgpICAgICAgICAgICBnZXRfcHRlX3BrZXkoKHgpLmwxKQorI2RlZmluZSBsMmVfZ2V0 X3BrZXkoeCkgICAgICAgICAgIGdldF9wdGVfcGtleSgoeCkubDIpCisjZGVmaW5lIGwzZV9nZXRf cGtleSh4KSAgICAgICAgICAgZ2V0X3B0ZV9wa2V5KCh4KS5sMykKKwogLyogQ29uc3RydWN0IGFu IGVtcHR5IHB0ZS4gKi8KICNkZWZpbmUgbDFlX2VtcHR5KCkgICAgICAgICAgICAgICAgKChsMV9w Z2VudHJ5X3QpIHsgMCB9KQogI2RlZmluZSBsMmVfZW1wdHkoKSAgICAgICAgICAgICAgICAoKGwy X3BnZW50cnlfdCkgeyAwIH0pCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3Byb2Nl c3Nvci5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaAppbmRleCAyNmJhMTQxLi45 Nzk5ZGQzIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oCisrKyBi L3hlbi9pbmNsdWRlL2FzbS14ODYvcHJvY2Vzc29yLmgKQEAgLTM3NCw2ICszNzQsNDYgQEAgc3Rh dGljIGFsd2F5c19pbmxpbmUgdm9pZCBjbGVhcl9pbl9jcjQgKHVuc2lnbmVkIGxvbmcgbWFzaykK ICAgICB3cml0ZV9jcjQocmVhZF9jcjQoKSAmIH5tYXNrKTsKIH0KIAorc3RhdGljIGlubGluZSB1 bnNpZ25lZCBpbnQgcmVhZF9wa3J1KHZvaWQpCit7CisgICAgdW5zaWduZWQgaW50IHBrcnU7Cisg ICAgdW5zaWduZWQgbG9uZyBjcjQgPSByZWFkX2NyNCgpOworCisgICAgLyoKKyAgICAgKiBfUEFH RV9QS0VZX0JJVFMgaGF2ZSBhIGNvbmZsaWN0IHdpdGggX1BBR0VfR05UVEFCIHVzZWQgYnkgUFYg Z3Vlc3RzLAorICAgICAqIHNvIHRoYXQgWDg2X0NSNF9QS0UgIGlzIGRpc2FibGVkIG9uIGh5cGVy dmlzb3IuIFRvIHVzZSBSRFBLUlUsIENSNC5QS0UKKyAgICAgKiBnZXRzIHRlbXBvcmFyaWx5IGVu YWJsZWQuCisgICAgICovCisgICAgd3JpdGVfY3I0KGNyNCB8IFg4Nl9DUjRfUEtFKTsKKyAgICBh c20gdm9sYXRpbGUgKCIuYnl0ZSAweDBmLDB4MDEsMHhlZSIKKyAgICAgICAgOiAiPWEiIChwa3J1 KSA6ICJjIiAoMCkgOiAiZHgiKTsKKyAgICB3cml0ZV9jcjQoY3I0KTsKKworICAgIHJldHVybiBw a3J1OworfQorCisvKiBNYWNyb3MgZm9yIFBLUlUgZG9tYWluICovCisjZGVmaW5lIFBLUlVfUkVB RCAgKDApCisjZGVmaW5lIFBLUlVfV1JJVEUgKDEpCisjZGVmaW5lIFBLUlVfQVRUUlMgKDIpCisK Ky8qCisgKiBQS1JVIGRlZmluZXMgMzIgYml0cywgdGhlcmUgYXJlIDE2IGRvbWFpbnMgYW5kIDIg YXR0cmlidXRlIGJpdHMgcGVyCisgKiBkb21haW4gaW4gcGtydSwgcGtleXMgaXMgaW5kZXggdG8g YSBkZWZpbmVkIGRvbWFpbiwgc28gdGhlIHZhbHVlIG9mCisgKiBwdGVfcGtleXMgKiBQS1JVX0FU VFJTICsgUi9XIGlzIG9mZnNldCBvZiBhIGRlZmluZWQgZG9tYWluIGF0dHJpYnV0ZS4KKyAqLwor c3RhdGljIGlubGluZSBib29sX3QgcmVhZF9wa3J1X2FkKHVpbnQzMl90IHBrcnUsIHVuc2lnbmVk IGludCBwa2V5KQoreworICAgIEFTU0VSVChwa2V5IDwgMTYpOworICAgIHJldHVybiAocGtydSA+ PiAocGtleSAqIFBLUlVfQVRUUlMgKyBQS1JVX1JFQUQpKSAmIDE7Cit9CisKK3N0YXRpYyBpbmxp bmUgYm9vbF90IHJlYWRfcGtydV93ZCh1aW50MzJfdCBwa3J1LCB1bnNpZ25lZCBpbnQgcGtleSkK K3sKKyAgICBBU1NFUlQocGtleSA8IDE2KTsKKyAgICByZXR1cm4gKHBrcnUgPj4gKHBrZXkgKiBQ S1JVX0FUVFJTICsgUEtSVV9XUklURSkpICYgMTsKK30KKwogLyoKICAqICAgICAgTlNDL0N5cml4 IENQVSBjb25maWd1cmF0aW9uIHJlZ2lzdGVyIGluZGV4ZXMKICAqLwpkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvYXNtLXg4Ni94ODZfNjQvcGFnZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni94ODZf NjQvcGFnZS5oCmluZGV4IDE5YWI0ZDAuLjg2YWJiOTQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRl L2FzbS14ODYveDg2XzY0L3BhZ2UuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3g4Nl82NC9w YWdlLmgKQEAgLTEzNCw2ICsxMzQsMTggQEAgdHlwZWRlZiBsNF9wZ2VudHJ5X3Qgcm9vdF9wZ2Vu dHJ5X3Q7CiAjZGVmaW5lIGdldF9wdGVfZmxhZ3MoeCkgKCgoaW50KSgoeCkgPj4gNDApICYgfjB4 RkZGKSB8ICgoaW50KSh4KSAmIDB4RkZGKSkKICNkZWZpbmUgcHV0X3B0ZV9mbGFncyh4KSAoKChp bnRwdGVfdCkoKHgpICYgfjB4RkZGKSA8PCA0MCkgfCAoKHgpICYgMHhGRkYpKQogCisvKgorICog UHJvdGVjdGlvbiBrZXlzIGRlZmluZSBhIG5ldyA0LWJpdCBwcm90ZWN0aW9uIGtleSBmaWVsZAor ICogKFBLRVkpIGluIGJpdHMgNjI6NTkgb2YgbGVhZiBlbnRyaWVzIG9mIHRoZSBwYWdlIHRhYmxl cy4KKyAqIFRoaXMgY29ycmVzcG9uZHMgdG8gYml0IDIyOjE5IG9mIGEgMjQtYml0IGZsYWdzLgor ICoKKyAqIE5vdGljZTogQml0IDIyIGlzIHVzZWQgYnkgX1BBR0VfR05UVEFCIHdoaWNoIGlzIHZp c2libGUgdG8gUFYgZ3Vlc3RzLAorICogc28gUHJvdGVjdGlvbiBrZXlzIG11c3QgYmUgZGlzYWJs ZWQgb24gUFYgZ3Vlc3RzLgorICovCisjZGVmaW5lIF9QQUdFX1BLRVlfQklUUyAgKDB4NzgwMDAw KQkgLyogUHJvdGVjdGlvbiBLZXlzLCAyMjoxOSAqLworCisjZGVmaW5lIGdldF9wdGVfcGtleSh4 KSAoTUFTS19FWFRSKGdldF9wdGVfZmxhZ3MoeCksIF9QQUdFX1BLRVlfQklUUykpCisKIC8qIEJp dCAyMyBvZiBhIDI0LWJpdCBmbGFnIG1hc2suIFRoaXMgY29ycmVzcG9uZHMgdG8gYml0IDYzIG9m IGEgcHRlLiovCiAjZGVmaW5lIF9QQUdFX05YX0JJVCAoMVU8PDIzKQogCi0tIAoyLjQuMwoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==