From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: Re: [v2 06/16] xen/arm: Extend copy_to_guest to support copying from/to guest physical address Date: Tue, 12 Dec 2017 12:06:37 -0800 (PST) Message-ID: References: <20171212190212.5535-1-julien.grall@linaro.org> <20171212190212.5535-7-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-7-julien.grall@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Julien Grall Cc: sstabellini@kernel.org, andre.przywara@linaro.org, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org T24gVHVlLCAxMiBEZWMgMjAxNywgSnVsaWVuIEdyYWxsIHdyb3RlOgo+IFRoZSBvbmx5IGRpZmZl cmVuY2VzIGJldHdlZW4gY29weV90b19ndWVzdCBhbmQgYWNjZXNzX2d1ZXN0X21lbW9yeV9ieV9p cGEgYXJlOgo+ICAgICAtIFRoZSBsYXR0ZXIgZG9lcyBub3Qgc3VwcG9ydCBjb3B5aW5nIGRhdGEg Y3Jvc3NpbmcgcGFnZSBib3VuZGFyeQo+ICAgICAtIFRoZSBmb3JtZXIgaXMgY29weWluZyBmcm9t L3RvIGd1ZXN0IFZBIHdoaWxzdCB0aGUgbGF0dGVyIGZyb20KPiAgICAgZ3Vlc3QgUEEKPiAKPiBj b3B5X3RvX2d1ZXN0IGNhbiBlYXNpbHkgYmUgZXh0ZW5kZWQgdG8gc3VwcG9ydCBjb3B5aW5nIGZy b20vdG8gZ3Vlc3QKPiBwaHlzaWNhbCBhZGRyZXNzLiBGb3IgdGhhdCBhIG5ldyBiaXQgaXMgdXNl ZCB0byB0ZWxsIHdoZXRoZXIgbGluZWFyCj4gYWRkcmVzcyBvciBpcGEgaXMgYmVlbiB1c2VkLgo+ IAo+IExhc3RseSBhY2Nlc3NfZ3Vlc3RfbWVtb3J5X2J5X2lwYSBpcyByZWltcGxlbWVudGVkIHVz aW5nIGNvcHlfdG9fZ3Vlc3QuCj4gVGhpcyBhbHNvIGhhcyB0aGUgYmVuZWZpdHMgdG8gZXh0ZW5k IHRoZSB1c2Ugb2YgaXQsIGl0IGlzIG5vdyBwb3NzaWJsZQo+IHRvIGNvcHkgZGF0YSBjcm9zc2lu ZyBwYWdlIGJvdW5kYXJ5Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IEp1bGllbiBHcmFsbCA8anVsaWVu LmdyYWxsQGxpbmFyby5vcmc+CgpSZXZpZXdlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3Rh YmVsbGluaUBrZXJuZWwub3JnPgoKCj4gLS0tCj4gICAgIENoYW5nZXMgaW4gdjI6Cj4gICAgICAg ICAtIFJld29yayB0aGUgcGF0Y2ggYWZ0ZXIgdGhlIGludGVyZmFjZSBjaGFuZ2VzIGluIHRoZSBw cmV2aW91cwo+ICAgICAgICAgcGF0Y2guCj4gICAgICAgICAtIFVzZSB1aW50NjRfdCByYXRoZXIg dGhhbiBwYWRkcl90IGluIHRyYW5zbGF0ZV9nZXRfcGFnZQo+ICAgICAgICAgLSBBZGQgYSBCVUlM RF9CVUdfT04gdG8gY2hlY2sgd2hldGhlciBwYWRkcl90IGZpdHMgaW4gdWludDY0X3QKPiAtLS0K PiAgeGVuL2FyY2gvYXJtL2d1ZXN0Y29weS5jIHwgOTEgKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA0NCBpbnNlcnRpb25z KCspLCA0NyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2d1ZXN0 Y29weS5jIGIveGVuL2FyY2gvYXJtL2d1ZXN0Y29weS5jCj4gaW5kZXggN2U5MmUyN2JlYi4uOTNl NGFhMmQzZiAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC9hcm0vZ3Vlc3Rjb3B5LmMKPiArKysgYi94 ZW4vYXJjaC9hcm0vZ3Vlc3Rjb3B5LmMKPiBAQCAtOCw2ICs4LDggQEAKPiAgI2RlZmluZSBDT1BZ X2ZsdXNoX2RjYWNoZSAgICgxVSA8PCAwKQo+ICAjZGVmaW5lIENPUFlfZnJvbV9ndWVzdCAgICAg KDBVIDw8IDEpCj4gICNkZWZpbmUgQ09QWV90b19ndWVzdCAgICAgICAoMVUgPDwgMSkKPiArI2Rl ZmluZSBDT1BZX2lwYSAgICAgICAgICAgICgwVSA8PCAyKQo+ICsjZGVmaW5lIENPUFlfbGluZWFy ICAgICAgICAgKDFVIDw8IDIpCj4gIAo+ICB0eXBlZGVmIHVuaW9uCj4gIHsKPiBAQCAtMTUsOSAr MTcsMzkgQEAgdHlwZWRlZiB1bmlvbgo+ICAgICAgewo+ICAgICAgICAgIHN0cnVjdCB2Y3B1ICp2 Owo+ICAgICAgfSBndmE7Cj4gKwo+ICsgICAgc3RydWN0Cj4gKyAgICB7Cj4gKyAgICAgICAgc3Ry dWN0IGRvbWFpbiAqZDsKPiArICAgIH0gZ3BhOwo+ICB9IGNvcHlfaW5mb190Owo+ICAKPiAgI2Rl ZmluZSBHVkFfSU5GTyh2Y3B1KSAoKGNvcHlfaW5mb190KSB7IC5ndmEgPSB7IHZjcHUgfSB9KQo+ ICsjZGVmaW5lIEdQQV9JTkZPKGRvbWFpbikgKChjb3B5X2luZm9fdCkgeyAuZ3BhID0geyBkb21h aW4gfSB9KQo+ICsKPiArc3RhdGljIHN0cnVjdCBwYWdlX2luZm8gKnRyYW5zbGF0ZV9nZXRfcGFn ZShjb3B5X2luZm9fdCBpbmZvLCB1aW50NjRfdCBhZGRyLAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgbGluZWFyLCBib29sIHdyaXRlKQo+ICt7Cj4g KyAgICBwMm1fdHlwZV90IHAybXQ7Cj4gKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwo+ICsK PiArICAgIGlmICggbGluZWFyICkKPiArICAgICAgICByZXR1cm4gZ2V0X3BhZ2VfZnJvbV9ndmEo aW5mby5ndmEudiwgYWRkciwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3Jp dGUgPyBHVjJNX1dSSVRFIDogR1YyTV9SRUFEKTsKPiArCj4gKyAgICBwYWdlID0gZ2V0X3BhZ2Vf ZnJvbV9nZm4oaW5mby5ncGEuZCwgcGFkZHJfdG9fcGZuKGFkZHIpLCAmcDJtdCwgUDJNX0FMTE9D KTsKPiArCj4gKyAgICBpZiAoICFwYWdlICkKPiArICAgICAgICByZXR1cm4gTlVMTDsKPiArCj4g KyAgICBpZiAoICFwMm1faXNfcmFtKHAybXQpICkKPiArICAgIHsKPiArICAgICAgICBwdXRfcGFn ZShwYWdlKTsKPiArICAgICAgICByZXR1cm4gTlVMTDsKPiArICAgIH0KPiArCj4gKyAgICByZXR1 cm4gcGFnZTsKPiArfQo+ICAKPiAgc3RhdGljIHVuc2lnbmVkIGxvbmcgY29weV9ndWVzdCh2b2lk ICpidWYsIHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVkIGludCBsZW4sCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29weV9pbmZvX3QgaW5mbywgdW5zaWduZWQgaW50IGZsYWdzKQo+ IEBAIC0yNiw2ICs1OCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGNvcHlfZ3Vlc3Qodm9pZCAq YnVmLCB1aW50NjRfdCBhZGRyLCB1bnNpZ25lZCBpbnQgbGVuLAo+ICAgICAgdW5zaWduZWQgb2Zm c2V0ID0gYWRkciAmIH5QQUdFX01BU0s7Cj4gIAo+ICAgICAgQlVJTERfQlVHX09OKChzaXplb2Yo YWRkcikpIDwgc2l6ZW9mKHZhZGRyX3QpKTsKPiArICAgIEJVSUxEX0JVR19PTigoc2l6ZW9mKGFk ZHIpKSA8IHNpemVvZihwYWRkcl90KSk7Cj4gIAo+ICAgICAgd2hpbGUgKCBsZW4gKQo+ICAgICAg ewo+IEBAIC0zMyw4ICs2Niw4IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGNvcHlfZ3Vlc3Qodm9p ZCAqYnVmLCB1aW50NjRfdCBhZGRyLCB1bnNpZ25lZCBpbnQgbGVuLAo+ICAgICAgICAgIHVuc2ln bmVkIHNpemUgPSBtaW4obGVuLCAodW5zaWduZWQpUEFHRV9TSVpFIC0gb2Zmc2V0KTsKPiAgICAg ICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwo+ICAKPiAtICAgICAgICBwYWdlID0gZ2V0X3Bh Z2VfZnJvbV9ndmEoaW5mby5ndmEudiwgYWRkciwKPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGZsYWdzICYgQ09QWV90b19ndWVzdCkgPyBHVjJNX1dSSVRFIDogR1YyTV9SRUFE KTsKPiArICAgICAgICBwYWdlID0gdHJhbnNsYXRlX2dldF9wYWdlKGluZm8sIGFkZHIsIGZsYWdz ICYgQ09QWV9saW5lYXIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFn cyAmIENPUFlfdG9fZ3Vlc3QpOwo+ICAgICAgICAgIGlmICggcGFnZSA9PSBOVUxMICkKPiAgICAg ICAgICAgICAgcmV0dXJuIGxlbjsKPiAgCj4gQEAgLTc1LDc1ICsxMDgsMzkgQEAgc3RhdGljIHVu c2lnbmVkIGxvbmcgY29weV9ndWVzdCh2b2lkICpidWYsIHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVk IGludCBsZW4sCj4gIHVuc2lnbmVkIGxvbmcgcmF3X2NvcHlfdG9fZ3Vlc3Qodm9pZCAqdG8sIGNv bnN0IHZvaWQgKmZyb20sIHVuc2lnbmVkIGxlbikKPiAgewo+ICAgICAgcmV0dXJuIGNvcHlfZ3Vl c3QoKHZvaWQgKilmcm9tLCAodmFkZHJfdCl0bywgbGVuLAo+IC0gICAgICAgICAgICAgICAgICAg ICAgR1ZBX0lORk8oY3VycmVudCksIENPUFlfdG9fZ3Vlc3QpOwo+ICsgICAgICAgICAgICAgICAg ICAgICAgR1ZBX0lORk8oY3VycmVudCksIENPUFlfdG9fZ3Vlc3QgfCBDT1BZX2xpbmVhcik7Cj4g IH0KPiAgCj4gIHVuc2lnbmVkIGxvbmcgcmF3X2NvcHlfdG9fZ3Vlc3RfZmx1c2hfZGNhY2hlKHZv aWQgKnRvLCBjb25zdCB2b2lkICpmcm9tLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW4pCj4gIHsKPiAgICAgIHJldHVybiBjb3B5X2d1 ZXN0KCh2b2lkICopZnJvbSwgKHZhZGRyX3QpdG8sIGxlbiwgR1ZBX0lORk8oY3VycmVudCksCj4g LSAgICAgICAgICAgICAgICAgICAgICBDT1BZX3RvX2d1ZXN0IHwgQ09QWV9mbHVzaF9kY2FjaGUp Owo+ICsgICAgICAgICAgICAgICAgICAgICAgQ09QWV90b19ndWVzdCB8IENPUFlfZmx1c2hfZGNh Y2hlIHwgQ09QWV9saW5lYXIpOwo+ICB9Cj4gIAo+ICB1bnNpZ25lZCBsb25nIHJhd19jbGVhcl9n dWVzdCh2b2lkICp0bywgdW5zaWduZWQgbGVuKQo+ICB7Cj4gICAgICByZXR1cm4gY29weV9ndWVz dChOVUxMLCAodmFkZHJfdCl0bywgbGVuLCBHVkFfSU5GTyhjdXJyZW50KSwKPiAtICAgICAgICAg ICAgICAgICAgICAgIENPUFlfdG9fZ3Vlc3QpOwo+ICsgICAgICAgICAgICAgICAgICAgICAgQ09Q WV90b19ndWVzdCB8IENPUFlfbGluZWFyKTsKPiAgfQo+ICAKPiAgdW5zaWduZWQgbG9uZyByYXdf Y29weV9mcm9tX2d1ZXN0KHZvaWQgKnRvLCBjb25zdCB2b2lkIF9fdXNlciAqZnJvbSwgdW5zaWdu ZWQgbGVuKQo+ICB7Cj4gICAgICByZXR1cm4gY29weV9ndWVzdCh0bywgKHZhZGRyX3QpZnJvbSwg bGVuLCBHVkFfSU5GTyhjdXJyZW50KSwKPiAtICAgICAgICAgICAgICAgICAgICAgIENPUFlfZnJv bV9ndWVzdCk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICBDT1BZX2Zyb21fZ3Vlc3QgfCBDT1BZ X2xpbmVhcik7Cj4gIH0KPiAgCj4gLS8qCj4gLSAqIFRlbXBvcmFyaWx5IG1hcCBvbmUgcGh5c2lj YWwgZ3Vlc3QgcGFnZSBhbmQgY29weSBkYXRhIHRvIG9yIGZyb20gaXQuCj4gLSAqIFRoZSBkYXRh IHRvIGJlIGNvcGllZCBjYW5ub3QgY3Jvc3MgYSBwYWdlIGJvdW5kYXJ5Lgo+IC0gKi8KPiAgaW50 IGFjY2Vzc19ndWVzdF9tZW1vcnlfYnlfaXBhKHN0cnVjdCBkb21haW4gKmQsIHBhZGRyX3QgZ3Bh LCB2b2lkICpidWYsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBz aXplLCBib29sIGlzX3dyaXRlKQo+ICB7Cj4gLSAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwo+ IC0gICAgdWludDY0X3Qgb2Zmc2V0ID0gZ3BhICYgflBBR0VfTUFTSzsgIC8qIE9mZnNldCB3aXRo aW4gdGhlIG1hcHBlZCBwYWdlICovCj4gLSAgICBwMm1fdHlwZV90IHAybXQ7Cj4gLSAgICB2b2lk ICpwOwo+IC0KPiAtICAgIC8qIERvIG5vdCBjcm9zcyBhIHBhZ2UgYm91bmRhcnkuICovCj4gLSAg ICBpZiAoIHNpemUgPiAoUEFHRV9TSVpFIC0gb2Zmc2V0KSApCj4gLSAgICB7Cj4gLSAgICAgICAg cHJpbnRrKFhFTkxPR19HX0VSUiAiZCVkOiBndWVzdGNvcHk6IG1lbW9yeSBhY2Nlc3MgY3Jvc3Nl cyBwYWdlIGJvdW5kYXJ5LlxuIiwKPiAtICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkKTsKPiAt ICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiAtICAgIH0KPiAtCj4gLSAgICBwYWdlID0gZ2V0X3Bh Z2VfZnJvbV9nZm4oZCwgcGFkZHJfdG9fcGZuKGdwYSksICZwMm10LCBQMk1fQUxMT0MpOwo+IC0g ICAgaWYgKCAhcGFnZSApCj4gLSAgICB7Cj4gLSAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUiAi ZCVkOiBndWVzdGNvcHk6IGZhaWxlZCB0byBnZXQgdGFibGUgZW50cnkuXG4iLAo+IC0gICAgICAg ICAgICAgICBkLT5kb21haW5faWQpOwo+IC0gICAgICAgIHJldHVybiAtRUlOVkFMOwo+IC0gICAg fQo+ICsgICAgdW5zaWduZWQgbG9uZyBsZWZ0Owo+ICsgICAgaW50IGZsYWdzID0gQ09QWV9pcGE7 Cj4gIAo+IC0gICAgaWYgKCAhcDJtX2lzX3JhbShwMm10KSApCj4gLSAgICB7Cj4gLSAgICAgICAg cHV0X3BhZ2UocGFnZSk7Cj4gLSAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUiAiZCVkOiBndWVz dGNvcHk6IGd1ZXN0IG1lbW9yeSBzaG91bGQgYmUgUkFNLlxuIiwKPiAtICAgICAgICAgICAgICAg ZC0+ZG9tYWluX2lkKTsKPiAtICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiAtICAgIH0KPiAtCj4g LSAgICBwID0gX19tYXBfZG9tYWluX3BhZ2UocGFnZSk7Cj4gKyAgICBmbGFncyB8PSBpc193cml0 ZSA/IENPUFlfdG9fZ3Vlc3QgOiBDT1BZX2Zyb21fZ3Vlc3Q7Cj4gIAo+IC0gICAgaWYgKCBpc193 cml0ZSApCj4gLSAgICAgICAgbWVtY3B5KHAgKyBvZmZzZXQsIGJ1Ziwgc2l6ZSk7Cj4gLSAgICBl bHNlCj4gLSAgICAgICAgbWVtY3B5KGJ1ZiwgcCArIG9mZnNldCwgc2l6ZSk7Cj4gKyAgICBsZWZ0 ID0gY29weV9ndWVzdChidWYsIGdwYSwgc2l6ZSwgR1BBX0lORk8oZCksIGZsYWdzKTsKPiAgCj4g LSAgICB1bm1hcF9kb21haW5fcGFnZShwKTsKPiAtICAgIHB1dF9wYWdlKHBhZ2UpOwo+IC0KPiAt ICAgIHJldHVybiAwOwo+ICsgICAgcmV0dXJuICghbGVmdCkgPyAwIDogLUVJTlZBTDsKPiAgfQo+ ICAKPiAgLyoKPiAtLSAKPiAyLjExLjAKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0 aW5mby94ZW4tZGV2ZWw=