From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Lendacky Subject: [PATCH v7 36/36] x86/mm: Add support to make use of Secure Memory Encryption Date: Fri, 16 Jun 2017 13:56:39 -0500 Message-ID: <20170616185639.18967.41488.stgit__35035.8763164424$1497639462$gmane$org@tlendack-t1.amdoffice.net> References: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: linux-arch@vger.kernel.org, linux-efi@vger.kernel.org, kvm@vger.kernel.org, linux-doc@vger.kernel.org, x86@kernel.org, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, xen-devel@lists.xen.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org Cc: Brijesh Singh , Toshimitsu Kani , "Michael S. Tsirkin" , Matt Fleming , Alexander Potapenko , "H. Peter Anvin" , Boris Ostrovsky , Jonathan Corbet , Joerg Roedel , Radim =?utf-8?b?S3LEjW3DocWZ?= , Larry Woodman , Ingo Molnar , Andrey Ryabinin , Dave Young , Rik van Riel , Arnd Bergmann , Borislav Petkov , Andy Lutomirski , Thomas Gleixner , Dmitry Vyukov , Juergen Gross , Paolo Bonzini List-Id: xen-devel@lists.xenproject.org QWRkIHN1cHBvcnQgdG8gY2hlY2sgaWYgU01FIGhhcyBiZWVuIGVuYWJsZWQgYW5kIGlmIG1lbW9y eSBlbmNyeXB0aW9uCnNob3VsZCBiZSBhY3RpdmF0ZWQgKGNoZWNraW5nIG9mIGNvbW1hbmQgbGlu ZSBvcHRpb24gYmFzZWQgb24gdGhlCmNvbmZpZ3VyYXRpb24gb2YgdGhlIGRlZmF1bHQgc3RhdGUp LiAgSWYgbWVtb3J5IGVuY3J5cHRpb24gaXMgdG8gYmUKYWN0aXZhdGVkLCB0aGVuIHRoZSBlbmNy eXB0aW9uIG1hc2sgaXMgc2V0IGFuZCB0aGUga2VybmVsIGlzIGVuY3J5cHRlZAoiaW4gcGxhY2Uu IgoKU2lnbmVkLW9mZi1ieTogVG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4K LS0tCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9tZW1fZW5jcnlwdC5oIHwgICAgNiArKy0KIGFyY2gv eDg2L2tlcm5lbC9oZWFkNjQuYyAgICAgICAgICAgfCAgICA0ICstCiBhcmNoL3g4Ni9tbS9tZW1f ZW5jcnlwdC5jICAgICAgICAgIHwgICA4NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tZW1fZW5jcnlwdC5oIGIvYXJjaC94 ODYvaW5jbHVkZS9hc20vbWVtX2VuY3J5cHQuaAppbmRleCA3ZGE2ZGUzLi5hYWM5ZWQ5IDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tZW1fZW5jcnlwdC5oCisrKyBiL2FyY2gveDg2 L2luY2x1ZGUvYXNtL21lbV9lbmNyeXB0LmgKQEAgLTE3LDYgKzE3LDggQEAKIAogI2luY2x1ZGUg PGxpbnV4L2luaXQuaD4KIAorI2luY2x1ZGUgPGFzbS9ib290cGFyYW0uaD4KKwogI2lmZGVmIENP TkZJR19BTURfTUVNX0VOQ1JZUFQKIAogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc21lX21lX21hc2s7 CkBAIC0zNyw3ICszOSw3IEBAIHZvaWQgX19pbml0IHNtZV9lYXJseV9kZWNyeXB0KHJlc291cmNl X3NpemVfdCBwYWRkciwKIAogdm9pZCBfX2luaXQgc21lX2Vhcmx5X2luaXQodm9pZCk7CiAKLXZv aWQgX19pbml0IHNtZV9lbmFibGUodm9pZCk7Cit2b2lkIF9faW5pdCBzbWVfZW5hYmxlKHN0cnVj dCBib290X3BhcmFtcyAqYnApOwogCiAvKiBBcmNoaXRlY3R1cmUgX193ZWFrIHJlcGxhY2VtZW50 IGZ1bmN0aW9ucyAqLwogdm9pZCBfX2luaXQgbWVtX2VuY3J5cHRfaW5pdCh2b2lkKTsKQEAgLTU4 LDcgKzYwLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIF9faW5pdCBzbWVfdW5tYXBfYm9vdGRhdGEo Y2hhciAqcmVhbF9tb2RlX2RhdGEpIHsgfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgX19pbml0IHNt ZV9lYXJseV9pbml0KHZvaWQpIHsgfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgX19pbml0IHNtZV9l bmFibGUodm9pZCkgeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgX19pbml0IHNtZV9lbmFibGUoc3Ry dWN0IGJvb3RfcGFyYW1zICpicCkgeyB9CiAKICNlbmRpZgkvKiBDT05GSUdfQU1EX01FTV9FTkNS WVBUICovCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9oZWFkNjQuYyBiL2FyY2gveDg2 L2tlcm5lbC9oZWFkNjQuYwppbmRleCA5ZTk0ZWQyLi4xZmYyZTk4IDEwMDY0NAotLS0gYS9hcmNo L3g4Ni9rZXJuZWwvaGVhZDY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2hlYWQ2NC5jCkBAIC00 Myw3ICs0Myw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCAqZml4dXBfcG9pbnRlcih2b2lkICpwdHIs IHVuc2lnbmVkIGxvbmcgcGh5c2FkZHIpCiAJcmV0dXJuIHB0ciAtICh2b2lkICopX3RleHQgKyAo dm9pZCAqKXBoeXNhZGRyOwogfQogCi12b2lkIF9faW5pdCBfX3N0YXJ0dXBfNjQodW5zaWduZWQg bG9uZyBwaHlzYWRkcikKK3ZvaWQgX19pbml0IF9fc3RhcnR1cF82NCh1bnNpZ25lZCBsb25nIHBo eXNhZGRyLCBzdHJ1Y3QgYm9vdF9wYXJhbXMgKmJwKQogewogCXVuc2lnbmVkIGxvbmcgbG9hZF9k ZWx0YSwgKnA7CiAJdW5zaWduZWQgbG9uZyBwZ3RhYmxlX2ZsYWdzOwpAQCAtNjgsNyArNjgsNyBA QCB2b2lkIF9faW5pdCBfX3N0YXJ0dXBfNjQodW5zaWduZWQgbG9uZyBwaHlzYWRkcikKIAkJZm9y ICg7Oyk7CiAKIAkvKiBBY3RpdmF0ZSBTZWN1cmUgTWVtb3J5IEVuY3J5cHRpb24gKFNNRSkgaWYg c3VwcG9ydGVkIGFuZCBlbmFibGVkICovCi0Jc21lX2VuYWJsZSgpOworCXNtZV9lbmFibGUoYnAp OwogCiAJLyogSW5jbHVkZSB0aGUgU01FIGVuY3J5cHRpb24gbWFzayBpbiB0aGUgZml4dXAgdmFs dWUgKi8KIAlsb2FkX2RlbHRhICs9IHNtZV9nZXRfbWVfbWFzaygpOwpkaWZmIC0tZ2l0IGEvYXJj aC94ODYvbW0vbWVtX2VuY3J5cHQuYyBiL2FyY2gveDg2L21tL21lbV9lbmNyeXB0LmMKaW5kZXgg NmU4NzY2Mi4uMTNmNzgwZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vbWVtX2VuY3J5cHQuYwor KysgYi9hcmNoL3g4Ni9tbS9tZW1fZW5jcnlwdC5jCkBAIC0xMywxOSArMTMsMzQgQEAKICNpbmNs dWRlIDxsaW51eC9saW5rYWdlLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogCisjaW5jbHVk ZSA8YXNtL2Jvb3RwYXJhbS5oPgorCiAjaWZkZWYgQ09ORklHX0FNRF9NRU1fRU5DUllQVAogCiAj aW5jbHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2lu Y2x1ZGUgPGxpbnV4L3N3aW90bGIuaD4KKyNpbmNsdWRlIDxsaW51eC9tZW1fZW5jcnlwdC5oPgog CiAjaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+CiAjaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPgogI2lu Y2x1ZGUgPGFzbS9zZXR1cC5oPgotI2luY2x1ZGUgPGFzbS9ib290cGFyYW0uaD4KICNpbmNsdWRl IDxhc20vc2V0X21lbW9yeS5oPgogI2luY2x1ZGUgPGFzbS9jYWNoZWZsdXNoLmg+CiAjaW5jbHVk ZSA8YXNtL3NlY3Rpb25zLmg+CisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci1mbGFncy5oPgorI2lu Y2x1ZGUgPGFzbS9tc3IuaD4KKyNpbmNsdWRlIDxhc20vY21kbGluZS5oPgorCisvKgorICogU29t ZSBTTUUgZnVuY3Rpb25zIHJ1biB2ZXJ5IGVhcmx5IGNhdXNpbmcgaXNzdWVzIHdpdGggdGhlIHN0 YWNrLXByb3RlY3RvcgorICogc3VwcG9ydC4gUHJvdmlkZSBhIHdheSB0byB0dXJuIG9mZiB0aGlz IHN1cHBvcnQgb24gYSBwZXItZnVuY3Rpb24gYmFzaXMuCisgKi8KKyNkZWZpbmUgU01FX05PU1RB Q0tQIF9fYXR0cmlidXRlX18oKF9fb3B0aW1pemVfXygibm8tc3RhY2stcHJvdGVjdG9yIikpKQor CitzdGF0aWMgY2hhciBzbWVfY21kbGluZV9hcmdbXSBfX2luaXRkYXRhID0gIm1lbV9lbmNyeXB0 IjsKK3N0YXRpYyBjaGFyIHNtZV9jbWRsaW5lX29uW10gIF9faW5pdGRhdGEgPSAib24iOworc3Rh dGljIGNoYXIgc21lX2NtZGxpbmVfb2ZmW10gX19pbml0ZGF0YSA9ICJvZmYiOwogCiAvKgogICog U2luY2UgU01FIHJlbGF0ZWQgdmFyaWFibGVzIGFyZSBzZXQgZWFybHkgaW4gdGhlIGJvb3QgcHJv Y2VzcyB0aGV5IG11c3QKQEAgLTIwMCw2ICsyMTUsOCBAQCB2b2lkIF9faW5pdCBtZW1fZW5jcnlw dF9pbml0KHZvaWQpCiAKIAkvKiBDYWxsIGludG8gU1dJT1RMQiB0byB1cGRhdGUgdGhlIFNXSU9U TEIgRE1BIGJ1ZmZlcnMgKi8KIAlzd2lvdGxiX3VwZGF0ZV9tZW1fYXR0cmlidXRlcygpOworCisJ cHJfaW5mbygiQU1EIFNlY3VyZSBNZW1vcnkgRW5jcnlwdGlvbiAoU01FKSBhY3RpdmVcbiIpOwog fQogCiB2b2lkIHN3aW90bGJfc2V0X21lbV9hdHRyaWJ1dGVzKHZvaWQgKnZhZGRyLCB1bnNpZ25l ZCBsb25nIHNpemUpCkBAIC01MjcsOCArNTQ0LDczIEBAIHZvaWQgX19pbml0IHNtZV9lbmNyeXB0 X2tlcm5lbCh2b2lkKQogCW5hdGl2ZV93cml0ZV9jcjMoX19uYXRpdmVfcmVhZF9jcjMoKSk7CiB9 CiAKLXZvaWQgX19pbml0IHNtZV9lbmFibGUodm9pZCkKK3ZvaWQgX19pbml0IFNNRV9OT1NUQUNL UCBzbWVfZW5hYmxlKHN0cnVjdCBib290X3BhcmFtcyAqYnApCiB7CisJY29uc3QgY2hhciAqY21k bGluZV9wdHIsICpjbWRsaW5lX2FyZywgKmNtZGxpbmVfb24sICpjbWRsaW5lX29mZjsKKwl1bnNp Z25lZCBpbnQgZWF4LCBlYngsIGVjeCwgZWR4OworCWJvb2wgYWN0aXZlX2J5X2RlZmF1bHQ7CisJ dW5zaWduZWQgbG9uZyBtZV9tYXNrOworCWNoYXIgYnVmZmVyWzE2XTsKKwl1NjQgbXNyOworCisJ LyogQ2hlY2sgZm9yIHRoZSBTTUUgc3VwcG9ydCBsZWFmICovCisJZWF4ID0gMHg4MDAwMDAwMDsK KwllY3ggPSAwOworCW5hdGl2ZV9jcHVpZCgmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsKKwlpZiAo ZWF4IDwgMHg4MDAwMDAxZikKKwkJcmV0dXJuOworCisJLyoKKwkgKiBDaGVjayBmb3IgdGhlIFNN RSBmZWF0dXJlOgorCSAqICAgQ1BVSUQgRm44MDAwXzAwMUZbRUFYXSAtIEJpdCAwCisJICogICAg IFNlY3VyZSBNZW1vcnkgRW5jcnlwdGlvbiBzdXBwb3J0CisJICogICBDUFVJRCBGbjgwMDBfMDAx RltFQlhdIC0gQml0cyA1OjAKKwkgKiAgICAgUGFnZXRhYmxlIGJpdCBwb3NpdGlvbiB1c2VkIHRv IGluZGljYXRlIGVuY3J5cHRpb24KKwkgKi8KKwllYXggPSAweDgwMDAwMDFmOworCWVjeCA9IDA7 CisJbmF0aXZlX2NwdWlkKCZlYXgsICZlYngsICZlY3gsICZlZHgpOworCWlmICghKGVheCAmIDEp KQorCQlyZXR1cm47CisKKwltZV9tYXNrID0gMVVMIDw8IChlYnggJiAweDNmKTsKKworCS8qIENo ZWNrIGlmIFNNRSBpcyBlbmFibGVkICovCisJbXNyID0gX19yZG1zcihNU1JfSzhfU1lTQ0ZHKTsK KwlpZiAoIShtc3IgJiBNU1JfSzhfU1lTQ0ZHX01FTV9FTkNSWVBUKSkKKwkJcmV0dXJuOworCisJ LyoKKwkgKiBGaXh1cHMgaGF2ZSBub3QgYmVlbiBhcHBsaWVkIHRvIHBoeXNfYmFzZSB5ZXQgYW5k IHdlJ3JlIHJ1bm5pbmcKKwkgKiBpZGVudGl0eSBtYXBwZWQsIHNvIHdlIG11c3Qgb2J0YWluIHRo ZSBhZGRyZXNzIHRvIHRoZSBTTUUgY29tbWFuZAorCSAqIGxpbmUgYXJndW1lbnQgZGF0YSB1c2lu ZyByaXAtcmVsYXRpdmUgYWRkcmVzc2luZy4KKwkgKi8KKwlhc20gKCJsZWEgc21lX2NtZGxpbmVf YXJnKCUlcmlwKSwgJTAiCisJICAgICA6ICI9ciIgKGNtZGxpbmVfYXJnKQorCSAgICAgOiAicCIg KHNtZV9jbWRsaW5lX2FyZykpOworCWFzbSAoImxlYSBzbWVfY21kbGluZV9vbiglJXJpcCksICUw IgorCSAgICAgOiAiPXIiIChjbWRsaW5lX29uKQorCSAgICAgOiAicCIgKHNtZV9jbWRsaW5lX29u KSk7CisJYXNtICgibGVhIHNtZV9jbWRsaW5lX29mZiglJXJpcCksICUwIgorCSAgICAgOiAiPXIi IChjbWRsaW5lX29mZikKKwkgICAgIDogInAiIChzbWVfY21kbGluZV9vZmYpKTsKKworCWlmIChJ U19FTkFCTEVEKENPTkZJR19BTURfTUVNX0VOQ1JZUFRfQUNUSVZFX0JZX0RFRkFVTFQpKQorCQlh Y3RpdmVfYnlfZGVmYXVsdCA9IHRydWU7CisJZWxzZQorCQlhY3RpdmVfYnlfZGVmYXVsdCA9IGZh bHNlOworCisJY21kbGluZV9wdHIgPSAoY29uc3QgY2hhciAqKSgodTY0KWJwLT5oZHIuY21kX2xp bmVfcHRyIHwKKwkJCQkgICAgICgodTY0KWJwLT5leHRfY21kX2xpbmVfcHRyIDw8IDMyKSk7CisK KwljbWRsaW5lX2ZpbmRfb3B0aW9uKGNtZGxpbmVfcHRyLCBjbWRsaW5lX2FyZywgYnVmZmVyLCBz aXplb2YoYnVmZmVyKSk7CisKKwlpZiAoc3RybmNtcChidWZmZXIsIGNtZGxpbmVfb24sIHNpemVv ZihidWZmZXIpKSA9PSAwKQorCQlzbWVfbWVfbWFzayA9IG1lX21hc2s7CisJZWxzZSBpZiAoc3Ry bmNtcChidWZmZXIsIGNtZGxpbmVfb2ZmLCBzaXplb2YoYnVmZmVyKSkgPT0gMCkKKwkJc21lX21l X21hc2sgPSAwOworCWVsc2UKKwkJc21lX21lX21hc2sgPSBhY3RpdmVfYnlfZGVmYXVsdCA/IG1l X21hc2sgOiAwOwogfQogCiB1bnNpZ25lZCBsb25nIHNtZV9nZXRfbWVfbWFzayh2b2lkKQoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=