From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v4 16/18] xen/pvcalls: implement read Date: Thu, 15 Jun 2017 12:09:45 -0700 Message-ID: <1497553787-3709-16-git-send-email-sstabellini@kernel.org> References: <1497553787-3709-1-git-send-email-sstabellini@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1497553787-3709-1-git-send-email-sstabellini@kernel.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: jgross@suse.com, Stefano Stabellini , boris.ostrovsky@oracle.com, sstabellini@kernel.org, linux-kernel@vger.kernel.org List-Id: xen-devel@lists.xenproject.org V2hlbiBhbiBhY3RpdmUgc29ja2V0IGhhcyBkYXRhIGF2YWlsYWJsZSwgaW5jcmVtZW50IHRoZSBp byBhbmQgcmVhZApjb3VudGVycywgYW5kIHNjaGVkdWxlIHRoZSBpb3dvcmtlci4KCkltcGxlbWVu dCB0aGUgcmVhZCBmdW5jdGlvbiBieSByZWFkaW5nIGZyb20gdGhlIHNvY2tldCwgd3JpdGluZyB0 aGUgZGF0YQp0byB0aGUgZGF0YSByaW5nLgoKU2V0IGluX2Vycm9yIG9uIGVycm9yLgoKU2lnbmVk LW9mZi1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vQGFwb3JldG8uY29tPgpDQzogYm9y aXMub3N0cm92c2t5QG9yYWNsZS5jb20KQ0M6IGpncm9zc0BzdXNlLmNvbQotLS0KIGRyaXZlcnMv eGVuL3B2Y2FsbHMtYmFjay5jIHwgODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3hlbi9wdmNhbGxzLWJhY2suYyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtYmFj ay5jCmluZGV4IGI5YTEwYjkuLjY1ZDllYmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3B2Y2Fs bHMtYmFjay5jCisrKyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtYmFjay5jCkBAIC0xMDAsNiArMTAw LDgxIEBAIHN0YXRpYyBpbnQgcHZjYWxsc19iYWNrX3JlbGVhc2VfYWN0aXZlKHN0cnVjdCB4ZW5i dXNfZGV2aWNlICpkZXYsCiAKIHN0YXRpYyB2b2lkIHB2Y2FsbHNfY29ubl9iYWNrX3JlYWQodm9p ZCAqb3BhcXVlKQogeworCXN0cnVjdCBzb2NrX21hcHBpbmcgKm1hcCA9IChzdHJ1Y3Qgc29ja19t YXBwaW5nICopb3BhcXVlOworCXN0cnVjdCBtc2doZHIgbXNnOworCXN0cnVjdCBrdmVjIHZlY1sy XTsKKwlSSU5HX0lEWCBjb25zLCBwcm9kLCBzaXplLCB3YW50ZWQsIGFycmF5X3NpemUsIG1hc2tl ZF9wcm9kLCBtYXNrZWRfY29uczsKKwlpbnQzMl90IGVycm9yOworCXN0cnVjdCBwdmNhbGxzX2Rh dGFfaW50ZiAqaW50ZiA9IG1hcC0+cmluZzsKKwlzdHJ1Y3QgcHZjYWxsc19kYXRhICpkYXRhID0g Jm1hcC0+ZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXQ7CisKKwlhcnJheV9z aXplID0gWEVOX0ZMRVhfUklOR19TSVpFKG1hcC0+cmluZ19vcmRlcik7CisJY29ucyA9IGludGYt PmluX2NvbnM7CisJcHJvZCA9IGludGYtPmluX3Byb2Q7CisJZXJyb3IgPSBpbnRmLT5pbl9lcnJv cjsKKwkvKiByZWFkIHRoZSBpbmRleGVzIGZpcnN0LCB0aGVuIGRlYWwgd2l0aCB0aGUgZGF0YSAq LworCXZpcnRfbWIoKTsKKworCWlmIChlcnJvcikKKwkJcmV0dXJuOworCisJc2l6ZSA9IHB2Y2Fs bHNfcXVldWVkKHByb2QsIGNvbnMsIGFycmF5X3NpemUpOworCWlmIChzaXplID49IGFycmF5X3Np emUpCisJCXJldHVybjsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmbWFwLT5zb2NrLT5zay0+c2tfcmVj ZWl2ZV9xdWV1ZS5sb2NrLCBmbGFncyk7CisJaWYgKHNrYl9xdWV1ZV9lbXB0eSgmbWFwLT5zb2Nr LT5zay0+c2tfcmVjZWl2ZV9xdWV1ZSkpIHsKKwkJYXRvbWljX3NldCgmbWFwLT5yZWFkLCAwKTsK KwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWFwLT5zb2NrLT5zay0+c2tfcmVjZWl2ZV9xdWV1 ZS5sb2NrLAorCQkJCWZsYWdzKTsKKwkJcmV0dXJuOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZtYXAtPnNvY2stPnNrLT5za19yZWNlaXZlX3F1ZXVlLmxvY2ssIGZsYWdzKTsKKwl3YW50 ZWQgPSBhcnJheV9zaXplIC0gc2l6ZTsKKwltYXNrZWRfcHJvZCA9IHB2Y2FsbHNfbWFzayhwcm9k LCBhcnJheV9zaXplKTsKKwltYXNrZWRfY29ucyA9IHB2Y2FsbHNfbWFzayhjb25zLCBhcnJheV9z aXplKTsKKworCW1lbXNldCgmbXNnLCAwLCBzaXplb2YobXNnKSk7CisJbXNnLm1zZ19pdGVyLnR5 cGUgPSBJVEVSX0tWRUN8V1JJVEU7CisJbXNnLm1zZ19pdGVyLmNvdW50ID0gd2FudGVkOworCWlm IChtYXNrZWRfcHJvZCA8IG1hc2tlZF9jb25zKSB7CisJCXZlY1swXS5pb3ZfYmFzZSA9IGRhdGEt PmluICsgbWFza2VkX3Byb2Q7CisJCXZlY1swXS5pb3ZfbGVuID0gd2FudGVkOworCQltc2cubXNn X2l0ZXIua3ZlYyA9IHZlYzsKKwkJbXNnLm1zZ19pdGVyLm5yX3NlZ3MgPSAxOworCX0gZWxzZSB7 CisJCXZlY1swXS5pb3ZfYmFzZSA9IGRhdGEtPmluICsgbWFza2VkX3Byb2Q7CisJCXZlY1swXS5p b3ZfbGVuID0gYXJyYXlfc2l6ZSAtIG1hc2tlZF9wcm9kOworCQl2ZWNbMV0uaW92X2Jhc2UgPSBk YXRhLT5pbjsKKwkJdmVjWzFdLmlvdl9sZW4gPSB3YW50ZWQgLSB2ZWNbMF0uaW92X2xlbjsKKwkJ bXNnLm1zZ19pdGVyLmt2ZWMgPSB2ZWM7CisJCW1zZy5tc2dfaXRlci5ucl9zZWdzID0gMjsKKwl9 CisKKwlhdG9taWNfc2V0KCZtYXAtPnJlYWQsIDApOworCXJldCA9IGluZXRfcmVjdm1zZyhtYXAt PnNvY2ssICZtc2csIHdhbnRlZCwgTVNHX0RPTlRXQUlUKTsKKwlXQVJOX09OKHJldCA+IHdhbnRl ZCk7CisJaWYgKHJldCA9PSAtRUFHQUlOKSAvKiBzaG91bGRuJ3QgaGFwcGVuICovCisJCXJldHVy bjsKKwlpZiAoIXJldCkKKwkJcmV0ID0gLUVOT1RDT05OOworCXNwaW5fbG9ja19pcnFzYXZlKCZt YXAtPnNvY2stPnNrLT5za19yZWNlaXZlX3F1ZXVlLmxvY2ssIGZsYWdzKTsKKwlpZiAocmV0ID4g MCAmJiAhc2tiX3F1ZXVlX2VtcHR5KCZtYXAtPnNvY2stPnNrLT5za19yZWNlaXZlX3F1ZXVlKSkK KwkJYXRvbWljX2luYygmbWFwLT5yZWFkKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtYXAt PnNvY2stPnNrLT5za19yZWNlaXZlX3F1ZXVlLmxvY2ssIGZsYWdzKTsKKworCS8qIHdyaXRlIHRo ZSBkYXRhLCB0aGVuIG1vZGlmeSB0aGUgaW5kZXhlcyAqLworCXZpcnRfd21iKCk7CisJaWYgKHJl dCA8IDApCisJCWludGYtPmluX2Vycm9yID0gcmV0OworCWVsc2UKKwkJaW50Zi0+aW5fcHJvZCA9 IHByb2QgKyByZXQ7CisJLyogdXBkYXRlIHRoZSBpbmRleGVzLCB0aGVuIG5vdGlmeSB0aGUgb3Ro ZXIgZW5kICovCisJdmlydF93bWIoKTsKKwlub3RpZnlfcmVtb3RlX3ZpYV9pcnEobWFwLT5pcnEp OworCisJcmV0dXJuOwogfQogCiBzdGF0aWMgaW50IHB2Y2FsbHNfY29ubl9iYWNrX3dyaXRlKHN0 cnVjdCBzb2NrX21hcHBpbmcgKm1hcCkKQEAgLTE3Miw2ICsyNDcsMTYgQEAgc3RhdGljIHZvaWQg cHZjYWxsc19za19zdGF0ZV9jaGFuZ2Uoc3RydWN0IHNvY2sgKnNvY2spCiAKIHN0YXRpYyB2b2lk IHB2Y2FsbHNfc2tfZGF0YV9yZWFkeShzdHJ1Y3Qgc29jayAqc29jaykKIHsKKwlzdHJ1Y3Qgc29j a19tYXBwaW5nICptYXAgPSBzb2NrLT5za191c2VyX2RhdGE7CisJc3RydWN0IHB2Y2FsbHNfaW93 b3JrZXIgKmlvdzsKKworCWlmIChtYXAgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJaW93ID0gJm1h cC0+aW93b3JrZXI7CisJYXRvbWljX2luYygmbWFwLT5yZWFkKTsKKwlhdG9taWNfaW5jKCZtYXAt PmlvKTsKKwlxdWV1ZV93b3JrKGlvdy0+d3EsICZpb3ctPnJlZ2lzdGVyX3dvcmspOwogfQogCiBz dGF0aWMgc3RydWN0IHNvY2tfbWFwcGluZyAqcHZjYWxsc19uZXdfYWN0aXZlX3NvY2tldCgKLS0g CjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==