From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoffer Dall Subject: [PATCH] KVM: arm/arm64: Allow usercopy to vcpu->arch.ctxt and arm64 debug Date: Sat, 21 Oct 2017 20:45:45 +0200 Message-ID: <20171021184545.2497-1-christoffer.dall@linaro.org> References: <20171020232525.7387-1-pbonzini@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Kees Cook , kvm@vger.kernel.org, kernel-hardening@lists.openwall.com, Marc Zyngier , linux-arm-kernel@lists.infradead.org, Paolo Bonzini To: kvmarm@lists.cs.columbia.edu Return-path: In-Reply-To: <20171020232525.7387-1-pbonzini@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu List-Id: kvm.vger.kernel.org V2UgZG8gZGlyZWN0IHVzZXJhY2Nlc3MgY29weWluZyB0byB0aGUga3ZtX2NwdV9jb250ZXh0IHN0 cnVjdHVyZQplbWJlZGRlZCBpbiB0aGUga3ZtX3ZjcHVfYXJjaCBzdHJ1Y3R1cmUsIGFuZCB0byB0 aGUgdmNwdSBkZWJ1ZyByZWdpc3RlcgpzdGF0ZS4gIEV2ZXJ5dGhpbmcgZWxzZSAodGltZXIsIFBN VSwgdmdpYykgZ29lcyB0aHJvdWdoIGEgdGVtcG9yYXJ5CmluZGlyZWN0aW9uLgoKRml4aW5nIGFs bCBhY2Nlc3NlcyB0byBrdm1fY3B1X2NvbnRleHQgaXMgbWFzc2l2ZWx5IGludmFzaXZlLCBhbmQg d2UnZApsaWtlIHRvIGF2b2lkIHRoYXQsIHNvIHdlIHRlbGwga3ZtX2luaXRfdXNlcmNvcHkgdG8g d2hpdGVsaXN0IGFjY2Vzc2VzCnRvIG91dCBjb250ZXh0IHN0cnVjdHVyZS4KClRoZSBkZWJ1ZyBz eXN0ZW0gcmVnaXN0ZXIgYWNjZXNzZXMgb24gYXJtNjQgYXJlIG1vZGlmaWVkIHRvIHdvcmsgdGhy b3VnaAphbiBpbmRpcmVjdGlvbiBpbnN0ZWFkLgoKQ2M6IGtlcm5lbC1oYXJkZW5pbmdAbGlzdHMu b3BlbndhbGwuY29tCkNjOiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz4KQ2M6IFBh b2xvIEJvbnppbmkgPHBib256aW5pQHJlZGhhdC5jb20+CkNjOiBSYWRpbSBLcsSNbcOhxZkgPHJr cmNtYXJAcmVkaGF0LmNvbT4KQ2M6IE1hcmMgWnluZ2llciA8bWFyYy56eW5naWVyQGFybS5jb20+ ClNpZ25lZC1vZmYtYnk6IENocmlzdG9mZmVyIERhbGwgPGNocmlzdG9mZmVyLmRhbGxAbGluYXJv Lm9yZz4KLS0tClRoaXMgZml4ZXMgS1ZNL0FSTSBvbiB0b2RheSdzIGxpbnV4IG5leHQgd2l0aCBD T05GSUdfSEFSREVORURfVVNFUkNPUFkuCgpUaGUgcGF0Y2ggaXMgYmFzZWQgb24gbGludXgtbmV4 dCBwbHVzIFBhb2xvJ3MgeDg2IHBhdGNoIHdoaWNoIGludHJvZHVjZXMKa3ZtX2luaXRfdXNlcmNv cHkuICBOb3Qgc3VyZSBob3cgdGhpcyBuZWVkcyB0byBnZXQgbWVyZ2VkLCBidXQgaXQgd291bGQK cG90ZW50aWFsbHkgbWFrZSBzZW5zZSBmb3IgUGFvbG8gdG8gcHV0IHRvZ2V0aGVyIGEgc2V0IG9m IHRoZSBwYXRjaGVzCm5lZWRlZCBmb3IgdGhpcy4KClRoYW5rcywKLUNocmlzdG9mZmVyCgogYXJj aC9hcm02NC9rdm0vc3lzX3JlZ3MuYyB8IDM2ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLQogdmlydC9rdm0vYXJtL2FybS5jICAgICAgICB8ICA1ICsrKystCiAyIGZpbGVzIGNo YW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Fy Y2gvYXJtNjQva3ZtL3N5c19yZWdzLmMgYi9hcmNoL2FybTY0L2t2bS9zeXNfcmVncy5jCmluZGV4 IDJlMDcwZDNiYWY5Zi4uY2RmNDdhOTEwOGZlIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2t2bS9z eXNfcmVncy5jCisrKyBiL2FyY2gvYXJtNjQva3ZtL3N5c19yZWdzLmMKQEAgLTI5MywxOSArMjkz LDIwIEBAIHN0YXRpYyBib29sIHRyYXBfYnZyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIHN0YXRp YyBpbnQgc2V0X2J2cihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGNvbnN0IHN0cnVjdCBzeXNfcmVn X2Rlc2MgKnJkLAogCQljb25zdCBzdHJ1Y3Qga3ZtX29uZV9yZWcgKnJlZywgdm9pZCBfX3VzZXIg KnVhZGRyKQogewotCV9fdTY0ICpyID0gJnZjcHUtPmFyY2gudmNwdV9kZWJ1Z19zdGF0ZS5kYmdf YnZyW3JkLT5yZWddOworCV9fdTY0IHI7CiAKLQlpZiAoY29weV9mcm9tX3VzZXIociwgdWFkZHIs IEtWTV9SRUdfU0laRShyZWctPmlkKSkgIT0gMCkKKwlpZiAoY29weV9mcm9tX3VzZXIoJnIsIHVh ZGRyLCBLVk1fUkVHX1NJWkUocmVnLT5pZCkpICE9IDApCiAJCXJldHVybiAtRUZBVUxUOworCXZj cHUtPmFyY2gudmNwdV9kZWJ1Z19zdGF0ZS5kYmdfYnZyW3JkLT5yZWddID0gcjsKIAlyZXR1cm4g MDsKIH0KIAogc3RhdGljIGludCBnZXRfYnZyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgY29uc3Qg c3RydWN0IHN5c19yZWdfZGVzYyAqcmQsCiAJY29uc3Qgc3RydWN0IGt2bV9vbmVfcmVnICpyZWcs IHZvaWQgX191c2VyICp1YWRkcikKIHsKLQlfX3U2NCAqciA9ICZ2Y3B1LT5hcmNoLnZjcHVfZGVi dWdfc3RhdGUuZGJnX2J2cltyZC0+cmVnXTsKKwlfX3U2NCByID0gdmNwdS0+YXJjaC52Y3B1X2Rl YnVnX3N0YXRlLmRiZ19idnJbcmQtPnJlZ107CiAKLQlpZiAoY29weV90b191c2VyKHVhZGRyLCBy LCBLVk1fUkVHX1NJWkUocmVnLT5pZCkpICE9IDApCisJaWYgKGNvcHlfdG9fdXNlcih1YWRkciwg JnIsIEtWTV9SRUdfU0laRShyZWctPmlkKSkgIT0gMCkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJcmV0 dXJuIDA7CiB9CkBAIC0zMzUsMTAgKzMzNiwxMSBAQCBzdGF0aWMgYm9vbCB0cmFwX2JjcihzdHJ1 Y3Qga3ZtX3ZjcHUgKnZjcHUsCiBzdGF0aWMgaW50IHNldF9iY3Ioc3RydWN0IGt2bV92Y3B1ICp2 Y3B1LCBjb25zdCBzdHJ1Y3Qgc3lzX3JlZ19kZXNjICpyZCwKIAkJY29uc3Qgc3RydWN0IGt2bV9v bmVfcmVnICpyZWcsIHZvaWQgX191c2VyICp1YWRkcikKIHsKLQlfX3U2NCAqciA9ICZ2Y3B1LT5h cmNoLnZjcHVfZGVidWdfc3RhdGUuZGJnX2JjcltyZC0+cmVnXTsKKwlfX3U2NCByOwogCi0JaWYg KGNvcHlfZnJvbV91c2VyKHIsIHVhZGRyLCBLVk1fUkVHX1NJWkUocmVnLT5pZCkpICE9IDApCisJ aWYgKGNvcHlfZnJvbV91c2VyKCZyLCB1YWRkciwgS1ZNX1JFR19TSVpFKHJlZy0+aWQpKSAhPSAw KQogCQlyZXR1cm4gLUVGQVVMVDsKKwl2Y3B1LT5hcmNoLnZjcHVfZGVidWdfc3RhdGUuZGJnX2Jj cltyZC0+cmVnXSA9IHI7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTM0Niw5ICszNDgsOSBAQCBzdGF0 aWMgaW50IHNldF9iY3Ioc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBjb25zdCBzdHJ1Y3Qgc3lzX3Jl Z19kZXNjICpyZCwKIHN0YXRpYyBpbnQgZ2V0X2JjcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGNv bnN0IHN0cnVjdCBzeXNfcmVnX2Rlc2MgKnJkLAogCWNvbnN0IHN0cnVjdCBrdm1fb25lX3JlZyAq cmVnLCB2b2lkIF9fdXNlciAqdWFkZHIpCiB7Ci0JX191NjQgKnIgPSAmdmNwdS0+YXJjaC52Y3B1 X2RlYnVnX3N0YXRlLmRiZ19iY3JbcmQtPnJlZ107CisJX191NjQgciA9IHZjcHUtPmFyY2gudmNw dV9kZWJ1Z19zdGF0ZS5kYmdfYmNyW3JkLT5yZWddOwogCi0JaWYgKGNvcHlfdG9fdXNlcih1YWRk ciwgciwgS1ZNX1JFR19TSVpFKHJlZy0+aWQpKSAhPSAwKQorCWlmIChjb3B5X3RvX3VzZXIodWFk ZHIsICZyLCBLVk1fUkVHX1NJWkUocmVnLT5pZCkpICE9IDApCiAJCXJldHVybiAtRUZBVUxUOwog CXJldHVybiAwOwogfQpAQCAtMzc5LDE5ICszODEsMjAgQEAgc3RhdGljIGJvb2wgdHJhcF93dnIo c3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogc3RhdGljIGludCBzZXRfd3ZyKHN0cnVjdCBrdm1fdmNw dSAqdmNwdSwgY29uc3Qgc3RydWN0IHN5c19yZWdfZGVzYyAqcmQsCiAJCWNvbnN0IHN0cnVjdCBr dm1fb25lX3JlZyAqcmVnLCB2b2lkIF9fdXNlciAqdWFkZHIpCiB7Ci0JX191NjQgKnIgPSAmdmNw dS0+YXJjaC52Y3B1X2RlYnVnX3N0YXRlLmRiZ193dnJbcmQtPnJlZ107CisJX191NjQgcjsKIAot CWlmIChjb3B5X2Zyb21fdXNlcihyLCB1YWRkciwgS1ZNX1JFR19TSVpFKHJlZy0+aWQpKSAhPSAw KQorCWlmIChjb3B5X2Zyb21fdXNlcigmciwgdWFkZHIsIEtWTV9SRUdfU0laRShyZWctPmlkKSkg IT0gMCkKIAkJcmV0dXJuIC1FRkFVTFQ7CisJdmNwdS0+YXJjaC52Y3B1X2RlYnVnX3N0YXRlLmRi Z193dnJbcmQtPnJlZ10gPSByOwogCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGdldF93dnIo c3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBjb25zdCBzdHJ1Y3Qgc3lzX3JlZ19kZXNjICpyZCwKIAlj b25zdCBzdHJ1Y3Qga3ZtX29uZV9yZWcgKnJlZywgdm9pZCBfX3VzZXIgKnVhZGRyKQogewotCV9f dTY0ICpyID0gJnZjcHUtPmFyY2gudmNwdV9kZWJ1Z19zdGF0ZS5kYmdfd3ZyW3JkLT5yZWddOwor CV9fdTY0IHIgPSB2Y3B1LT5hcmNoLnZjcHVfZGVidWdfc3RhdGUuZGJnX3d2cltyZC0+cmVnXTsK IAotCWlmIChjb3B5X3RvX3VzZXIodWFkZHIsIHIsIEtWTV9SRUdfU0laRShyZWctPmlkKSkgIT0g MCkKKwlpZiAoY29weV90b191c2VyKHVhZGRyLCAmciwgS1ZNX1JFR19TSVpFKHJlZy0+aWQpKSAh PSAwKQogCQlyZXR1cm4gLUVGQVVMVDsKIAlyZXR1cm4gMDsKIH0KQEAgLTQyMSwxOSArNDI0LDIw IEBAIHN0YXRpYyBib29sIHRyYXBfd2NyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIHN0YXRpYyBp bnQgc2V0X3djcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGNvbnN0IHN0cnVjdCBzeXNfcmVnX2Rl c2MgKnJkLAogCQljb25zdCBzdHJ1Y3Qga3ZtX29uZV9yZWcgKnJlZywgdm9pZCBfX3VzZXIgKnVh ZGRyKQogewotCV9fdTY0ICpyID0gJnZjcHUtPmFyY2gudmNwdV9kZWJ1Z19zdGF0ZS5kYmdfd2Ny W3JkLT5yZWddOworCV9fdTY0IHI7CiAKLQlpZiAoY29weV9mcm9tX3VzZXIociwgdWFkZHIsIEtW TV9SRUdfU0laRShyZWctPmlkKSkgIT0gMCkKKwlpZiAoY29weV9mcm9tX3VzZXIoJnIsIHVhZGRy LCBLVk1fUkVHX1NJWkUocmVnLT5pZCkpICE9IDApCiAJCXJldHVybiAtRUZBVUxUOworCXZjcHUt PmFyY2gudmNwdV9kZWJ1Z19zdGF0ZS5kYmdfd2NyW3JkLT5yZWddID0gcjsKIAlyZXR1cm4gMDsK IH0KIAogc3RhdGljIGludCBnZXRfd2NyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgY29uc3Qgc3Ry dWN0IHN5c19yZWdfZGVzYyAqcmQsCiAJY29uc3Qgc3RydWN0IGt2bV9vbmVfcmVnICpyZWcsIHZv aWQgX191c2VyICp1YWRkcikKIHsKLQlfX3U2NCAqciA9ICZ2Y3B1LT5hcmNoLnZjcHVfZGVidWdf c3RhdGUuZGJnX3djcltyZC0+cmVnXTsKKwlfX3U2NCByID0gdmNwdS0+YXJjaC52Y3B1X2RlYnVn X3N0YXRlLmRiZ193Y3JbcmQtPnJlZ107CiAKLQlpZiAoY29weV90b191c2VyKHVhZGRyLCByLCBL Vk1fUkVHX1NJWkUocmVnLT5pZCkpICE9IDApCisJaWYgKGNvcHlfdG9fdXNlcih1YWRkciwgJnIs IEtWTV9SRUdfU0laRShyZWctPmlkKSkgIT0gMCkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJcmV0dXJu IDA7CiB9CmRpZmYgLS1naXQgYS92aXJ0L2t2bS9hcm0vYXJtLmMgYi92aXJ0L2t2bS9hcm0vYXJt LmMKaW5kZXggYjlmNjhlNGFkZDcxLi42MzllMzg4Njc4ZmYgMTAwNjQ0Ci0tLSBhL3ZpcnQva3Zt L2FybS9hcm0uYworKysgYi92aXJ0L2t2bS9hcm0vYXJtLmMKQEAgLTE1MDIsNyArMTUwMiwxMCBA QCB2b2lkIGt2bV9hcmNoX2V4aXQodm9pZCkKIAogc3RhdGljIGludCBhcm1faW5pdCh2b2lkKQog ewotCWludCByYyA9IGt2bV9pbml0KE5VTEwsIHNpemVvZihzdHJ1Y3Qga3ZtX3ZjcHUpLCAwLCBU SElTX01PRFVMRSk7CisJaW50IHJjID0ga3ZtX2luaXRfdXNlcmNvcHkoTlVMTCwgc2l6ZW9mKHN0 cnVjdCBrdm1fdmNwdSksIDAsCisJCQkJICAgb2Zmc2V0b2Yoc3RydWN0IGt2bV92Y3B1X2FyY2gs IGN0eHQpLAorCQkJCSAgIHNpemVvZl9maWVsZChzdHJ1Y3Qga3ZtX3ZjcHVfYXJjaCwgY3R4dCks CisJCQkJICAgVEhJU19NT0RVTEUpOwogCXJldHVybiByYzsKIH0KIAotLSAKMi4xNC4yCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwprdm1hcm0gbWFpbGlu ZyBsaXN0Cmt2bWFybUBsaXN0cy5jcy5jb2x1bWJpYS5lZHUKaHR0cHM6Ly9saXN0cy5jcy5jb2x1 bWJpYS5lZHUvbWFpbG1hbi9saXN0aW5mby9rdm1hcm0K