From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v7 16/18] xen/pvcalls: implement read Date: Wed, 5 Jul 2017 14:50:56 -0700 Message-ID: <1499291458-30231-16-git-send-email-sstabellini@kernel.org> References: <1499291458-30231-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: <1499291458-30231-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 LW9mZi1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vQGFwb3JldG8uY29tPgpSZXZpZXdl ZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgpDQzogYm9yaXMub3N0cm92c2t5 QG9yYWNsZS5jb20KQ0M6IGpncm9zc0BzdXNlLmNvbQotLS0KIGRyaXZlcnMveGVuL3B2Y2FsbHMt YmFjay5jIHwgODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogMSBmaWxlIGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJz L3hlbi9wdmNhbGxzLWJhY2suYyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtYmFjay5jCmluZGV4IGE1 ZjExZDUuLjk3MGRiOWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3B2Y2FsbHMtYmFjay5jCisr KyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtYmFjay5jCkBAIC05OCw2ICs5OCw4MSBAQCBzdGF0aWMg aW50IHB2Y2FsbHNfYmFja19yZWxlYXNlX2FjdGl2ZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2 LAogCiBzdGF0aWMgdm9pZCBwdmNhbGxzX2Nvbm5fYmFja19yZWFkKHZvaWQgKm9wYXF1ZSkKIHsK KwlzdHJ1Y3Qgc29ja19tYXBwaW5nICptYXAgPSAoc3RydWN0IHNvY2tfbWFwcGluZyAqKW9wYXF1 ZTsKKwlzdHJ1Y3QgbXNnaGRyIG1zZzsKKwlzdHJ1Y3Qga3ZlYyB2ZWNbMl07CisJUklOR19JRFgg Y29ucywgcHJvZCwgc2l6ZSwgd2FudGVkLCBhcnJheV9zaXplLCBtYXNrZWRfcHJvZCwgbWFza2Vk X2NvbnM7CisJaW50MzJfdCBlcnJvcjsKKwlzdHJ1Y3QgcHZjYWxsc19kYXRhX2ludGYgKmludGYg PSBtYXAtPnJpbmc7CisJc3RydWN0IHB2Y2FsbHNfZGF0YSAqZGF0YSA9ICZtYXAtPmRhdGE7CisJ dW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmV0OworCisJYXJyYXlfc2l6ZSA9IFhFTl9GTEVY X1JJTkdfU0laRShtYXAtPnJpbmdfb3JkZXIpOworCWNvbnMgPSBpbnRmLT5pbl9jb25zOworCXBy b2QgPSBpbnRmLT5pbl9wcm9kOworCWVycm9yID0gaW50Zi0+aW5fZXJyb3I7CisJLyogcmVhZCB0 aGUgaW5kZXhlcyBmaXJzdCwgdGhlbiBkZWFsIHdpdGggdGhlIGRhdGEgKi8KKwl2aXJ0X21iKCk7 CisKKwlpZiAoZXJyb3IpCisJCXJldHVybjsKKworCXNpemUgPSBwdmNhbGxzX3F1ZXVlZChwcm9k LCBjb25zLCBhcnJheV9zaXplKTsKKwlpZiAoc2l6ZSA+PSBhcnJheV9zaXplKQorCQlyZXR1cm47 CisJc3Bpbl9sb2NrX2lycXNhdmUoJm1hcC0+c29jay0+c2stPnNrX3JlY2VpdmVfcXVldWUubG9j aywgZmxhZ3MpOworCWlmIChza2JfcXVldWVfZW1wdHkoJm1hcC0+c29jay0+c2stPnNrX3JlY2Vp dmVfcXVldWUpKSB7CisJCWF0b21pY19zZXQoJm1hcC0+cmVhZCwgMCk7CisJCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJm1hcC0+c29jay0+c2stPnNrX3JlY2VpdmVfcXVldWUubG9jaywKKwkJCQlm bGFncyk7CisJCXJldHVybjsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWFwLT5zb2Nr LT5zay0+c2tfcmVjZWl2ZV9xdWV1ZS5sb2NrLCBmbGFncyk7CisJd2FudGVkID0gYXJyYXlfc2l6 ZSAtIHNpemU7CisJbWFza2VkX3Byb2QgPSBwdmNhbGxzX21hc2socHJvZCwgYXJyYXlfc2l6ZSk7 CisJbWFza2VkX2NvbnMgPSBwdmNhbGxzX21hc2soY29ucywgYXJyYXlfc2l6ZSk7CisKKwltZW1z ZXQoJm1zZywgMCwgc2l6ZW9mKG1zZykpOworCW1zZy5tc2dfaXRlci50eXBlID0gSVRFUl9LVkVD fFdSSVRFOworCW1zZy5tc2dfaXRlci5jb3VudCA9IHdhbnRlZDsKKwlpZiAobWFza2VkX3Byb2Qg PCBtYXNrZWRfY29ucykgeworCQl2ZWNbMF0uaW92X2Jhc2UgPSBkYXRhLT5pbiArIG1hc2tlZF9w cm9kOworCQl2ZWNbMF0uaW92X2xlbiA9IHdhbnRlZDsKKwkJbXNnLm1zZ19pdGVyLmt2ZWMgPSB2 ZWM7CisJCW1zZy5tc2dfaXRlci5ucl9zZWdzID0gMTsKKwl9IGVsc2UgeworCQl2ZWNbMF0uaW92 X2Jhc2UgPSBkYXRhLT5pbiArIG1hc2tlZF9wcm9kOworCQl2ZWNbMF0uaW92X2xlbiA9IGFycmF5 X3NpemUgLSBtYXNrZWRfcHJvZDsKKwkJdmVjWzFdLmlvdl9iYXNlID0gZGF0YS0+aW47CisJCXZl Y1sxXS5pb3ZfbGVuID0gd2FudGVkIC0gdmVjWzBdLmlvdl9sZW47CisJCW1zZy5tc2dfaXRlci5r dmVjID0gdmVjOworCQltc2cubXNnX2l0ZXIubnJfc2VncyA9IDI7CisJfQorCisJYXRvbWljX3Nl dCgmbWFwLT5yZWFkLCAwKTsKKwlyZXQgPSBpbmV0X3JlY3Ztc2cobWFwLT5zb2NrLCAmbXNnLCB3 YW50ZWQsIE1TR19ET05UV0FJVCk7CisJV0FSTl9PTihyZXQgPiB3YW50ZWQpOworCWlmIChyZXQg PT0gLUVBR0FJTikgLyogc2hvdWxkbid0IGhhcHBlbiAqLworCQlyZXR1cm47CisJaWYgKCFyZXQp CisJCXJldCA9IC1FTk9UQ09OTjsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmbWFwLT5zb2NrLT5zay0+ c2tfcmVjZWl2ZV9xdWV1ZS5sb2NrLCBmbGFncyk7CisJaWYgKHJldCA+IDAgJiYgIXNrYl9xdWV1 ZV9lbXB0eSgmbWFwLT5zb2NrLT5zay0+c2tfcmVjZWl2ZV9xdWV1ZSkpCisJCWF0b21pY19pbmMo Jm1hcC0+cmVhZCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWFwLT5zb2NrLT5zay0+c2tf cmVjZWl2ZV9xdWV1ZS5sb2NrLCBmbGFncyk7CisKKwkvKiB3cml0ZSB0aGUgZGF0YSwgdGhlbiBt b2RpZnkgdGhlIGluZGV4ZXMgKi8KKwl2aXJ0X3dtYigpOworCWlmIChyZXQgPCAwKQorCQlpbnRm LT5pbl9lcnJvciA9IHJldDsKKwllbHNlCisJCWludGYtPmluX3Byb2QgPSBwcm9kICsgcmV0Owor CS8qIHVwZGF0ZSB0aGUgaW5kZXhlcywgdGhlbiBub3RpZnkgdGhlIG90aGVyIGVuZCAqLworCXZp cnRfd21iKCk7CisJbm90aWZ5X3JlbW90ZV92aWFfaXJxKG1hcC0+aXJxKTsKKworCXJldHVybjsK IH0KIAogc3RhdGljIHZvaWQgcHZjYWxsc19jb25uX2JhY2tfd3JpdGUoc3RydWN0IHNvY2tfbWFw cGluZyAqbWFwKQpAQCAtMTY5LDYgKzI0NCwxNiBAQCBzdGF0aWMgdm9pZCBwdmNhbGxzX3NrX3N0 YXRlX2NoYW5nZShzdHJ1Y3Qgc29jayAqc29jaykKIAogc3RhdGljIHZvaWQgcHZjYWxsc19za19k YXRhX3JlYWR5KHN0cnVjdCBzb2NrICpzb2NrKQogeworCXN0cnVjdCBzb2NrX21hcHBpbmcgKm1h cCA9IHNvY2stPnNrX3VzZXJfZGF0YTsKKwlzdHJ1Y3QgcHZjYWxsc19pb3dvcmtlciAqaW93Owor CisJaWYgKG1hcCA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlpb3cgPSAmbWFwLT5pb3dvcmtlcjsK KwlhdG9taWNfaW5jKCZtYXAtPnJlYWQpOworCWF0b21pY19pbmMoJm1hcC0+aW8pOworCXF1ZXVl X3dvcmsoaW93LT53cSwgJmlvdy0+cmVnaXN0ZXJfd29yayk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qg c29ja19tYXBwaW5nICpwdmNhbGxzX25ld19hY3RpdmVfc29ja2V0KAotLSAKMS45LjEKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK