From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [v2 03/16] xen/arm: Extend copy_to_guest to support copying from guest VA and use it Date: Tue, 12 Dec 2017 19:01:59 +0000 Message-ID: <20171212190212.5535-4-julien.grall@linaro.org> References: <20171212190212.5535-1-julien.grall@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171212190212.5535-1-julien.grall@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: sstabellini@kernel.org, Julien Grall , andre.przywara@linaro.org List-Id: xen-devel@lists.xenproject.org VGhlIG9ubHkgZGlmZmVyZW5jZXMgYmV0d2VlbiBjb3B5X3RvX2d1ZXN0IChmb3JtZXJseSBjYWxs ZWQKcmF3X2NvcHlfdG9fZ3Vlc3RfaGVscGVyKSBhbmQgcmF3X2NvcHlfZnJvbV9ndWVzdCBpczoK ICAgIC0gVGhlIGRpcmVjdGlvbiBvZiB0aGUgbWVtY3B5CiAgICAtIFRoZSBwZXJtaXNzaW9uIHVz ZSBmb3IgdHJhbnNsYXRpbmcgdGhlIGFkZHJlc3MKCkV4dGVuZCBjb3B5X3RvX2d1ZXN0IHRvIHN1 cHBvcnQgY29weWluZyBmcm9tIGd1ZXN0IFZBIGJ5IGFkZGluZyB1c2luZyBhCmJpdCBpbiB0aGUg ZmxhZ3MgdG8gdGVsbCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBjb3B5LgoKTGFzdGx5LCByZWltcGxl bWVudCByYXdfY29weV9mcm9tX2d1ZXN0IHVzaW5nIGNvcHlfdG9fZ3Vlc3QuCgpTaWduZWQtb2Zm LWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBsaW5hcm8ub3JnPgoKLS0tCiAgICBDaGFu Z2VzIGluIHYyOgogICAgICAgIC0gVXNlIHZhZGRyX3QKLS0tCiB4ZW4vYXJjaC9hcm0vZ3Vlc3Rj b3B5LmMgfCA0NiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEveGVuL2FyY2gvYXJtL2d1ZXN0Y29weS5jIGIveGVuL2FyY2gvYXJtL2d1ZXN0Y29w eS5jCmluZGV4IDA4ZDBmYTBhODMuLjEyZmIwM2RkMTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2Fy bS9ndWVzdGNvcHkuYworKysgYi94ZW4vYXJjaC9hcm0vZ3Vlc3Rjb3B5LmMKQEAgLTYsNiArNiw4 IEBACiAjaW5jbHVkZSA8YXNtL2d1ZXN0X2FjY2Vzcy5oPgogCiAjZGVmaW5lIENPUFlfZmx1c2hf ZGNhY2hlICAgKDFVIDw8IDApCisjZGVmaW5lIENPUFlfZnJvbV9ndWVzdCAgICAgKDBVIDw8IDEp CisjZGVmaW5lIENPUFlfdG9fZ3Vlc3QgICAgICAgKDFVIDw8IDEpCiAKIHN0YXRpYyB1bnNpZ25l ZCBsb25nIGNvcHlfZ3Vlc3Qodm9pZCAqYnVmLCB1aW50NjRfdCBhZGRyLCB1bnNpZ25lZCBpbnQg bGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3Mp CkBAIC0yMSwxMyArMjMsMTggQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgY29weV9ndWVzdCh2b2lk ICpidWYsIHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVkIGludCBsZW4sCiAgICAgICAgIHVuc2lnbmVk IHNpemUgPSBtaW4obGVuLCAodW5zaWduZWQpUEFHRV9TSVpFIC0gb2Zmc2V0KTsKICAgICAgICAg c3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKIAotICAgICAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9n dmEoY3VycmVudCwgYWRkciwgR1YyTV9XUklURSk7CisgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9m cm9tX2d2YShjdXJyZW50LCBhZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGZsYWdzICYgQ09QWV90b19ndWVzdCkgPyBHVjJNX1dSSVRFIDogR1YyTV9SRUFEKTsKICAgICAg ICAgaWYgKCBwYWdlID09IE5VTEwgKQogICAgICAgICAgICAgcmV0dXJuIGxlbjsKIAogICAgICAg ICBwID0gX19tYXBfZG9tYWluX3BhZ2UocGFnZSk7CiAgICAgICAgIHAgKz0gb2Zmc2V0OwotICAg ICAgICBtZW1jcHkocCwgYnVmLCBzaXplKTsKKyAgICAgICAgaWYgKCBmbGFncyAmIENPUFlfdG9f Z3Vlc3QgKQorICAgICAgICAgICAgbWVtY3B5KHAsIGJ1Ziwgc2l6ZSk7CisgICAgICAgIGVsc2UK KyAgICAgICAgICAgIG1lbWNweShidWYsIHAsIHNpemUpOworCiAgICAgICAgIGlmICggZmxhZ3Mg JiBDT1BZX2ZsdXNoX2RjYWNoZSApCiAgICAgICAgICAgICBjbGVhbl9kY2FjaGVfdmFfcmFuZ2Uo cCwgc2l6ZSk7CiAKQEAgLTQ4LDEzICs1NSwxNCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBjb3B5 X2d1ZXN0KHZvaWQgKmJ1ZiwgdWludDY0X3QgYWRkciwgdW5zaWduZWQgaW50IGxlbiwKIAogdW5z aWduZWQgbG9uZyByYXdfY29weV90b19ndWVzdCh2b2lkICp0bywgY29uc3Qgdm9pZCAqZnJvbSwg dW5zaWduZWQgbGVuKQogewotICAgIHJldHVybiBjb3B5X2d1ZXN0KCh2b2lkICopZnJvbSwgKHZh ZGRyX3QpdG8sIGxlbiwgMCk7CisgICAgcmV0dXJuIGNvcHlfZ3Vlc3QoKHZvaWQgKilmcm9tLCAo dmFkZHJfdCl0bywgbGVuLCBDT1BZX3RvX2d1ZXN0KTsKIH0KIAogdW5zaWduZWQgbG9uZyByYXdf Y29weV90b19ndWVzdF9mbHVzaF9kY2FjaGUodm9pZCAqdG8sIGNvbnN0IHZvaWQgKmZyb20sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW4p CiB7Ci0gICAgcmV0dXJuIGNvcHlfZ3Vlc3QoKHZvaWQgKilmcm9tLCAodmFkZHJfdCl0bywgbGVu LCBDT1BZX2ZsdXNoX2RjYWNoZSk7CisgICAgcmV0dXJuIGNvcHlfZ3Vlc3QoKHZvaWQgKilmcm9t LCAodmFkZHJfdCl0bywgbGVuLAorICAgICAgICAgICAgICAgICAgICAgIENPUFlfdG9fZ3Vlc3Qg fCBDT1BZX2ZsdXNoX2RjYWNoZSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgcmF3X2NsZWFyX2d1ZXN0 KHZvaWQgKnRvLCB1bnNpZ25lZCBsZW4pCkBAIC05MiwzNSArMTAwLDcgQEAgdW5zaWduZWQgbG9u ZyByYXdfY2xlYXJfZ3Vlc3Qodm9pZCAqdG8sIHVuc2lnbmVkIGxlbikKIAogdW5zaWduZWQgbG9u ZyByYXdfY29weV9mcm9tX2d1ZXN0KHZvaWQgKnRvLCBjb25zdCB2b2lkIF9fdXNlciAqZnJvbSwg dW5zaWduZWQgbGVuKQogewotICAgIHVuc2lnbmVkIG9mZnNldCA9ICh2YWRkcl90KWZyb20gJiB+ UEFHRV9NQVNLOwotCi0gICAgd2hpbGUgKCBsZW4gKQotICAgIHsKLSAgICAgICAgdm9pZCAqcDsK LSAgICAgICAgdW5zaWduZWQgc2l6ZSA9IG1pbihsZW4sICh1bnNpZ25lZCkoUEFHRV9TSVpFIC0g b2Zmc2V0KSk7Ci0gICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7Ci0KLSAgICAgICAgcGFn ZSA9IGdldF9wYWdlX2Zyb21fZ3ZhKGN1cnJlbnQsICh2YWRkcl90KSBmcm9tLCBHVjJNX1JFQUQp OwotICAgICAgICBpZiAoIHBhZ2UgPT0gTlVMTCApCi0gICAgICAgICAgICByZXR1cm4gbGVuOwot Ci0gICAgICAgIHAgPSBfX21hcF9kb21haW5fcGFnZShwYWdlKTsKLSAgICAgICAgcCArPSAoKHZh ZGRyX3QpZnJvbSAmICh+UEFHRV9NQVNLKSk7Ci0KLSAgICAgICAgbWVtY3B5KHRvLCBwLCBzaXpl KTsKLQotICAgICAgICB1bm1hcF9kb21haW5fcGFnZShwKTsKLSAgICAgICAgcHV0X3BhZ2UocGFn ZSk7Ci0gICAgICAgIGxlbiAtPSBzaXplOwotICAgICAgICBmcm9tICs9IHNpemU7Ci0gICAgICAg IHRvICs9IHNpemU7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIEFmdGVyIHRoZSBmaXJzdCBpdGVy YXRpb24sIGd1ZXN0IHZpcnR1YWwgYWRkcmVzcyBpcyBjb3JyZWN0bHkKLSAgICAgICAgICogYWxp Z25lZCB0byBQQUdFX1NJWkUuCi0gICAgICAgICAqLwotICAgICAgICBvZmZzZXQgPSAwOwotICAg IH0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gY29weV9ndWVzdCh0bywgKHZhZGRyX3QpZnJv bSwgbGVuLCBDT1BZX2Zyb21fZ3Vlc3QpOwogfQogCiAvKgotLSAKMi4xMS4wCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==