From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 5/9] x86/pagewalk: Helpers for reserved bit handling Date: Thu, 16 Mar 2017 16:31:39 +0000 Message-ID: <1489681903-28119-6-git-send-email-andrew.cooper3@citrix.com> References: <1489681903-28119-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1489681903-28119-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: George Dunlap , Andrew Cooper , Tim Deegan , Jan Beulich List-Id: xen-devel@lists.xenproject.org U29tZSBiaXRzIGFyZSB1bmNvbmRpdGlvbmFsbHkgcmVzZXJ2ZWQgaW4gcGFnZXRhYmxlIGVudHJp ZXMsIG9yIHJlc2VydmVkCmJlY2F1c2Ugb2YgYWxpZ25tZW50IHJlc3RyaWN0aW9ucy4gIE90aGVy IGJpdHMgYXJlIHJlc2VydmVkIGJlY2F1c2Ugb2YgY29udHJvbApyZWdpc3RlciBjb25maWd1cmF0 aW9uLgoKSW50cm9kdWNlIGhlbHBlcnMgd2hpY2ggdGFrZSBhbiBpbmRpdmlkdWFsIHZjcHUgYW5k IGd1ZXN0IHBhZ2V0YWJsZSBlbnRyeSwgYW5kCmNhbGN1bGF0ZXMgd2hldGhlciBhbnkgcmVzZXJ2 ZWQgYml0cyBhcmUgc2V0LgoKV2hpbGUgaGVyZSwgYWRkIGEgY291cGxlIG9mIG5ld2xpbmVzIHRv IGFpZCByZWFkYWJpbGl0eS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5j b29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29t PgpDQzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgpDQzogVGlt IERlZWdhbiA8dGltQHhlbi5vcmc+Cgp2MjoKICogQ2xlYW51cCBzcGxpdCBvdXQgdG8gZWFybGll ciBwYXRjaGVzLgogKiBTd2l0Y2ggZ3Vlc3Rfc3VwcG9ydHNfcHNlMzYoKSB0byB0YWtlIGEgZG9t YWluLCBhbmQgaW5oZXJpdCBoYXJkd2FyZXMgcHNlMzYKICAgc2V0dGluZy4KLS0tCiB4ZW4vaW5j bHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaCB8ICAxICsKIHhlbi9pbmNsdWRlL2FzbS14ODYvZ3Vl c3RfcHQuaCAgIHwgOTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MiBmaWxlcyBjaGFuZ2VkLCA5NyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9jcHVmZWF0dXJlLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUu aAppbmRleCA1OTc4NzgzLi44NGNjNTFkIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2 L2NwdWZlYXR1cmUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaApAQCAt MzgsNiArMzgsNyBAQAogI2RlZmluZSBjcHVfaGFzX210cnIgICAgICAgICAgICAxCiAjZGVmaW5l IGNwdV9oYXNfcGdlICAgICAgICAgICAgIDEKICNkZWZpbmUgY3B1X2hhc19wYXQgICAgICAgICAg ICAgMQorI2RlZmluZSBjcHVfaGFzX3BzZTM2ICAgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZF QVRVUkVfUFNFMzYpCiAjZGVmaW5lIGNwdV9oYXNfY2xmbHVzaCAgICAgICAgIGJvb3RfY3B1X2hh cyhYODZfRkVBVFVSRV9DTEZMVVNIKQogI2RlZmluZSBjcHVfaGFzX21teCAgICAgICAgICAgICAx CiAjZGVmaW5lIGNwdV9oYXNfaHR0ICAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVS RV9IVFQpCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0X3B0LmggYi94ZW4v aW5jbHVkZS9hc20teDg2L2d1ZXN0X3B0LmgKaW5kZXggNDMwNjFiNy4uNGU1MDE4ZCAxMDA2NDQK LS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdF9wdC5oCisrKyBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvZ3Vlc3RfcHQuaApAQCAtNDIsNiArNDIsMTggQEAgZ2ZuX3RvX3BhZGRyKGdmbl90IGdm bikKICN1bmRlZiBnZXRfZ2ZuCiAjZGVmaW5lIGdldF9nZm4oZCwgZywgdCkgZ2V0X2dmbl90eXBl KChkKSwgZ2ZuX3goZyksICh0KSwgUDJNX0FMTE9DKQogCisvKiBNYXNrIGNvdmVyaW5nIHRoZSBy ZXNlcnZlZCBiaXRzIGZyb20gc3VwZXJwYWdlIGFsaWdubWVudC4gKi8KKyNkZWZpbmUgU1VQRVJQ QUdFX1JTVkQoYml0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAoKCgxVUxMIDw8IChiaXQpKSAtIDEpICYgfihfUEFHRV9QU0VfUEFUIHwgKF9QQUdF X1BTRV9QQVQgLSAxKSkpCisKK3N0YXRpYyBpbmxpbmUgdWludDMyX3QgZm9sZF9wc2UzNih1aW50 NjRfdCB2YWwpCit7CisgICAgcmV0dXJuICh2YWwgJiB+KDB4MWZmVUxMIDw8IDEzKSkgfCAoKHZh bCAmICgweDFmZlVMTCA8PCAzMikpID4+ICgzMiAtIDEzKSk7Cit9CitzdGF0aWMgaW5saW5lIHVp bnQ2NF90IHVuZm9sZF9wc2UzNih1aW50MzJfdCB2YWwpCit7CisgICAgcmV0dXJuICh2YWwgJiB+ KDB4MWZmVUxMIDw8IDEzKSkgfCAoKHZhbCAmICgweDFmZlVMTCA8PCAxMykpIDw8ICgzMiAtIDEz KSk7Cit9CiAKIC8qIFR5cGVzIG9mIHRoZSBndWVzdCdzIHBhZ2UgdGFibGVzIGFuZCBhY2Nlc3Mg ZnVuY3Rpb25zIGZvciB0aGVtICovCiAKQEAgLTQ5LDkgKzYxLDEzIEBAIGdmbl90b19wYWRkcihn Zm5fdCBnZm4pCiAKICNkZWZpbmUgR1VFU1RfTDFfUEFHRVRBQkxFX0VOVFJJRVMgICAgIDEwMjQK ICNkZWZpbmUgR1VFU1RfTDJfUEFHRVRBQkxFX0VOVFJJRVMgICAgIDEwMjQKKwogI2RlZmluZSBH VUVTVF9MMV9QQUdFVEFCTEVfU0hJRlQgICAgICAgICAxMgogI2RlZmluZSBHVUVTVF9MMl9QQUdF VEFCTEVfU0hJRlQgICAgICAgICAyMgogCisjZGVmaW5lIEdVRVNUX0wxX1BBR0VUQUJMRV9SU1ZE ICAgICAgICAgICAwCisjZGVmaW5lIEdVRVNUX0wyX1BBR0VUQUJMRV9SU1ZEICAgICAgICAgICAw CisKIHR5cGVkZWYgdWludDMyX3QgZ3Vlc3RfaW50cHRlX3Q7CiB0eXBlZGVmIHN0cnVjdCB7IGd1 ZXN0X2ludHB0ZV90IGwxOyB9IGd1ZXN0X2wxZV90OwogdHlwZWRlZiBzdHJ1Y3QgeyBndWVzdF9p bnRwdGVfdCBsMjsgfSBndWVzdF9sMmVfdDsKQEAgLTg2LDIxICsxMDIsMzkgQEAgc3RhdGljIGlu bGluZSBndWVzdF9sMmVfdCBndWVzdF9sMmVfZnJvbV9nZm4oZ2ZuX3QgZ2ZuLCB1MzIgZmxhZ3Mp CiAjZWxzZSAvKiBHVUVTVF9QQUdJTkdfTEVWRUxTICE9IDIgKi8KIAogI2lmIEdVRVNUX1BBR0lO R19MRVZFTFMgPT0gMworCiAjZGVmaW5lIEdVRVNUX0wxX1BBR0VUQUJMRV9FTlRSSUVTICAgICAg NTEyCiAjZGVmaW5lIEdVRVNUX0wyX1BBR0VUQUJMRV9FTlRSSUVTICAgICAgNTEyCiAjZGVmaW5l IEdVRVNUX0wzX1BBR0VUQUJMRV9FTlRSSUVTICAgICAgICA0CisKICNkZWZpbmUgR1VFU1RfTDFf UEFHRVRBQkxFX1NISUZUICAgICAgICAgMTIKICNkZWZpbmUgR1VFU1RfTDJfUEFHRVRBQkxFX1NI SUZUICAgICAgICAgMjEKICNkZWZpbmUgR1VFU1RfTDNfUEFHRVRBQkxFX1NISUZUICAgICAgICAg MzAKKworI2RlZmluZSBHVUVTVF9MMV9QQUdFVEFCTEVfUlNWRCAgICAgICAgICAgIDB4N2ZmMDAw MDAwMDAwMDAwMFVMCisjZGVmaW5lIEdVRVNUX0wyX1BBR0VUQUJMRV9SU1ZEICAgICAgICAgICAg MHg3ZmYwMDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgR1VFU1RfTDNfUEFHRVRBQkxFX1JTVkQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoMHhmZmYwMDAwMDAwMDAw MDAwVUwgfCBfUEFHRV9HTE9CQUwgfCBfUEFHRV9QU0UgfCBfUEFHRV9ESVJUWSB8IFwKKyAgICAg X1BBR0VfQUNDRVNTRUQgfCBfUEFHRV9VU0VSIHwgX1BBR0VfUlcpCisKICNlbHNlIC8qIEdVRVNU X1BBR0lOR19MRVZFTFMgPT0gNCAqLworCiAjZGVmaW5lIEdVRVNUX0wxX1BBR0VUQUJMRV9FTlRS SUVTICAgICAgNTEyCiAjZGVmaW5lIEdVRVNUX0wyX1BBR0VUQUJMRV9FTlRSSUVTICAgICAgNTEy CiAjZGVmaW5lIEdVRVNUX0wzX1BBR0VUQUJMRV9FTlRSSUVTICAgICAgNTEyCiAjZGVmaW5lIEdV RVNUX0w0X1BBR0VUQUJMRV9FTlRSSUVTICAgICAgNTEyCisKICNkZWZpbmUgR1VFU1RfTDFfUEFH RVRBQkxFX1NISUZUICAgICAgICAgMTIKICNkZWZpbmUgR1VFU1RfTDJfUEFHRVRBQkxFX1NISUZU ICAgICAgICAgMjEKICNkZWZpbmUgR1VFU1RfTDNfUEFHRVRBQkxFX1NISUZUICAgICAgICAgMzAK ICNkZWZpbmUgR1VFU1RfTDRfUEFHRVRBQkxFX1NISUZUICAgICAgICAgMzkKKworI2RlZmluZSBH VUVTVF9MMV9QQUdFVEFCTEVfUlNWRCAgICAgICAgICAgIDAKKyNkZWZpbmUgR1VFU1RfTDJfUEFH RVRBQkxFX1JTVkQgICAgICAgICAgICAwCisjZGVmaW5lIEdVRVNUX0wzX1BBR0VUQUJMRV9SU1ZE ICAgICAgICAgICAgMAorLyogTkIgTDRlLl9QQUdFX0dMT0JBTCBpcyByZXNlcnZlZCBmb3IgQU1E LCBidXQgaWdub3JlZCBmb3IgSW50ZWwuICovCisjZGVmaW5lIEdVRVNUX0w0X1BBR0VUQUJMRV9S U1ZEICAgICAgICAgICAgX1BBR0VfUFNFCisKICNlbmRpZgogCiB0eXBlZGVmIGwxX3BnZW50cnlf dCBndWVzdF9sMWVfdDsKQEAgLTE4Miw2ICsyMTYsMjEgQEAgc3RhdGljIGlubGluZSBib29sIGd1 ZXN0X3N1cHBvcnRzX2wyX3N1cGVycGFnZXMoY29uc3Qgc3RydWN0IHZjcHUgKnYpCiAgICAgICAg ICAgICAgICB8fCAodi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jcls0XSAmIFg4Nl9DUjRfUFNFKSkp OwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgZ3Vlc3Rfc3VwcG9ydHNfcHNlMzYoY29uc3Qgc3Ry dWN0IGRvbWFpbiAqZCkKK3sKKyAgICAvKgorICAgICAqIE9ubHkgY2FsbGVkIGluIHRoZSBjb250 ZXh0IG9mIDItbGV2ZWwgZ3Vlc3RzLCBhZnRlcgorICAgICAqIGd1ZXN0X3N1cHBvcnRzX2wyX3N1 cGVycGFnZXMoKSBoYXMgaW5kaWNhdGVkIHRydWUuCisgICAgICoKKyAgICAgKiBPbmNlIEwyIHN1 cGVycGFnZXMgYXJlIGFjdGl2ZSwgaGVyZSBhcmUgbm8gY29udHJvbCByZWdpc3RlciBzZXR0aW5n cworICAgICAqIGZvciB0aGUgaGFyZHdhcmUgcGFnZXdhbGsgb24gdGhlIHN1YmplY3Qgb2YgUFNF MzYuICBJZiB0aGUgZ3Vlc3QKKyAgICAgKiBjb25zdHJ1Y3RzIGEgUFNFMzYgc3VwZXJwYWdlIG9u IGNhcGFibGUgaGFyZHdhcmUsIGl0IHdpbGwgZnVuY3Rpb24KKyAgICAgKiBpcnJlc3BlY3RpdmUg b2Ygd2hldGhlciB0aGUgZmVhdHVyZSBpcyBhZHZlcnRpc2VkLiAgWGVuJ3MgbW9kZWwgb2YKKyAg ICAgKiBwZXJmb3JtaW5nIGEgcGFnZXdhbGsgc2hvdWxkIG1hdGNoLgorICAgICAqLworICAgIHJl dHVybiBwYWdpbmdfbW9kZV9oYXAoZCkgJiYgY3B1X2hhc19wc2UzNjsKK30KKwogc3RhdGljIGlu bGluZSBib29sIGd1ZXN0X3N1cHBvcnRzX2wzX3N1cGVycGFnZXMoY29uc3Qgc3RydWN0IGRvbWFp biAqZCkKIHsKICAgICAvKgpAQCAtMjE4LDYgKzI2Nyw1MyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg Z3Vlc3Rfc3VwcG9ydHNfbngoY29uc3Qgc3RydWN0IHZjcHUgKnYpCiAjZGVmaW5lIF9QQUdFX0lO VkFMSURfQklUUyBfUEFHRV9JTlZBTElEX0JJVAogI2VuZGlmCiAKKy8qIEhlbHBlcnMgZm9yIGlk ZW50aWZ5aW5nIHdoZXRoZXIgZ3Vlc3QgZW50cmllcyBoYXZlIHJlc2VydmVkIGJpdHMgc2V0LiAq LworCisvKiBCaXRzIHJlc2VydmVkIGJlY2F1c2Ugb2YgbWF4cGh5c2FkZHIsIGFuZCAobGFjayBv ZikgRUZFUi5OWCAqLworc3RhdGljIGlubGluZSB1aW50NjRfdCBndWVzdF9yc3ZkX2JpdHMoY29u c3Qgc3RydWN0IHZjcHUgKnYpCit7CisgICAgcmV0dXJuICgoUEFERFJfTUFTSyAmCisgICAgICAg ICAgICAgfigoMVVMIDw8IHYtPmRvbWFpbi0+YXJjaC5jcHVpZC0+ZXh0ZC5tYXhwaHlzYWRkcikg LSAxKSkgfAorICAgICAgICAgICAgKGd1ZXN0X3N1cHBvcnRzX254KHYpID8gMCA6IHB1dF9wdGVf ZmxhZ3MoX1BBR0VfTlhfQklUKSkpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgZ3Vlc3RfbDFl X3JzdmRfYml0cyhjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgZ3Vlc3RfbDFlX3QgbDFlKQoreworICAg IHJldHVybiBsMWUubDEgJiAoZ3Vlc3RfcnN2ZF9iaXRzKHYpIHwgR1VFU1RfTDFfUEFHRVRBQkxF X1JTVkQpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgZ3Vlc3RfbDJlX3JzdmRfYml0cyhjb25z dCBzdHJ1Y3QgdmNwdSAqdiwgZ3Vlc3RfbDJlX3QgbDJlKQoreworICAgIHVpbnQ2NF90IHJzdmRf Yml0cyA9IGd1ZXN0X3JzdmRfYml0cyh2KTsKKworICAgIHJldHVybiAoKGwyZS5sMiAmIChyc3Zk X2JpdHMgfCBHVUVTVF9MMl9QQUdFVEFCTEVfUlNWRCB8CisgICAgICAgICAgICAgICAgICAgICAg IChndWVzdF9zdXBwb3J0c19sMl9zdXBlcnBhZ2VzKHYpID8gMCA6IF9QQUdFX1BTRSkpKSB8fAor ICAgICAgICAgICAgKChsMmUubDIgJiBfUEFHRV9QU0UpICYmCisgICAgICAgICAgICAgKGwyZS5s MiAmICgoR1VFU1RfUEFHSU5HX0xFVkVMUyA9PSAyICYmCisgICAgICAgICAgICAgICAgICAgICAg ICAgZ3Vlc3Rfc3VwcG9ydHNfcHNlMzYodi0+ZG9tYWluKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogUFNFMzYgdG9wcyBvdXQgYXQgNDAgYml0cyBvZiBhZGRyZXNzIHdpZHRoLiAqLwor ICAgICAgICAgICAgICAgICAgICAgICAgPyAoZm9sZF9wc2UzNihyc3ZkX2JpdHMgfCAoMVVMTCA8 PCA0MCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgOiBTVVBFUlBBR0VfUlNWRChHVUVTVF9M Ml9QQUdFVEFCTEVfU0hJRlQpKSkpKTsKK30KKworI2lmIEdVRVNUX1BBR0lOR19MRVZFTFMgPj0g Mworc3RhdGljIGlubGluZSBib29sIGd1ZXN0X2wzZV9yc3ZkX2JpdHMoY29uc3Qgc3RydWN0IHZj cHUgKnYsIGd1ZXN0X2wzZV90IGwzZSkKK3sKKyAgICByZXR1cm4gKChsM2UubDMgJiAoZ3Vlc3Rf cnN2ZF9iaXRzKHYpIHwgR1VFU1RfTDNfUEFHRVRBQkxFX1JTVkQgfAorICAgICAgICAgICAgICAg ICAgICAgICAoZ3Vlc3Rfc3VwcG9ydHNfbDNfc3VwZXJwYWdlcyh2LT5kb21haW4pID8gMCA6IF9Q QUdFX1BTRSkpKSB8fAorICAgICAgICAgICAgKChsM2UubDMgJiBfUEFHRV9QU0UpICYmCisgICAg ICAgICAgICAgKGwzZS5sMyAmIFNVUEVSUEFHRV9SU1ZEKEdVRVNUX0wzX1BBR0VUQUJMRV9TSElG VCkpKSk7Cit9CisKKyNpZiBHVUVTVF9QQUdJTkdfTEVWRUxTID49IDQKK3N0YXRpYyBpbmxpbmUg Ym9vbCBndWVzdF9sNGVfcnN2ZF9iaXRzKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCBndWVzdF9sNGVf dCBsNGUpCit7CisgICAgcmV0dXJuIGw0ZS5sNCAmIChndWVzdF9yc3ZkX2JpdHModikgfCBHVUVT VF9MNF9QQUdFVEFCTEVfUlNWRCB8CisgICAgICAgICAgICAgICAgICAgICAoKHYtPmRvbWFpbi0+ YXJjaC5jcHVpZC0+eDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0FNRCkKKyAgICAgICAgICAgICAg ICAgICAgICA/IF9QQUdFX0dMT0JBTCA6IDApKTsKK30KKyNlbmRpZiAvKiBHVUVTVF9QQUdJTkdf TEVWRUxTID49IDQgKi8KKyNlbmRpZiAvKiBHVUVTVF9QQUdJTkdfTEVWRUxTID49IDMgKi8KIAog LyogVHlwZSB1c2VkIGZvciByZWNvcmRpbmcgYSB3YWxrIHRocm91Z2ggZ3Vlc3QgcGFnZXRhYmxl cy4gIEl0IGlzCiAgKiBmaWxsZWQgaW4gYnkgdGhlIHBhZ2V0YWJsZSB3YWxrIGZ1bmN0aW9uLCBh bmQgYWxzbyB1c2VkIGFzIGEgY2FjaGUKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==