From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Lendacky Subject: [PATCH v8 RESEND 30/38] kvm: x86: svm: Support Secure Memory Encryption within KVM Date: Tue, 27 Jun 2017 10:13:04 -0500 Message-ID: <20170627151304.17428.80457.stgit__39211.4541064531$1498576459$gmane$org@tlendack-t1.amdoffice.net> References: <20170627150718.17428.81813.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: <20170627150718.17428.81813.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 VXBkYXRlIHRoZSBLVk0gc3VwcG9ydCB0byB3b3JrIHdpdGggU01FLiBUaGUgVk1DQiBoYXMgYSBu dW1iZXIgb2YgZmllbGRzCndoZXJlIHBoeXNpY2FsIGFkZHJlc3NlcyBhcmUgdXNlZCBhbmQgdGhl c2UgYWRkcmVzc2VzIG11c3QgY29udGFpbiB0aGUKbWVtb3J5IGVuY3J5cHRpb24gbWFzayBpbiBv cmRlciB0byBwcm9wZXJseSBhY2Nlc3MgdGhlIGVuY3J5cHRlZCBtZW1vcnkuCkFsc28sIHVzZSB0 aGUgbWVtb3J5IGVuY3J5cHRpb24gbWFzayB3aGVuIGNyZWF0aW5nIGFuZCB1c2luZyB0aGUgbmVz dGVkCnBhZ2UgdGFibGVzLgoKUmV2aWV3ZWQtYnk6IEJvcmlzbGF2IFBldGtvdiA8YnBAc3VzZS5k ZT4KU2lnbmVkLW9mZi1ieTogVG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4K LS0tCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIHwgICAgMiArLQogYXJjaC94ODYv a3ZtL21tdS5jICAgICAgICAgICAgICB8ICAgMTIgKysrKysrKystLS0tCiBhcmNoL3g4Ni9rdm0v bW11LmggICAgICAgICAgICAgIHwgICAgMiArLQogYXJjaC94ODYva3ZtL3N2bS5jICAgICAgICAg ICAgICB8ICAgMzUgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIGFyY2gveDg2 L2t2bS92bXguYyAgICAgICAgICAgICAgfCAgICAzICsrLQogYXJjaC94ODYva3ZtL3g4Ni5jICAg ICAgICAgICAgICB8ICAgIDMgKystCiA2IGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyks IDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9o b3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCmluZGV4IDY5NTYwNWUuLjZk MTI2N2YgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKKysrIGIv YXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaApAQCAtMTA2OSw3ICsxMDY5LDcgQEAgc3Ry dWN0IGt2bV9hcmNoX2FzeW5jX3BmIHsKIHZvaWQga3ZtX21tdV91bmluaXRfdm0oc3RydWN0IGt2 bSAqa3ZtKTsKIHZvaWQga3ZtX21tdV9zZXRfbWFza19wdGVzKHU2NCB1c2VyX21hc2ssIHU2NCBh Y2Nlc3NlZF9tYXNrLAogCQl1NjQgZGlydHlfbWFzaywgdTY0IG54X21hc2ssIHU2NCB4X21hc2ss IHU2NCBwX21hc2ssCi0JCXU2NCBhY2NfdHJhY2tfbWFzayk7CisJCXU2NCBhY2NfdHJhY2tfbWFz aywgdTY0IG1lX21hc2spOwogCiB2b2lkIGt2bV9tbXVfcmVzZXRfY29udGV4dChzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUpOwogdm9pZCBrdm1fbW11X3Nsb3RfcmVtb3ZlX3dyaXRlX2FjY2VzcyhzdHJ1 Y3Qga3ZtICprdm0sCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vbW11LmMgYi9hcmNoL3g4Ni9r dm0vbW11LmMKaW5kZXggY2I4MjI1OS4uZTg1ODg4YyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3Zt L21tdS5jCisrKyBiL2FyY2gveDg2L2t2bS9tbXUuYwpAQCAtMTA3LDcgKzEwNyw3IEBAIGVudW0g ewogCSgoKGFkZHJlc3MpID4+IFBUMzJfTEVWRUxfU0hJRlQobGV2ZWwpKSAmICgoMSA8PCBQVDMy X0xFVkVMX0JJVFMpIC0gMSkpCiAKIAotI2RlZmluZSBQVDY0X0JBU0VfQUREUl9NQVNLICgoKDFV TEwgPDwgNTIpIC0gMSkgJiB+KHU2NCkoUEFHRV9TSVpFLTEpKQorI2RlZmluZSBQVDY0X0JBU0Vf QUREUl9NQVNLIF9fc21lX2NscigoKCgxVUxMIDw8IDUyKSAtIDEpICYgfih1NjQpKFBBR0VfU0la RS0xKSkpCiAjZGVmaW5lIFBUNjRfRElSX0JBU0VfQUREUl9NQVNLIFwKIAkoUFQ2NF9CQVNFX0FE RFJfTUFTSyAmIH4oKDFVTEwgPDwgKFBBR0VfU0hJRlQgKyBQVDY0X0xFVkVMX0JJVFMpKSAtIDEp KQogI2RlZmluZSBQVDY0X0xWTF9BRERSX01BU0sobGV2ZWwpIFwKQEAgLTEyNSw3ICsxMjUsNyBA QCBlbnVtIHsKIAkJCQkJICAgICogUFQzMl9MRVZFTF9CSVRTKSkpIC0gMSkpCiAKICNkZWZpbmUg UFQ2NF9QRVJNX01BU0sgKFBUX1BSRVNFTlRfTUFTSyB8IFBUX1dSSVRBQkxFX01BU0sgfCBzaGFk b3dfdXNlcl9tYXNrIFwKLQkJCXwgc2hhZG93X3hfbWFzayB8IHNoYWRvd19ueF9tYXNrKQorCQkJ fCBzaGFkb3dfeF9tYXNrIHwgc2hhZG93X254X21hc2sgfCBzaGFkb3dfbWVfbWFzaykKIAogI2Rl ZmluZSBBQ0NfRVhFQ19NQVNLICAgIDEKICNkZWZpbmUgQUNDX1dSSVRFX01BU0sgICBQVF9XUklU QUJMRV9NQVNLCkBAIC0xODQsNiArMTg0LDcgQEAgc3RydWN0IGt2bV9zaGFkb3dfd2Fsa19pdGVy YXRvciB7CiBzdGF0aWMgdTY0IF9fcmVhZF9tb3N0bHkgc2hhZG93X2RpcnR5X21hc2s7CiBzdGF0 aWMgdTY0IF9fcmVhZF9tb3N0bHkgc2hhZG93X21taW9fbWFzazsKIHN0YXRpYyB1NjQgX19yZWFk X21vc3RseSBzaGFkb3dfcHJlc2VudF9tYXNrOworc3RhdGljIHU2NCBfX3JlYWRfbW9zdGx5IHNo YWRvd19tZV9tYXNrOwogCiAvKgogICogVGhlIG1hc2svdmFsdWUgdG8gZGlzdGluZ3Vpc2ggYSBQ VEUgdGhhdCBoYXMgYmVlbiBtYXJrZWQgbm90LXByZXNlbnQgZm9yCkBAIC0zMTcsNyArMzE4LDcg QEAgc3RhdGljIGJvb2wgY2hlY2tfbW1pb19zcHRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0 IHNwdGUpCiAKIHZvaWQga3ZtX21tdV9zZXRfbWFza19wdGVzKHU2NCB1c2VyX21hc2ssIHU2NCBh Y2Nlc3NlZF9tYXNrLAogCQl1NjQgZGlydHlfbWFzaywgdTY0IG54X21hc2ssIHU2NCB4X21hc2ss IHU2NCBwX21hc2ssCi0JCXU2NCBhY2NfdHJhY2tfbWFzaykKKwkJdTY0IGFjY190cmFja19tYXNr LCB1NjQgbWVfbWFzaykKIHsKIAlpZiAoYWNjX3RyYWNrX21hc2sgIT0gMCkKIAkJYWNjX3RyYWNr X21hc2sgfD0gU1BURV9TUEVDSUFMX01BU0s7CkBAIC0zMzAsNiArMzMxLDcgQEAgdm9pZCBrdm1f bW11X3NldF9tYXNrX3B0ZXModTY0IHVzZXJfbWFzaywgdTY0IGFjY2Vzc2VkX21hc2ssCiAJc2hh ZG93X3ByZXNlbnRfbWFzayA9IHBfbWFzazsKIAlzaGFkb3dfYWNjX3RyYWNrX21hc2sgPSBhY2Nf dHJhY2tfbWFzazsKIAlXQVJOX09OKHNoYWRvd19hY2Nlc3NlZF9tYXNrICE9IDAgJiYgc2hhZG93 X2FjY190cmFja19tYXNrICE9IDApOworCXNoYWRvd19tZV9tYXNrID0gbWVfbWFzazsKIH0KIEVY UE9SVF9TWU1CT0xfR1BMKGt2bV9tbXVfc2V0X21hc2tfcHRlcyk7CiAKQEAgLTIzOTgsNyArMjQw MCw4IEBAIHN0YXRpYyB2b2lkIGxpbmtfc2hhZG93X3BhZ2Uoc3RydWN0IGt2bV92Y3B1ICp2Y3B1 LCB1NjQgKnNwdGVwLAogCUJVSUxEX0JVR19PTihWTVhfRVBUX1dSSVRBQkxFX01BU0sgIT0gUFRf V1JJVEFCTEVfTUFTSyk7CiAKIAlzcHRlID0gX19wYShzcC0+c3B0KSB8IHNoYWRvd19wcmVzZW50 X21hc2sgfCBQVF9XUklUQUJMRV9NQVNLIHwKLQkgICAgICAgc2hhZG93X3VzZXJfbWFzayB8IHNo YWRvd194X21hc2sgfCBzaGFkb3dfYWNjZXNzZWRfbWFzazsKKwkgICAgICAgc2hhZG93X3VzZXJf bWFzayB8IHNoYWRvd194X21hc2sgfCBzaGFkb3dfYWNjZXNzZWRfbWFzayB8CisJICAgICAgIHNo YWRvd19tZV9tYXNrOwogCiAJbW11X3NwdGVfc2V0KHNwdGVwLCBzcHRlKTsKIApAQCAtMjcwMCw2 ICsyNzAzLDcgQEAgc3RhdGljIGludCBzZXRfc3B0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2 NCAqc3B0ZXAsCiAJCXB0ZV9hY2Nlc3MgJj0gfkFDQ19XUklURV9NQVNLOwogCiAJc3B0ZSB8PSAo dTY0KXBmbiA8PCBQQUdFX1NISUZUOworCXNwdGUgfD0gc2hhZG93X21lX21hc2s7CiAKIAlpZiAo cHRlX2FjY2VzcyAmIEFDQ19XUklURV9NQVNLKSB7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2 bS9tbXUuaCBiL2FyY2gveDg2L2t2bS9tbXUuaAppbmRleCAzMzBiZjNhLi4wOGI3NzlkIDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni9rdm0vbW11LmgKKysrIGIvYXJjaC94ODYva3ZtL21tdS5oCkBAIC00 OCw3ICs0OCw3IEBACiAKIHN0YXRpYyBpbmxpbmUgdTY0IHJzdmRfYml0cyhpbnQgcywgaW50IGUp CiB7Ci0JcmV0dXJuICgoMVVMTCA8PCAoZSAtIHMgKyAxKSkgLSAxKSA8PCBzOworCXJldHVybiBf X3NtZV9jbHIoKCgxVUxMIDw8IChlIC0gcyArIDEpKSAtIDEpIDw8IHMpOwogfQogCiB2b2lkIGt2 bV9tbXVfc2V0X21taW9fc3B0ZV9tYXNrKHU2NCBtbWlvX21hc2spOwpkaWZmIC0tZ2l0IGEvYXJj aC94ODYva3ZtL3N2bS5jIGIvYXJjaC94ODYva3ZtL3N2bS5jCmluZGV4IGJhOTg5MWEuLmQyZTlm Y2EgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS9zdm0uYworKysgYi9hcmNoL3g4Ni9rdm0vc3Zt LmMKQEAgLTExMzgsOSArMTEzOCw5IEBAIHN0YXRpYyB2b2lkIGF2aWNfaW5pdF92bWNiKHN0cnVj dCB2Y3B1X3N2bSAqc3ZtKQogewogCXN0cnVjdCB2bWNiICp2bWNiID0gc3ZtLT52bWNiOwogCXN0 cnVjdCBrdm1fYXJjaCAqdm1fZGF0YSA9ICZzdm0tPnZjcHUua3ZtLT5hcmNoOwotCXBoeXNfYWRk cl90IGJwYSA9IHBhZ2VfdG9fcGh5cyhzdm0tPmF2aWNfYmFja2luZ19wYWdlKTsKLQlwaHlzX2Fk ZHJfdCBscGEgPSBwYWdlX3RvX3BoeXModm1fZGF0YS0+YXZpY19sb2dpY2FsX2lkX3RhYmxlX3Bh Z2UpOwotCXBoeXNfYWRkcl90IHBwYSA9IHBhZ2VfdG9fcGh5cyh2bV9kYXRhLT5hdmljX3BoeXNp Y2FsX2lkX3RhYmxlX3BhZ2UpOworCXBoeXNfYWRkcl90IGJwYSA9IF9fc21lX3NldChwYWdlX3Rv X3BoeXMoc3ZtLT5hdmljX2JhY2tpbmdfcGFnZSkpOworCXBoeXNfYWRkcl90IGxwYSA9IF9fc21l X3NldChwYWdlX3RvX3BoeXModm1fZGF0YS0+YXZpY19sb2dpY2FsX2lkX3RhYmxlX3BhZ2UpKTsK KwlwaHlzX2FkZHJfdCBwcGEgPSBfX3NtZV9zZXQocGFnZV90b19waHlzKHZtX2RhdGEtPmF2aWNf cGh5c2ljYWxfaWRfdGFibGVfcGFnZSkpOwogCiAJdm1jYi0+Y29udHJvbC5hdmljX2JhY2tpbmdf cGFnZSA9IGJwYSAmIEFWSUNfSFBBX01BU0s7CiAJdm1jYi0+Y29udHJvbC5hdmljX2xvZ2ljYWxf aWQgPSBscGEgJiBBVklDX0hQQV9NQVNLOwpAQCAtMTIwMyw4ICsxMjAzLDggQEAgc3RhdGljIHZv aWQgaW5pdF92bWNiKHN0cnVjdCB2Y3B1X3N2bSAqc3ZtKQogCQlzZXRfaW50ZXJjZXB0KHN2bSwg SU5URVJDRVBUX01XQUlUKTsKIAl9CiAKLQljb250cm9sLT5pb3BtX2Jhc2VfcGEgPSBpb3BtX2Jh c2U7Ci0JY29udHJvbC0+bXNycG1fYmFzZV9wYSA9IF9fcGEoc3ZtLT5tc3JwbSk7CisJY29udHJv bC0+aW9wbV9iYXNlX3BhID0gX19zbWVfc2V0KGlvcG1fYmFzZSk7CisJY29udHJvbC0+bXNycG1f YmFzZV9wYSA9IF9fc21lX3NldChfX3BhKHN2bS0+bXNycG0pKTsKIAljb250cm9sLT5pbnRfY3Rs ID0gVl9JTlRSX01BU0tJTkdfTUFTSzsKIAogCWluaXRfc2VnKCZzYXZlLT5lcyk7CkBAIC0xMzM4 LDkgKzEzMzgsOSBAQCBzdGF0aWMgaW50IGF2aWNfaW5pdF9iYWNraW5nX3BhZ2Uoc3RydWN0IGt2 bV92Y3B1ICp2Y3B1KQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCW5ld19lbnRyeSA9IFJFQURfT05D RSgqZW50cnkpOwotCW5ld19lbnRyeSA9IChwYWdlX3RvX3BoeXMoc3ZtLT5hdmljX2JhY2tpbmdf cGFnZSkgJgotCQkgICAgIEFWSUNfUEhZU0lDQUxfSURfRU5UUllfQkFDS0lOR19QQUdFX01BU0sp IHwKLQkJICAgICBBVklDX1BIWVNJQ0FMX0lEX0VOVFJZX1ZBTElEX01BU0s7CisJbmV3X2VudHJ5 ID0gX19zbWVfc2V0KChwYWdlX3RvX3BoeXMoc3ZtLT5hdmljX2JhY2tpbmdfcGFnZSkgJgorCQkJ ICAgICAgQVZJQ19QSFlTSUNBTF9JRF9FTlRSWV9CQUNLSU5HX1BBR0VfTUFTSykgfAorCQkJICAg ICAgQVZJQ19QSFlTSUNBTF9JRF9FTlRSWV9WQUxJRF9NQVNLKTsKIAlXUklURV9PTkNFKCplbnRy eSwgbmV3X2VudHJ5KTsKIAogCXN2bS0+YXZpY19waHlzaWNhbF9pZF9jYWNoZSA9IGVudHJ5OwpA QCAtMTYwOCw3ICsxNjA4LDcgQEAgc3RhdGljIHN0cnVjdCBrdm1fdmNwdSAqc3ZtX2NyZWF0ZV92 Y3B1KHN0cnVjdCBrdm0gKmt2bSwgdW5zaWduZWQgaW50IGlkKQogCiAJc3ZtLT52bWNiID0gcGFn ZV9hZGRyZXNzKHBhZ2UpOwogCWNsZWFyX3BhZ2Uoc3ZtLT52bWNiKTsKLQlzdm0tPnZtY2JfcGEg PSBwYWdlX3RvX3BmbihwYWdlKSA8PCBQQUdFX1NISUZUOworCXN2bS0+dm1jYl9wYSA9IF9fc21l X3NldChwYWdlX3RvX3BmbihwYWdlKSA8PCBQQUdFX1NISUZUKTsKIAlzdm0tPmFzaWRfZ2VuZXJh dGlvbiA9IDA7CiAJaW5pdF92bWNiKHN2bSk7CiAKQEAgLTE2MzYsNyArMTYzNiw3IEBAIHN0YXRp YyB2b2lkIHN2bV9mcmVlX3ZjcHUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCXN0cnVjdCB2 Y3B1X3N2bSAqc3ZtID0gdG9fc3ZtKHZjcHUpOwogCi0JX19mcmVlX3BhZ2UocGZuX3RvX3BhZ2Uo c3ZtLT52bWNiX3BhID4+IFBBR0VfU0hJRlQpKTsKKwlfX2ZyZWVfcGFnZShwZm5fdG9fcGFnZShf X3NtZV9jbHIoc3ZtLT52bWNiX3BhKSA+PiBQQUdFX1NISUZUKSk7CiAJX19mcmVlX3BhZ2VzKHZp cnRfdG9fcGFnZShzdm0tPm1zcnBtKSwgTVNSUE1fQUxMT0NfT1JERVIpOwogCV9fZnJlZV9wYWdl KHZpcnRfdG9fcGFnZShzdm0tPm5lc3RlZC5oc2F2ZSkpOwogCV9fZnJlZV9wYWdlcyh2aXJ0X3Rv X3BhZ2Uoc3ZtLT5uZXN0ZWQubXNycG0pLCBNU1JQTV9BTExPQ19PUkRFUik7CkBAIC0yMzAzLDcg KzIzMDMsNyBAQCBzdGF0aWMgdTY0IG5lc3RlZF9zdm1fZ2V0X3RkcF9wZHB0cihzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUsIGludCBpbmRleCkKIAl1NjQgcGRwdGU7CiAJaW50IHJldDsKIAotCXJldCA9 IGt2bV92Y3B1X3JlYWRfZ3Vlc3RfcGFnZSh2Y3B1LCBncGFfdG9fZ2ZuKGNyMyksICZwZHB0ZSwK KwlyZXQgPSBrdm1fdmNwdV9yZWFkX2d1ZXN0X3BhZ2UodmNwdSwgZ3BhX3RvX2dmbihfX3NtZV9j bHIoY3IzKSksICZwZHB0ZSwKIAkJCQkgICAgICAgb2Zmc2V0X2luX3BhZ2UoY3IzKSArIGluZGV4 ICogOCwgOCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIDA7CkBAIC0yMzE1LDcgKzIzMTUsNyBAQCBz dGF0aWMgdm9pZCBuZXN0ZWRfc3ZtX3NldF90ZHBfY3IzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwK IHsKIAlzdHJ1Y3QgdmNwdV9zdm0gKnN2bSA9IHRvX3N2bSh2Y3B1KTsKIAotCXN2bS0+dm1jYi0+ Y29udHJvbC5uZXN0ZWRfY3IzID0gcm9vdDsKKwlzdm0tPnZtY2ItPmNvbnRyb2wubmVzdGVkX2Ny MyA9IF9fc21lX3NldChyb290KTsKIAltYXJrX2RpcnR5KHN2bS0+dm1jYiwgVk1DQl9OUFQpOwog CXN2bV9mbHVzaF90bGIodmNwdSk7CiB9CkBAIC0yODAzLDcgKzI4MDMsNyBAQCBzdGF0aWMgYm9v bCBuZXN0ZWRfc3ZtX3ZtcnVuX21zcnBtKHN0cnVjdCB2Y3B1X3N2bSAqc3ZtKQogCQlzdm0tPm5l c3RlZC5tc3JwbVtwXSA9IHN2bS0+bXNycG1bcF0gfCB2YWx1ZTsKIAl9CiAKLQlzdm0tPnZtY2It PmNvbnRyb2wubXNycG1fYmFzZV9wYSA9IF9fcGEoc3ZtLT5uZXN0ZWQubXNycG0pOworCXN2bS0+ dm1jYi0+Y29udHJvbC5tc3JwbV9iYXNlX3BhID0gX19zbWVfc2V0KF9fcGEoc3ZtLT5uZXN0ZWQu bXNycG0pKTsKIAogCXJldHVybiB0cnVlOwogfQpAQCAtNDQzNSw3ICs0NDM1LDcgQEAgc3RhdGlj IGludCBzdm1faXJfbGlzdF9hZGQoc3RydWN0IHZjcHVfc3ZtICpzdm0sIHN0cnVjdCBhbWRfaW9t bXVfcGlfZGF0YSAqcGkpCiAJcHJfZGVidWcoIlNWTTogJXM6IHVzZSBHQSBtb2RlIGZvciBpcnEg JXVcbiIsIF9fZnVuY19fLAogCQkgaXJxLnZlY3Rvcik7CiAJKnN2bSA9IHRvX3N2bSh2Y3B1KTsK LQl2Y3B1X2luZm8tPnBpX2Rlc2NfYWRkciA9IHBhZ2VfdG9fcGh5cygoKnN2bSktPmF2aWNfYmFj a2luZ19wYWdlKTsKKwl2Y3B1X2luZm8tPnBpX2Rlc2NfYWRkciA9IF9fc21lX3NldChwYWdlX3Rv X3BoeXMoKCpzdm0pLT5hdmljX2JhY2tpbmdfcGFnZSkpOwogCXZjcHVfaW5mby0+dmVjdG9yID0g aXJxLnZlY3RvcjsKIAogCXJldHVybiAwOwpAQCAtNDQ4Niw3ICs0NDg2LDggQEAgc3RhdGljIGlu dCBzdm1fdXBkYXRlX3BpX2lydGUoc3RydWN0IGt2bSAqa3ZtLCB1bnNpZ25lZCBpbnQgaG9zdF9p cnEsCiAJCQlzdHJ1Y3QgYW1kX2lvbW11X3BpX2RhdGEgcGk7CiAKIAkJCS8qIFRyeSB0byBlbmFi bGUgZ3Vlc3RfbW9kZSBpbiBJUlRFICovCi0JCQlwaS5iYXNlID0gcGFnZV90b19waHlzKHN2bS0+ YXZpY19iYWNraW5nX3BhZ2UpICYgQVZJQ19IUEFfTUFTSzsKKwkJCXBpLmJhc2UgPSBfX3NtZV9z ZXQocGFnZV90b19waHlzKHN2bS0+YXZpY19iYWNraW5nX3BhZ2UpICYKKwkJCQkJICAgIEFWSUNf SFBBX01BU0spOwogCQkJcGkuZ2FfdGFnID0gQVZJQ19HQVRBRyhrdm0tPmFyY2guYXZpY192bV9p ZCwKIAkJCQkJCSAgICAgc3ZtLT52Y3B1LnZjcHVfaWQpOwogCQkJcGkuaXNfZ3Vlc3RfbW9kZSA9 IHRydWU7CkBAIC00OTExLDcgKzQ5MTIsNyBAQCBzdGF0aWMgdm9pZCBzdm1fc2V0X2NyMyhzdHJ1 Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgcm9vdCkKIHsKIAlzdHJ1Y3QgdmNwdV9z dm0gKnN2bSA9IHRvX3N2bSh2Y3B1KTsKIAotCXN2bS0+dm1jYi0+c2F2ZS5jcjMgPSByb290Owor CXN2bS0+dm1jYi0+c2F2ZS5jcjMgPSBfX3NtZV9zZXQocm9vdCk7CiAJbWFya19kaXJ0eShzdm0t PnZtY2IsIFZNQ0JfQ1IpOwogCXN2bV9mbHVzaF90bGIodmNwdSk7CiB9CkBAIC00OTIwLDcgKzQ5 MjEsNyBAQCBzdGF0aWMgdm9pZCBzZXRfdGRwX2NyMyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVu c2lnbmVkIGxvbmcgcm9vdCkKIHsKIAlzdHJ1Y3QgdmNwdV9zdm0gKnN2bSA9IHRvX3N2bSh2Y3B1 KTsKIAotCXN2bS0+dm1jYi0+Y29udHJvbC5uZXN0ZWRfY3IzID0gcm9vdDsKKwlzdm0tPnZtY2It PmNvbnRyb2wubmVzdGVkX2NyMyA9IF9fc21lX3NldChyb290KTsKIAltYXJrX2RpcnR5KHN2bS0+ dm1jYiwgVk1DQl9OUFQpOwogCiAJLyogQWxzbyBzeW5jIGd1ZXN0IGNyMyBoZXJlIGluIGNhc2Ug d2UgbGl2ZSBtaWdyYXRlICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14LmMgYi9hcmNo L3g4Ni9rdm0vdm14LmMKaW5kZXggN2RkNTNmYi4uNTMwOThjZCAxMDA2NDQKLS0tIGEvYXJjaC94 ODYva3ZtL3ZteC5jCisrKyBiL2FyY2gveDg2L2t2bS92bXguYwpAQCAtNjQ1Miw3ICs2NDUyLDgg QEAgdm9pZCB2bXhfZW5hYmxlX3RkcCh2b2lkKQogCQllbmFibGVfZXB0X2FkX2JpdHMgPyBWTVhf RVBUX0RJUlRZX0JJVCA6IDB1bGwsCiAJCTB1bGwsIFZNWF9FUFRfRVhFQ1VUQUJMRV9NQVNLLAog CQljcHVfaGFzX3ZteF9lcHRfZXhlY3V0ZV9vbmx5KCkgPyAwdWxsIDogVk1YX0VQVF9SRUFEQUJM RV9NQVNLLAotCQllbmFibGVfZXB0X2FkX2JpdHMgPyAwdWxsIDogVk1YX0VQVF9SV1hfTUFTSyk7 CisJCWVuYWJsZV9lcHRfYWRfYml0cyA/IDB1bGwgOiBWTVhfRVBUX1JXWF9NQVNLLAorCQkwdWxs KTsKIAogCWVwdF9zZXRfbW1pb19zcHRlX21hc2soKTsKIAlrdm1fZW5hYmxlX3RkcCgpOwpkaWZm IC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jCmluZGV4IDg3 ZDNjYjkuLjU1OWY3MTAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYworKysgYi9hcmNo L3g4Ni9rdm0veDg2LmMKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rdm1faXJx ZmQuaD4KICNpbmNsdWRlIDxsaW51eC9pcnFieXBhc3MuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hl ZC9zdGF0Lmg+CisjaW5jbHVkZSA8bGludXgvbWVtX2VuY3J5cHQuaD4KIAogI2luY2x1ZGUgPHRy YWNlL2V2ZW50cy9rdm0uaD4KIApAQCAtNjA5NSw3ICs2MDk2LDcgQEAgaW50IGt2bV9hcmNoX2lu aXQodm9pZCAqb3BhcXVlKQogCiAJa3ZtX21tdV9zZXRfbWFza19wdGVzKFBUX1VTRVJfTUFTSywg UFRfQUNDRVNTRURfTUFTSywKIAkJCVBUX0RJUlRZX01BU0ssIFBUNjRfTlhfTUFTSywgMCwKLQkJ CVBUX1BSRVNFTlRfTUFTSywgMCk7CisJCQlQVF9QUkVTRU5UX01BU0ssIDAsIHNtZV9tZV9tYXNr KTsKIAlrdm1fdGltZXJfaW5pdCgpOwogCiAJcGVyZl9yZWdpc3Rlcl9ndWVzdF9pbmZvX2NhbGxi YWNrcygma3ZtX2d1ZXN0X2Nicyk7CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==